From 4d34fb5fed403853dee153493a9018a5c63d7d64 Mon Sep 17 00:00:00 2001 From: Thiemo Seufer Date: Mon, 25 Feb 2002 13:21:38 +0000 Subject: [PATCH] * config/tc-mips.c (set_at): Fix handling of 64bit register loads. (macro): Likewise. Fix la/dla address expansions for EMBEDDED_PIC and NO_PIC cases. Code cleanup. (macro2): Fix handling of 64bit register loads. * mips-gp64-fp32-pic.d: Fix test of 64bit register loads. * mips-gp64-fp32-pic.s: Likewise. * mips-gp64-fp32.d: Likewise. * mips-gp64-fp32.s: Likewise. * mips-gp64-fp64-pic.d: Likewise. * mips-gp64-fp64-pic.s: Likewise. * mips-gp64-fp64.d: Likewise. * mips-gp64-fp64.s: Likewise. --- gas/ChangeLog | 7 ++++ gas/config/tc-mips.c | 56 +++++++++++++++++------------ gas/testsuite/ChangeLog | 11 ++++++ gas/testsuite/gas/mips/mips-gp64-fp32-pic.d | 54 ++++++++++++++-------------- gas/testsuite/gas/mips/mips-gp64-fp32-pic.s | 42 +++++++++++----------- gas/testsuite/gas/mips/mips-gp64-fp32.d | 42 +++++++++++----------- gas/testsuite/gas/mips/mips-gp64-fp32.s | 30 ++++++++-------- gas/testsuite/gas/mips/mips-gp64-fp64-pic.d | 56 +++++++++++++++-------------- gas/testsuite/gas/mips/mips-gp64-fp64-pic.s | 44 ++++++++++++----------- gas/testsuite/gas/mips/mips-gp64-fp64.d | 44 ++++++++++++----------- gas/testsuite/gas/mips/mips-gp64-fp64.s | 32 +++++++++-------- 11 files changed, 231 insertions(+), 187 deletions(-) diff --git a/gas/ChangeLog b/gas/ChangeLog index 5fb24c2..fa45c7c 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2002-02-25 Thiemo Seufer + + * config/tc-mips.c (set_at): Fix handling of 64bit register loads. + (macro): Likewise. Fix la/dla address expansions for EMBEDDED_PIC + and NO_PIC cases. Code cleanup. + (macro2): Fix handling of 64bit register loads. + 2002-02-25 David Mosberger * doc/as.texinfo: Add entry for IA64. diff --git a/gas/config/tc-mips.c b/gas/config/tc-mips.c index 99e5266..048d445 100644 --- a/gas/config/tc-mips.c +++ b/gas/config/tc-mips.c @@ -3257,7 +3257,7 @@ set_at (counter, reg, unsignedp) "t,r,j", AT, reg, (int) BFD_RELOC_LO16); else { - load_register (counter, AT, &imm_expr, 0); + load_register (counter, AT, &imm_expr, HAVE_64BIT_GPRS); macro_build ((char *) NULL, counter, (expressionS *) NULL, unsignedp ? "sltu" : "slt", "d,v,t", AT, reg, AT); @@ -4024,7 +4024,7 @@ macro (ip) 0); return; } - load_register (&icnt, AT, &imm_expr, 0); + load_register (&icnt, AT, &imm_expr, HAVE_64BIT_GPRS); macro_build ((char *) NULL, &icnt, &offset_expr, s, "s,t,p", sreg, AT); break; @@ -4616,11 +4616,11 @@ macro (ip) macro_build ((char *) NULL, &icnt, &offset_expr, "lui", "t,u", tempreg, (int) BFD_RELOC_PCREL_HI16_S); macro_build ((char *) NULL, &icnt, (expressionS *) NULL, - HAVE_32BIT_ADDRESSES ? "addu" : "daddu", + (dbl || HAVE_64BIT_ADDRESSES) ? "daddu" : "addu", "d,v,t", tempreg, tempreg, breg); } macro_build ((char *) NULL, &icnt, &offset_expr, - HAVE_32BIT_ADDRESSES ? "addiu" : "daddiu", + (dbl || HAVE_64BIT_ADDRESSES) ? "daddiu" : "addiu", "t,r,j", treg, tempreg, (int) BFD_RELOC_PCREL_LO16); if (! used_at) return; @@ -4635,7 +4635,10 @@ macro (ip) } if (offset_expr.X_op == O_constant) - load_register (&icnt, tempreg, &offset_expr, dbl); + load_register (&icnt, tempreg, &offset_expr, + ((mips_pic == EMBEDDED_PIC || mips_pic == NO_PIC) + ? (dbl || HAVE_64BIT_ADDRESSES) + : HAVE_64BIT_ADDRESSES)); else if (mips_pic == NO_PIC) { /* If this is a reference to a GP relative symbol, we want @@ -4707,8 +4710,7 @@ macro (ip) && ! nopic_need_relax (offset_expr.X_add_symbol, 1)) { frag_grow (20); - macro_build ((char *) NULL, &icnt, &offset_expr, - HAVE_32BIT_ADDRESSES ? "addiu" : "daddiu", + macro_build ((char *) NULL, &icnt, &offset_expr, "addiu", "t,r,j", tempreg, GP, (int) BFD_RELOC_GPREL16); p = frag_var (rs_machine_dependent, 8, 0, RELAX_ENCODE (4, 8, 0, 4, 0, @@ -4718,8 +4720,7 @@ macro (ip) macro_build_lui (p, &icnt, &offset_expr, tempreg); if (p != NULL) p += 4; - macro_build (p, &icnt, &offset_expr, - HAVE_32BIT_ADDRESSES ? "addiu" : "daddiu", + macro_build (p, &icnt, &offset_expr, "addiu", "t,r,j", tempreg, tempreg, (int) BFD_RELOC_LO16); } } @@ -4760,7 +4761,8 @@ macro (ip) frag_grow (32); if (expr1.X_add_number == 0 && tempreg == PIC_CALL_REG) lw_reloc_type = (int) BFD_RELOC_MIPS_CALL16; - macro_build ((char *) NULL, &icnt, &offset_expr, dbl ? "ld" : "lw", + macro_build ((char *) NULL, &icnt, &offset_expr, + HAVE_32BIT_ADDRESSES ? "lw" : "ld", "t,o(b)", tempreg, lw_reloc_type, GP); if (expr1.X_add_number == 0) { @@ -4915,7 +4917,7 @@ macro (ip) HAVE_32BIT_ADDRESSES ? "addu" : "daddu", "d,v,t", tempreg, tempreg, GP); macro_build ((char *) NULL, &icnt, &offset_expr, - dbl ? "ld" : "lw", + HAVE_32BIT_ADDRESSES ? "lw" : "ld", "t,o(b)", tempreg, lw_reloc_type, tempreg); if (expr1.X_add_number == 0) { @@ -5018,7 +5020,7 @@ macro (ip) p += 4; } macro_build (p, &icnt, &offset_expr, - dbl ? "ld" : "lw", + HAVE_32BIT_ADDRESSES ? "lw" : "ld", "t,o(b)", tempreg, (int) BFD_RELOC_MIPS_GOT16, GP); p += 4; if (expr1.X_add_number >= -0x8000 @@ -5079,9 +5081,17 @@ macro (ip) abort (); if (breg != 0) - macro_build ((char *) NULL, &icnt, (expressionS *) NULL, - HAVE_32BIT_ADDRESSES ? "addu" : "daddu", - "d,v,t", treg, tempreg, breg); + { + char *s; + + if (mips_pic == EMBEDDED_PIC || mips_pic == NO_PIC) + s = (dbl || HAVE_64BIT_ADDRESSES) ? "daddu" : "addu"; + else + s = HAVE_64BIT_ADDRESSES ? "daddu" : "addu"; + + macro_build ((char *) NULL, &icnt, (expressionS *) NULL, s, + "d,v,t", treg, tempreg, breg); + } if (! used_at) return; @@ -6751,7 +6761,7 @@ macro2 (ip) } else { - load_register (&icnt, AT, &imm_expr, 0); + load_register (&icnt, AT, &imm_expr, HAVE_64BIT_GPRS); macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "xor", "d,v,t", dreg, sreg, AT); used_at = 1; @@ -6787,7 +6797,7 @@ macro2 (ip) } else { - load_register (&icnt, AT, &imm_expr, 0); + load_register (&icnt, AT, &imm_expr, HAVE_64BIT_GPRS); macro_build ((char *) NULL, &icnt, (expressionS *) NULL, mask == M_SGE_I ? "slt" : "sltu", "d,v,t", dreg, sreg, AT); @@ -6815,7 +6825,7 @@ macro2 (ip) case M_SGTU_I: s = "sltu"; sgti: - load_register (&icnt, AT, &imm_expr, 0); + load_register (&icnt, AT, &imm_expr, HAVE_64BIT_GPRS); macro_build ((char *) NULL, &icnt, (expressionS *) NULL, s, "d,v,t", dreg, AT, sreg); break; @@ -6838,7 +6848,7 @@ macro2 (ip) case M_SLEU_I: s = "sltu"; slei: - load_register (&icnt, AT, &imm_expr, 0); + load_register (&icnt, AT, &imm_expr, HAVE_64BIT_GPRS); macro_build ((char *) NULL, &icnt, (expressionS *) NULL, s, "d,v,t", dreg, AT, sreg); macro_build ((char *) NULL, &icnt, &expr1, "xori", "t,r,i", dreg, dreg, @@ -6854,7 +6864,7 @@ macro2 (ip) dreg, sreg, (int) BFD_RELOC_LO16); return; } - load_register (&icnt, AT, &imm_expr, 0); + load_register (&icnt, AT, &imm_expr, HAVE_64BIT_GPRS); macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "slt", "d,v,t", dreg, sreg, AT); break; @@ -6868,7 +6878,7 @@ macro2 (ip) dreg, sreg, (int) BFD_RELOC_LO16); return; } - load_register (&icnt, AT, &imm_expr, 0); + load_register (&icnt, AT, &imm_expr, HAVE_64BIT_GPRS); macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "sltu", "d,v,t", dreg, sreg, AT); break; @@ -6925,7 +6935,7 @@ macro2 (ip) } else { - load_register (&icnt, AT, &imm_expr, 0); + load_register (&icnt, AT, &imm_expr, HAVE_64BIT_GPRS); macro_build ((char *) NULL, &icnt, (expressionS *) NULL, "xor", "d,v,t", dreg, sreg, AT); used_at = 1; @@ -6990,7 +7000,7 @@ macro2 (ip) case M_TNE_I: s = "tne"; trap: - load_register (&icnt, AT, &imm_expr, 0); + load_register (&icnt, AT, &imm_expr, HAVE_64BIT_GPRS); macro_build ((char *) NULL, &icnt, (expressionS *) NULL, s, "s,t", sreg, AT); break; diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index fb10158..d8617cf 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,14 @@ +2002-02-25 Thiemo Seufer + + * mips-gp64-fp32-pic.d: Fix test of 64bit register loads. + * mips-gp64-fp32-pic.s: Likewise. + * mips-gp64-fp32.d: Likewise. + * mips-gp64-fp32.s: Likewise. + * mips-gp64-fp64-pic.d: Likewise. + * mips-gp64-fp64-pic.s: Likewise. + * mips-gp64-fp64.d: Likewise. + * mips-gp64-fp64.s: Likewise. + 2002-02-25 Alan Modra * gas/hppa/reloc/reloc.exp: Update copyright date. diff --git a/gas/testsuite/gas/mips/mips-gp64-fp32-pic.d b/gas/testsuite/gas/mips/mips-gp64-fp32-pic.d index 27ad78c..a05e1e0 100644 --- a/gas/testsuite/gas/mips/mips-gp64-fp32-pic.d +++ b/gas/testsuite/gas/mips/mips-gp64-fp32-pic.d @@ -22,12 +22,12 @@ Disassembly of section .text: 30: 24840000 addiu a0,a0,0 34: 8f840000 lw a0,0\(gp\) 38: 00000000 nop - 3c: 24840228 addiu a0,a0,552 - 40: 10000079 b 228 <[^>]*> + 3c: 24840230 addiu a0,a0,560 + 40: 1000007b b 230 <[^>]*> 44: 00000000 nop 48: 8f990000 lw t9,0\(gp\) 4c: 00000000 nop - 50: 27390228 addiu t9,t9,552 + 50: 27390230 addiu t9,t9,560 54: 0320f809 jalr t9 58: 00000000 nop 5c: 8fbc0008 lw gp,8\(sp\) @@ -41,7 +41,7 @@ Disassembly of section .text: 7c: 8c840000 lw a0,0\(a0\) 80: 8f840000 lw a0,0\(gp\) 84: 00000000 nop - 88: 24840228 addiu a0,a0,552 + 88: 24840230 addiu a0,a0,560 8c: 8c840000 lw a0,0\(a0\) 90: 8f840000 lw a0,0\(gp\) 94: 00000000 nop @@ -53,7 +53,7 @@ Disassembly of section .text: ac: dc840000 ld a0,0\(a0\) b0: 8f840000 lw a0,0\(gp\) b4: 00000000 nop - b8: 24840228 addiu a0,a0,552 + b8: 24840230 addiu a0,a0,560 bc: dc840000 ld a0,0\(a0\) c0: 8f810000 lw at,0\(gp\) c4: 00000000 nop @@ -111,10 +111,10 @@ Disassembly of section .text: 194: 64a40064 daddiu a0,a1,100 198: 0004202b sltu a0,zero,a0 19c: 00a0202d move a0,a1 - 1a0: df840000 ld a0,0\(gp\) + 1a0: 8f840000 lw a0,0\(gp\) 1a4: 00000000 nop 1a8: 24840000 addiu a0,a0,0 - 1ac: df840000 ld a0,0\(gp\) + 1ac: 8f840000 lw a0,0\(gp\) 1b0: 00000000 nop 1b4: 24840000 addiu a0,a0,0 1b8: 8f810000 lw at,0\(gp\) @@ -127,24 +127,26 @@ Disassembly of section .text: 1d4: 24210000 addiu at,at,0 1d8: b0240000 sdl a0,0\(at\) 1dc: b4240007 sdr a0,7\(at\) - 1e0: 3c018000 lui at,0x8000 - 1e4: 0081082a slt at,a0,at - 1e8: 1020000f beqz at,228 <[^>]*> - 1ec: 00000000 nop - 1f0: 34018000 li at,0x8000 - 1f4: 00010c78 dsll at,at,0x11 - 1f8: 0081082b sltu at,a0,at - 1fc: 1020000a beqz at,228 <[^>]*> - 200: 00000000 nop - 204: 3c018000 lui at,0x8000 - 208: 0081082a slt at,a0,at - 20c: 14200006 bnez at,228 <[^>]*> - 210: 00000000 nop - 214: 34018000 li at,0x8000 - 218: 00010c78 dsll at,at,0x11 - 21c: 0081082b sltu at,a0,at - 220: 14200001 bnez at,228 <[^>]*> - 224: 00000000 nop + 1e0: 34018000 li at,0x8000 + 1e4: 00010c38 dsll at,at,0x10 + 1e8: 0081082a slt at,a0,at + 1ec: 10200010 beqz at,230 <[^>]*> + 1f0: 00000000 nop + 1f4: 34018000 li at,0x8000 + 1f8: 00010c78 dsll at,at,0x11 + 1fc: 0081082b sltu at,a0,at + 200: 1020000b beqz at,230 <[^>]*> + 204: 00000000 nop + 208: 34018000 li at,0x8000 + 20c: 00010c38 dsll at,at,0x10 + 210: 0081082a slt at,a0,at + 214: 14200006 bnez at,230 <[^>]*> + 218: 00000000 nop + 21c: 34018000 li at,0x8000 + 220: 00010c78 dsll at,at,0x11 + 224: 0081082b sltu at,a0,at + 228: 14200001 bnez at,230 <[^>]*> + 22c: 00000000 nop -0+0228 <[^>]*>: +0+0230 <[^>]*>: ... diff --git a/gas/testsuite/gas/mips/mips-gp64-fp32-pic.s b/gas/testsuite/gas/mips/mips-gp64-fp32-pic.s index 6d62890..b00370e 100644 --- a/gas/testsuite/gas/mips/mips-gp64-fp32-pic.s +++ b/gas/testsuite/gas/mips/mips-gp64-fp32-pic.s @@ -120,10 +120,10 @@ func: # 0198 sltu a0,zero,a0 move $4, $5 # 019c move a0,a1 - dla $4, shared # 01a0 ld a0,got(.sdata)(gp) + dla $4, shared # 01a0 lw a0,got(.sdata)(gp) # 01a4 nop # 01a8 addiu a0,a0,lo(shared) - dla $4, unshared # 01ac ld a0,got(.data)(gp) + dla $4, unshared # 01ac lw a0,got(.data)(gp) # 01b0 nop # 01b4 addiu a0,a0,lo(unshared) uld $4, unshared # 01b8 lw at,got(.data)(gp) @@ -137,24 +137,26 @@ func: # 01d8 sdl a0,0(at) # 01dc sdr a0,7(at) - bgt $4, 0x7fffffff, end # 01e0 lui at,0x8000 - # 01e4 slt at,a0,at - # 01e8 beqz at,end - # 01ec nop - bgtu $4, 0xffffffff, end # 01f0 li at,0x8000 - # 01f4 dsll at,at,17 - # 01f8 sltu at,a0,at - # 01fc beqz at,end - # 0200 nop - ble $4, 0x7fffffff, end # 0204 lui at,0x8000 - # 0208 slt at,a0,at - # 020c bnez at,end - # 0210 nop - bleu $4, 0xffffffff, end # 0214 li at,0x8000 - # 0218 dsll at,at,17 - # 021c sltu at,a0,at - # 0220 bnez at,end - # 0224 nop + bgt $4, 0x7fffffff, end # 01e0 li at,0x8000 + # 01e4 dsll at,at,0x10 + # 01e8 slt at,a0,at + # 01ec beqz at,end + # 01f0 nop + bgtu $4, 0xffffffff, end # 01f4 li at,0x8000 + # 01f8 dsll at,at,17 + # 01fc sltu at,a0,at + # 0200 beqz at,end + # 0204 nop + ble $4, 0x7fffffff, end # 0208 li at,0x8000 + # 020c dsll at,at,0x10 + # 0210 slt at,a0,at + # 0214 bnez at,end + # 0218 nop + bleu $4, 0xffffffff, end # 021c li at,0x8000 + # 0220 dsll at,at,17 + # 0224 sltu at,a0,at + # 0228 bnez at,end + # 022c nop # Should produce warnings given -mfp32 # add.d $f1, $f2, $f3 diff --git a/gas/testsuite/gas/mips/mips-gp64-fp32.d b/gas/testsuite/gas/mips/mips-gp64-fp32.d index df8d1ec..f0e072a 100644 --- a/gas/testsuite/gas/mips/mips-gp64-fp32.d +++ b/gas/testsuite/gas/mips/mips-gp64-fp32.d @@ -13,19 +13,19 @@ Disassembly of section .text: c: 3c040000 lui a0,0x0 10: 24840000 addiu a0,a0,0 14: 3c040000 lui a0,0x0 - 18: 24840154 addiu a0,a0,340 - 1c: 08000055 j 154 <[^>]*> - 20: 0c000055 jal 154 <[^>]*> + 18: 2484015c addiu a0,a0,348 + 1c: 08000057 j 15c <[^>]*> + 20: 0c000057 jal 15c <[^>]*> 24: 8f84c000 lw a0,-16384\(gp\) 28: 3c040000 lui a0,0x0 2c: 8c840000 lw a0,0\(a0\) 30: 3c040000 lui a0,0x0 - 34: 8c840154 lw a0,340\(a0\) + 34: 8c84015c lw a0,348\(a0\) 38: df84c000 ld a0,-16384\(gp\) 3c: 3c040000 lui a0,0x0 40: dc840000 ld a0,0\(a0\) 44: 3c040000 lui a0,0x0 - 48: dc840154 ld a0,340\(a0\) + 48: dc84015c ld a0,348\(a0\) 4c: af84c000 sw a0,-16384\(gp\) 50: 3c010000 lui at,0x0 54: ac240000 sw a0,0\(at\) @@ -78,20 +78,22 @@ Disassembly of section .text: 110: 24210000 addiu at,at,0 114: b0240000 sdl a0,0\(at\) 118: b4240007 sdr a0,7\(at\) - 11c: 3c018000 lui at,0x8000 - 120: 0081082a slt at,a0,at - 124: 1020000b beqz at,154 <[^>]*> - 128: 34018000 li at,0x8000 - 12c: 00010c78 dsll at,at,0x11 - 130: 0081082b sltu at,a0,at - 134: 10200007 beqz at,154 <[^>]*> - 138: 3c018000 lui at,0x8000 - 13c: 0081082a slt at,a0,at - 140: 14200004 bnez at,154 <[^>]*> - 144: 34018000 li at,0x8000 - 148: 00010c78 dsll at,at,0x11 - 14c: 0081082b sltu at,a0,at - 150: 14200000 bnez at,154 <[^>]*> + 11c: 34018000 li at,0x8000 + 120: 00010c38 dsll at,at,0x10 + 124: 0081082a slt at,a0,at + 128: 1020000c beqz at,15c <[^>]*> + 12c: 34018000 li at,0x8000 + 130: 00010c78 dsll at,at,0x11 + 134: 0081082b sltu at,a0,at + 138: 10200008 beqz at,15c <[^>]*> + 13c: 34018000 li at,0x8000 + 140: 00010c38 dsll at,at,0x10 + 144: 0081082a slt at,a0,at + 148: 14200004 bnez at,15c <[^>]*> + 14c: 34018000 li at,0x8000 + 150: 00010c78 dsll at,at,0x11 + 154: 0081082b sltu at,a0,at + 158: 14200000 bnez at,15c <[^>]*> -0+0154 <[^>]*>: +0+015c <[^>]*>: ... diff --git a/gas/testsuite/gas/mips/mips-gp64-fp32.s b/gas/testsuite/gas/mips/mips-gp64-fp32.s index 350102d..dc0c745 100644 --- a/gas/testsuite/gas/mips/mips-gp64-fp32.s +++ b/gas/testsuite/gas/mips/mips-gp64-fp32.s @@ -85,20 +85,22 @@ func: # 0114 sdl a0,0(at) # 0118 sdr a0,7(at) - bgt $4, 0x7fffffff, end # 011c lui at,0x8000 - # 0120 slt at,a0,at - # 0124 beqz at,end - bgtu $4, 0xffffffff, end # 0128 li at,0x8000 - # 012c dsll at,at,17 - # 0130 sltu at,a0,at - # 0134 beqz at,end - ble $4, 0x7fffffff, end # 0138 lui at,0x8000 - # 013c slt at,a0,at - # 0140 bnez at,end - bleu $4, 0xffffffff, end # 0144 li at,0x8000 - # 0148 dsll at,at,17 - # 014c sltu at,a0,at - # 0150 bnez at,end + bgt $4, 0x7fffffff, end # 011c li at,0x8000 + # 0120 dsll at,at,0x10 + # 0124 slt at,a0,at + # 0128 beqz at,end + bgtu $4, 0xffffffff, end # 012c li at,0x8000 + # 0130 dsll at,at,17 + # 0134 sltu at,a0,at + # 0138 beqz at,end + ble $4, 0x7fffffff, end # 013c li at,0x8000 + # 0140 dsll at,at,0x10 + # 0144 slt at,a0,at + # 0148 bnez at,end + bleu $4, 0xffffffff, end # 014c li at,0x8000 + # 0150 dsll at,at,17 + # 0154 sltu at,a0,at + # 0158 bnez at,end # Should produce warnings given -mfp32 # add.d $f1, $f2, $f3 diff --git a/gas/testsuite/gas/mips/mips-gp64-fp64-pic.d b/gas/testsuite/gas/mips/mips-gp64-fp64-pic.d index 449e67c..0e95795 100644 --- a/gas/testsuite/gas/mips/mips-gp64-fp64-pic.d +++ b/gas/testsuite/gas/mips/mips-gp64-fp64-pic.d @@ -22,12 +22,12 @@ Disassembly of section .text: 30: 24840000 addiu a0,a0,0 34: 8f840000 lw a0,0\(gp\) 38: 00000000 nop - 3c: 2484022c addiu a0,a0,556 - 40: 1000007a b 22c <[^>]*> + 3c: 24840234 addiu a0,a0,564 + 40: 1000007c b 234 <[^>]*> 44: 00000000 nop 48: 8f990000 lw t9,0\(gp\) 4c: 00000000 nop - 50: 2739022c addiu t9,t9,556 + 50: 27390234 addiu t9,t9,564 54: 0320f809 jalr t9 58: 00000000 nop 5c: 8fbc0008 lw gp,8\(sp\) @@ -41,7 +41,7 @@ Disassembly of section .text: 7c: 8c840000 lw a0,0\(a0\) 80: 8f840000 lw a0,0\(gp\) 84: 00000000 nop - 88: 2484022c addiu a0,a0,556 + 88: 24840234 addiu a0,a0,564 8c: 8c840000 lw a0,0\(a0\) 90: 8f840000 lw a0,0\(gp\) 94: 00000000 nop @@ -53,7 +53,7 @@ Disassembly of section .text: ac: dc840000 ld a0,0\(a0\) b0: 8f840000 lw a0,0\(gp\) b4: 00000000 nop - b8: 2484022c addiu a0,a0,556 + b8: 24840234 addiu a0,a0,564 bc: dc840000 ld a0,0\(a0\) c0: 8f810000 lw at,0\(gp\) c4: 00000000 nop @@ -111,10 +111,10 @@ Disassembly of section .text: 194: 64a40064 daddiu a0,a1,100 198: 0004202b sltu a0,zero,a0 19c: 00a0202d move a0,a1 - 1a0: df840000 ld a0,0\(gp\) + 1a0: 8f840000 lw a0,0\(gp\) 1a4: 00000000 nop 1a8: 24840000 addiu a0,a0,0 - 1ac: df840000 ld a0,0\(gp\) + 1ac: 8f840000 lw a0,0\(gp\) 1b0: 00000000 nop 1b4: 24840000 addiu a0,a0,0 1b8: 8f810000 lw at,0\(gp\) @@ -127,25 +127,27 @@ Disassembly of section .text: 1d4: 24210000 addiu at,at,0 1d8: b0240000 sdl a0,0\(at\) 1dc: b4240007 sdr a0,7\(at\) - 1e0: 3c018000 lui at,0x8000 - 1e4: 0081082a slt at,a0,at - 1e8: 10200010 beqz at,22c <[^>]*> - 1ec: 00000000 nop - 1f0: 34018000 li at,0x8000 - 1f4: 00010c78 dsll at,at,0x11 - 1f8: 0081082b sltu at,a0,at - 1fc: 1020000b beqz at,22c <[^>]*> - 200: 00000000 nop - 204: 3c018000 lui at,0x8000 - 208: 0081082a slt at,a0,at - 20c: 14200007 bnez at,22c <[^>]*> - 210: 00000000 nop - 214: 34018000 li at,0x8000 - 218: 00010c78 dsll at,at,0x11 - 21c: 0081082b sltu at,a0,at - 220: 14200002 bnez at,22c <[^>]*> - 224: 00000000 nop - 228: 46231040 add.d \$f1,\$f2,\$f3 + 1e0: 34018000 li at,0x8000 + 1e4: 00010c38 dsll at,at,0x10 + 1e8: 0081082a slt at,a0,at + 1ec: 10200011 beqz at,234 <[^>]*> + 1f0: 00000000 nop + 1f4: 34018000 li at,0x8000 + 1f8: 00010c78 dsll at,at,0x11 + 1fc: 0081082b sltu at,a0,at + 200: 1020000c beqz at,234 <[^>]*> + 204: 00000000 nop + 208: 34018000 li at,0x8000 + 20c: 00010c38 dsll at,at,0x10 + 210: 0081082a slt at,a0,at + 214: 14200007 bnez at,234 <[^>]*> + 218: 00000000 nop + 21c: 34018000 li at,0x8000 + 220: 00010c78 dsll at,at,0x11 + 224: 0081082b sltu at,a0,at + 228: 14200002 bnez at,234 <[^>]*> + 22c: 00000000 nop + 230: 46231040 add.d \$f1,\$f2,\$f3 -0+022c <[^>]*>: +0+0234 <[^>]*>: ... diff --git a/gas/testsuite/gas/mips/mips-gp64-fp64-pic.s b/gas/testsuite/gas/mips/mips-gp64-fp64-pic.s index 0d42de3..7c9abce 100644 --- a/gas/testsuite/gas/mips/mips-gp64-fp64-pic.s +++ b/gas/testsuite/gas/mips/mips-gp64-fp64-pic.s @@ -120,10 +120,10 @@ func: # 0198 sltu a0,zero,a0 move $4, $5 # 019c move a0,a1 - dla $4, shared # 01a0 ld a0,got(.sdata)(gp) + dla $4, shared # 01a0 lw a0,got(.sdata)(gp) # 01a4 nop # 01a8 addiu a0,a0,lo(shared) - dla $4, unshared # 01ac ld a0,got(.data)(gp) + dla $4, unshared # 01ac lw a0,got(.data)(gp) # 01b0 nop # 01b4 addiu a0,a0,lo(unshared) uld $4, unshared # 01b8 lw at,got(.data)(gp) @@ -137,26 +137,28 @@ func: # 01d8 sdl a0,0(at) # 01dc sdr a0,7(at) - bgt $4, 0x7fffffff, end # 01e0 lui at,0x8000 - # 01e4 slt at,a0,at - # 01e8 beqz at,end - # 01ec nop - bgtu $4, 0xffffffff, end # 01f0 li at,0x8000 - # 01f4 dsll at,at,17 - # 01f8 sltu at,a0,at - # 01fc beqz at,end - # 0200 nop - ble $4, 0x7fffffff, end # 0204 lui at,0x8000 - # 0208 slt at,a0,at - # 020c bnez at,end - # 0210 nop - bleu $4, 0xffffffff, end # 0214 li at,0x8000 - # 0218 dsll at,at,17 - # 021c sltu at,a0,at - # 0220 bnez at,end - # 0224 nop + bgt $4, 0x7fffffff, end # 01e0 li at,0x8000 + # 01e4 dsll at,at,0x10 + # 01e8 slt at,a0,at + # 01ec beqz at,end + # 01f0 nop + bgtu $4, 0xffffffff, end # 01f4 li at,0x8000 + # 01f8 dsll at,at,17 + # 01fc sltu at,a0,at + # 0200 beqz at,end + # 0204 nop + ble $4, 0x7fffffff, end # 0208 li at,0x8000 + # 020c dsll at,at,0x10 + # 0210 slt at,a0,at + # 0214 bnez at,end + # 0218 nop + bleu $4, 0xffffffff, end # 021c li at,0x8000 + # 0220 dsll at,at,17 + # 0224 sltu at,a0,at + # 0228 bnez at,end + # 022c nop - add.d $f1, $f2, $f3 # 0228 add.d $f1,$f2,$f3 + add.d $f1, $f2, $f3 # 0230 add.d $f1,$f2,$f3 .end func end: diff --git a/gas/testsuite/gas/mips/mips-gp64-fp64.d b/gas/testsuite/gas/mips/mips-gp64-fp64.d index 804f01e..29ddb89 100644 --- a/gas/testsuite/gas/mips/mips-gp64-fp64.d +++ b/gas/testsuite/gas/mips/mips-gp64-fp64.d @@ -13,19 +13,19 @@ Disassembly of section .text: c: 3c040000 lui a0,0x0 10: 24840000 addiu a0,a0,0 14: 3c040000 lui a0,0x0 - 18: 24840158 addiu a0,a0,344 - 1c: 08000056 j 158 <[^>]*> - 20: 0c000056 jal 158 <[^>]*> + 18: 24840160 addiu a0,a0,352 + 1c: 08000058 j 160 <[^>]*> + 20: 0c000058 jal 160 <[^>]*> 24: 8f84c000 lw a0,-16384\(gp\) 28: 3c040000 lui a0,0x0 2c: 8c840000 lw a0,0\(a0\) 30: 3c040000 lui a0,0x0 - 34: 8c840158 lw a0,344\(a0\) + 34: 8c840160 lw a0,352\(a0\) 38: df84c000 ld a0,-16384\(gp\) 3c: 3c040000 lui a0,0x0 40: dc840000 ld a0,0\(a0\) 44: 3c040000 lui a0,0x0 - 48: dc840158 ld a0,344\(a0\) + 48: dc840160 ld a0,352\(a0\) 4c: af84c000 sw a0,-16384\(gp\) 50: 3c010000 lui at,0x0 54: ac240000 sw a0,0\(at\) @@ -78,21 +78,23 @@ Disassembly of section .text: 110: 24210000 addiu at,at,0 114: b0240000 sdl a0,0\(at\) 118: b4240007 sdr a0,7\(at\) - 11c: 3c018000 lui at,0x8000 - 120: 0081082a slt at,a0,at - 124: 1020000c beqz at,158 <[^>]*> - 128: 34018000 li at,0x8000 - 12c: 00010c78 dsll at,at,0x11 - 130: 0081082b sltu at,a0,at - 134: 10200008 beqz at,158 <[^>]*> - 138: 3c018000 lui at,0x8000 - 13c: 0081082a slt at,a0,at - 140: 14200005 bnez at,158 <[^>]*> - 144: 34018000 li at,0x8000 - 148: 00010c78 dsll at,at,0x11 - 14c: 0081082b sltu at,a0,at - 150: 14200001 bnez at,158 <[^>]*> - 154: 46231040 add.d \$f1,\$f2,\$f3 + 11c: 34018000 li at,0x8000 + 120: 00010c38 dsll at,at,0x10 + 124: 0081082a slt at,a0,at + 128: 1020000d beqz at,160 <[^>]*> + 12c: 34018000 li at,0x8000 + 130: 00010c78 dsll at,at,0x11 + 134: 0081082b sltu at,a0,at + 138: 10200009 beqz at,160 <[^>]*> + 13c: 34018000 li at,0x8000 + 140: 00010c38 dsll at,at,0x10 + 144: 0081082a slt at,a0,at + 148: 14200005 bnez at,160 <[^>]*> + 14c: 34018000 li at,0x8000 + 150: 00010c78 dsll at,at,0x11 + 154: 0081082b sltu at,a0,at + 158: 14200001 bnez at,160 <[^>]*> + 15c: 46231040 add.d \$f1,\$f2,\$f3 -0+0158 <[^>]*>: +0+0160 <[^>]*>: ... diff --git a/gas/testsuite/gas/mips/mips-gp64-fp64.s b/gas/testsuite/gas/mips/mips-gp64-fp64.s index cc5a74d..88f99e0 100644 --- a/gas/testsuite/gas/mips/mips-gp64-fp64.s +++ b/gas/testsuite/gas/mips/mips-gp64-fp64.s @@ -85,22 +85,24 @@ func: # 0114 sdl a0,0(at) # 0118 sdr a0,7(at) - bgt $4, 0x7fffffff, end # 011c lui at,0x8000 - # 0120 slt at,a0,at - # 0124 beqz at,end - bgtu $4, 0xffffffff, end # 0128 li at,0x8000 - # 012c dsll at,at,17 - # 0130 sltu at,a0,at - # 0134 beqz at,end - ble $4, 0x7fffffff, end # 0138 lui at,0x8000 - # 013c slt at,a0,at - # 0140 bnez at,end - bleu $4, 0xffffffff, end # 0144 li at,0x8000 - # 0148 dsll at,at,17 - # 014c sltu at,a0,at - # 0150 bnez at,end + bgt $4, 0x7fffffff, end # 011c li at,0x8000 + # 0120 dsll at,at,0x10 + # 0124 slt at,a0,at + # 0128 beqz at,end + bgtu $4, 0xffffffff, end # 012c li at,0x8000 + # 0130 dsll at,at,17 + # 0134 sltu at,a0,at + # 0138 beqz at,end + ble $4, 0x7fffffff, end # 013c li at,0x8000 + # 0140 dsll at,at,0x10 + # 0144 slt at,a0,at + # 0148 bnez at,end + bleu $4, 0xffffffff, end # 014c li at,0x8000 + # 0150 dsll at,at,17 + # 0154 sltu at,a0,at + # 0158 bnez at,end - add.d $f1, $f2, $f3 # 0154 add.d $f1,$f2,$f3 + add.d $f1, $f2, $f3 # 015c add.d $f1,$f2,$f3 end: # Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... -- 2.7.4