* [PATCH] Fix distinction of 32/64bit addresses in MIPS gas @ 2001-08-24 18:26 Thiemo Seufer 2001-08-31 8:02 ` Richard Sandiford 0 siblings, 1 reply; 62+ messages in thread From: Thiemo Seufer @ 2001-08-24 18:26 UTC (permalink / raw) To: binutils Hi All, we can't have 64bit addresses in a 32bit object file format, so I added a check for mips_64 to the relevant macro. This will fail for o64 ABI and possibly for eabi64 too, but these are both virtually unimplemented in gas. (I don't really know how eabi64 is defined.) Further testing exposed a bug in $gp loading (ld instead of lw), I fixed this also. Tested for mips-elf, mips64el-elf, mips64-linux. Thiemo 2001-08-25 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> /gas/ChangeLog * tc_mips.c (HAVE_32BIT_ADDRESSES): Check for 64bit object file format also. (HAVE_64BIT_ADDRESSES): New define. (macro): Fix address load instruction. /gas/testsuite/ChangeLog * gas/mips/ld.d: Use 32bit instructions for addresses. * gas/mips/mips-gp64-fp32-pic.d: Likewise. * gas/mips/mips-gp64-fp32-pic.s: Likewise. * gas/mips/mips-gp64-fp32.d: Likewise. * gas/mips/mips-gp64-fp32.s: Likewise. * gas/mips/mips-gp64-fp64-pic.d: Likewise. * gas/mips/mips-gp64-fp64-pic.s: Likewise. * gas/mips/mips-gp64-fp64.d: Likewise. * gas/mips/mips-gp64-fp64.s: Likewise. * gas/mips/elempic.d: Likewise. * gas/mips/uld.d: Likewise. * gas/mips/usd.d: Likewise. diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/config/tc-mips.c src/gas/config/tc-mips.c --- src-orig/gas/config/tc-mips.c Sat Aug 18 21:47:23 2001 +++ src/gas/config/tc-mips.c Tue Aug 21 18:21:49 2001 @@ -270,9 +270,15 @@ static int mips_32bit_abi = 0; #define HAVE_64BIT_GPRS (! HAVE_32BIT_GPRS) #define HAVE_64BIT_FPRS (! HAVE_32BIT_FPRS) -#define HAVE_32BIT_ADDRESSES \ - (HAVE_32BIT_GPRS \ - || bfd_arch_bits_per_address (stdoutput) == 32) +/* We can only have 64bit addresses if the object file format + supports it. FIXME: We abuse mips_64 as a indicator for + such support. */ +#define HAVE_32BIT_ADDRESSES \ + (HAVE_32BIT_GPRS \ + || bfd_arch_bits_per_address (stdoutput) == 32 \ + || ! mips_64) + +#define HAVE_64BIT_ADDRESSES (! HAVE_32BIT_ADDRESSES) /* Whether the processor uses hardware interlocks to protect reads from the HI and LO registers, and thus does not @@ -4288,7 +4458,7 @@ macro (ip) 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", + HAVE_32BIT_ADDRESSES ? "lw" : "ld", "t,o(b)", tempreg, lw_reloc_type, GP); if (expr1.X_add_number == 0) { diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/ld.d src/gas/testsuite/gas/mips/ld.d --- src-orig/gas/testsuite/gas/mips/ld.d Mon Jul 2 14:34:18 2001 +++ src/gas/testsuite/gas/mips/ld.d Tue Aug 21 19:20:35 2001 @@ -628,12 +628,12 @@ Disassembly of section .text: 0+05d0 <[^>]*> sw a1,4\(zero\) 0+05d4 <[^>]*> lui a0,[-0-9x]+ [ ]*5d4: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+05d8 <[^>]*> daddu a0,a0,a1 +0+05d8 <[^>]*> addu a0,a0,a1 0+05dc <[^>]*> ld a0,[-0-9]+\(a0\) [ ]*5dc: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+05e0 <[^>]*> lui at,[-0-9x]+ [ ]*5e0: [A-Z0-9_]*HI[A-Z0-9_]* .sbss.* -0+05e4 <[^>]*> daddu at,at,a1 +0+05e4 <[^>]*> addu at,at,a1 0+05e8 <[^>]*> sd a0,[-0-9]+\(at\) [ ]*5e8: [A-Z0-9_]*LO[A-Z0-9_]* .sbss.* 0+05ec <[^>]*> nop diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/mips-gp64-fp32-pic.d src/gas/testsuite/gas/mips/mips-gp64-fp32-pic.d --- src-orig/gas/testsuite/gas/mips/mips-gp64-fp32-pic.d Tue Aug 7 17:20:30 2001 +++ src/gas/testsuite/gas/mips/mips-gp64-fp32-pic.d Tue Aug 21 19:20:35 2001 @@ -10,121 +10,121 @@ Disassembly of section .text: 0: 3c1c0000 lui gp,0x0 4: 279c0000 addiu gp,gp,0 8: 0399e021 addu gp,gp,t9 - c: ffbc0008 sd gp,8\(sp\) - 10: 009c202d daddu a0,a0,gp + c: afbc0008 sw gp,8\(sp\) + 10: 009c2021 addu a0,a0,gp 14: 3c041234 lui a0,0x1234 18: 34845678 ori a0,a0,0x5678 1c: 8f840000 lw a0,0\(gp\) 20: 00000000 nop - 24: 64840000 daddiu a0,a0,0 + 24: 24840000 addiu a0,a0,0 28: 8f840000 lw a0,0\(gp\) 2c: 00000000 nop - 30: 64840000 daddiu a0,a0,0 + 30: 24840000 addiu a0,a0,0 34: 8f840000 lw a0,0\(gp\) 38: 00000000 nop - 3c: 64840228 daddiu a0,a0,552 + 3c: 24840228 addiu a0,a0,552 40: 10000079 b 228 <[^>]*> 44: 00000000 nop - 48: df990000 ld t9,0\(gp\) + 48: 8f990000 lw t9,0\(gp\) 4c: 00000000 nop - 50: 67390228 daddiu t9,t9,552 + 50: 27390228 addiu t9,t9,552 54: 0320f809 jalr t9 58: 00000000 nop - 5c: dfbc0008 ld gp,8\(sp\) - 60: df840000 ld a0,0\(gp\) + 5c: 8fbc0008 lw gp,8\(sp\) + 60: 8f840000 lw a0,0\(gp\) 64: 00000000 nop - 68: 64840000 daddiu a0,a0,0 + 68: 24840000 addiu a0,a0,0 6c: 8c840000 lw a0,0\(a0\) - 70: df840000 ld a0,0\(gp\) + 70: 8f840000 lw a0,0\(gp\) 74: 00000000 nop - 78: 64840000 daddiu a0,a0,0 + 78: 24840000 addiu a0,a0,0 7c: 8c840000 lw a0,0\(a0\) - 80: df840000 ld a0,0\(gp\) + 80: 8f840000 lw a0,0\(gp\) 84: 00000000 nop - 88: 64840228 daddiu a0,a0,552 + 88: 24840228 addiu a0,a0,552 8c: 8c840000 lw a0,0\(a0\) - 90: df840000 ld a0,0\(gp\) + 90: 8f840000 lw a0,0\(gp\) 94: 00000000 nop - 98: 64840000 daddiu a0,a0,0 + 98: 24840000 addiu a0,a0,0 9c: dc840000 ld a0,0\(a0\) - a0: df840000 ld a0,0\(gp\) + a0: 8f840000 lw a0,0\(gp\) a4: 00000000 nop - a8: 64840000 daddiu a0,a0,0 + a8: 24840000 addiu a0,a0,0 ac: dc840000 ld a0,0\(a0\) - b0: df840000 ld a0,0\(gp\) + b0: 8f840000 lw a0,0\(gp\) b4: 00000000 nop - b8: 64840228 daddiu a0,a0,552 + b8: 24840228 addiu a0,a0,552 bc: dc840000 ld a0,0\(a0\) - c0: df810000 ld at,0\(gp\) + c0: 8f810000 lw at,0\(gp\) c4: 00000000 nop - c8: 64210000 daddiu at,at,0 + c8: 24210000 addiu at,at,0 cc: ac240000 sw a0,0\(at\) - d0: df810000 ld at,0\(gp\) + d0: 8f810000 lw at,0\(gp\) d4: 00000000 nop - d8: 64210000 daddiu at,at,0 + d8: 24210000 addiu at,at,0 dc: ac240000 sw a0,0\(at\) - e0: df810000 ld at,0\(gp\) + e0: 8f810000 lw at,0\(gp\) e4: 00000000 nop - e8: 64210000 daddiu at,at,0 + e8: 24210000 addiu at,at,0 ec: fc240000 sd a0,0\(at\) - f0: df810000 ld at,0\(gp\) + f0: 8f810000 lw at,0\(gp\) f4: 00000000 nop - f8: 64210000 daddiu at,at,0 + f8: 24210000 addiu at,at,0 fc: fc240000 sd a0,0\(at\) - 100: df810000 ld at,0\(gp\) + 100: 8f810000 lw at,0\(gp\) 104: 00000000 nop - 108: 64210000 daddiu at,at,0 + 108: 24210000 addiu at,at,0 10c: 80240000 lb a0,0\(at\) 110: 90210001 lbu at,1\(at\) 114: 00042200 sll a0,a0,0x8 118: 00812025 or a0,a0,at - 11c: df810000 ld at,0\(gp\) + 11c: 8f810000 lw at,0\(gp\) 120: 00000000 nop - 124: 64210000 daddiu at,at,0 + 124: 24210000 addiu at,at,0 128: a0240001 sb a0,1\(at\) 12c: 00042202 srl a0,a0,0x8 130: a0240000 sb a0,0\(at\) 134: 90210001 lbu at,1\(at\) 138: 00042200 sll a0,a0,0x8 13c: 00812025 or a0,a0,at - 140: df810000 ld at,0\(gp\) + 140: 8f810000 lw at,0\(gp\) 144: 00000000 nop - 148: 64210000 daddiu at,at,0 + 148: 24210000 addiu at,at,0 14c: 88240000 lwl a0,0\(at\) 150: 98240003 lwr a0,3\(at\) - 154: df810000 ld at,0\(gp\) + 154: 8f810000 lw at,0\(gp\) 158: 00000000 nop - 15c: 64210000 daddiu at,at,0 + 15c: 24210000 addiu at,at,0 160: a8240000 swl a0,0\(at\) 164: b8240003 swr a0,3\(at\) 168: 3404ffc0 li a0,0xffc0 16c: 000423bc dsll32 a0,a0,0xe - 170: df810000 ld at,0\(gp\) + 170: 8f810000 lw at,0\(gp\) 174: dc240000 ld a0,0\(at\) 178: 3c013ff0 lui at,0x3ff0 17c: 44810800 mtc1 at,\$f1 180: 44800000 mtc1 zero,\$f0 - 184: df810000 ld at,0\(gp\) + 184: 8f810000 lw at,0\(gp\) 188: d4200008 ldc1 \$f0,8\(at\) 18c: 64a40064 daddiu a0,a1,100 190: 2c840001 sltiu a0,a0,1 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: 64840000 daddiu a0,a0,0 - 1ac: df840000 ld a0,0\(gp\) + 1a8: 24840000 addiu a0,a0,0 + 1ac: 8f840000 lw a0,0\(gp\) 1b0: 00000000 nop - 1b4: 64840000 daddiu a0,a0,0 - 1b8: df810000 ld at,0\(gp\) + 1b4: 24840000 addiu a0,a0,0 + 1b8: 8f810000 lw at,0\(gp\) 1bc: 00000000 nop - 1c0: 64210000 daddiu at,at,0 + 1c0: 24210000 addiu at,at,0 1c4: 68240000 ldl a0,0\(at\) 1c8: 6c240007 ldr a0,7\(at\) - 1cc: df810000 ld at,0\(gp\) + 1cc: 8f810000 lw at,0\(gp\) 1d0: 00000000 nop - 1d4: 64210000 daddiu at,at,0 + 1d4: 24210000 addiu at,at,0 1d8: b0240000 sdl a0,0\(at\) 1dc: b4240007 sdr a0,7\(at\) 1e0: 3c018000 lui at,0x8000 diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/mips-gp64-fp32-pic.s src/gas/testsuite/gas/mips/mips-gp64-fp32-pic.s --- src-orig/gas/testsuite/gas/mips/mips-gp64-fp32-pic.s Tue Aug 7 17:20:30 2001 +++ src/gas/testsuite/gas/mips/mips-gp64-fp32-pic.s Tue Aug 21 19:20:35 2001 @@ -19,101 +19,101 @@ func: # 0004 addiu gp,gp,lo(_gp_disp) # 0008 addu gp,gp,t9 .set reorder - .cprestore 8 # 000c sd gp,8(sp) - .cpadd $4 # 0010 daddu a0,a0,gp + .cprestore 8 # 000c sw gp,8(sp) + .cpadd $4 # 0010 addu a0,a0,gp li $4, 0x12345678 # 0014 lui a0,0x1234 # 0018 ori a0,a0,0x5678 la $4, shared # 001c lw a0,got(.sdata)(gp) # 0020 nop - # 0024 daddiu a0,a0,lo(shared) + # 0024 addiu a0,a0,lo(shared) la $4, unshared # 0028 lw a0,got(.data)(gp) # 002c nop - # 0030 daddiu a0,a0,lo(unshared) + # 0030 addiu a0,a0,lo(unshared) la $4, end # 0034 lw a0,got(.text)(gp) # 0038 nop - # 003c daddiu a0,a0,lo(end) + # 003c addiu a0,a0,lo(end) j end # 0040 b end # 0044 nop - jal end # 0048 ld t9,got(.text)(gp) + jal end # 0048 lw t9,got(.text)(gp) # 004c nop - # 0050 daddiu t9,t9,lo(end) + # 0050 addiu t9,t9,lo(end) # 0054 jalr t9 # 0058 nop - # 005c ld gp,8(sp) - lw $4, shared # 0060 ld a0,got(.sdata)(gp) + # 005c lw gp,8(sp) + lw $4, shared # 0060 lw a0,got(.sdata)(gp) # 0064 nop - # 0068 daddiu a0,a0,lo(shared) + # 0068 addiu a0,a0,lo(shared) # 006c lw a0,(a0) - lw $4, unshared # 0070 ld a0,got(.data)(gp) + lw $4, unshared # 0070 lw a0,got(.data)(gp) # 0074 nop - # 0078 daddiu a0,a0,lo(unshared) + # 0078 addiu a0,a0,lo(unshared) # 007c lw a0,(a0) - lw $4, end # 0080 ld a0,got(.text)(gp) + lw $4, end # 0080 lw a0,got(.text)(gp) # 0084 nop - # 0088 daddiu a0,a0,lo(end) + # 0088 addiu a0,a0,lo(end) # 008c lw a0,(a0) - ld $4, shared # 0090 ld a0,got(.sdata)(gp) + ld $4, shared # 0090 lw a0,got(.sdata)(gp) # 0094 nop - # 0098 daddiu a0,a0,lo(shared) + # 0098 addiu a0,a0,lo(shared) # 009c ld a0,(a0) - ld $4, unshared # 00a0 ld a0,got(.data)(gp) + ld $4, unshared # 00a0 lw a0,got(.data)(gp) # 00a4 nop - # 00a8 daddiu a0,a0,lo(unshared) + # 00a8 addiu a0,a0,lo(unshared) # 00ac ld a0,(a0) - ld $4, end # 00b0 ld a0,got(.text)(gp) + ld $4, end # 00b0 lw a0,got(.text)(gp) # 00b4 nop - # 00b8 daddiu a0,a0,lo(end) + # 00b8 addiu a0,a0,lo(end) # 00bc ld a0,(a0) - sw $4, shared # 00c0 ld at,got(.sdata)(gp) + sw $4, shared # 00c0 lw at,got(.sdata)(gp) # 00c4 nop - # 00c8 daddiu at,at,lo(shared) + # 00c8 addiu at,at,lo(shared) # 00cc sw a0,0(at) - sw $4, unshared # 00d0 ld at,got(.data)(gp) + sw $4, unshared # 00d0 lw at,got(.data)(gp) # 00d4 nop - # 00d8 daddiu at,at,lo(unshared) + # 00d8 addiu at,at,lo(unshared) # 00dc sw a0,0(at) - sd $4, shared # 00e0 ld at,got(.sdata)(gp) + sd $4, shared # 00e0 lw at,got(.sdata)(gp) # 00e4 nop - # 00e8 daddiu at,at,lo(shared) + # 00e8 addiu at,at,lo(shared) # 00ec sd a0,(at) - sd $4, unshared # 00f0 ld at,got(.data)(gp) + sd $4, unshared # 00f0 lw at,got(.data)(gp) # 00f4 nop - # 00f8 daddiu at,at,lo(unshared) + # 00f8 addiu at,at,lo(unshared) # 00fc sd a0,(at) - ulh $4, unshared # 0100 ld at,got(.data)(gp) + ulh $4, unshared # 0100 lw at,got(.data)(gp) # 0104 nop - # 0108 daddiu at,at,lo(unshared) + # 0108 addiu at,at,lo(unshared) # 010c lb a0,0(at) # 0110 lbu at,1(at) # 0114 sll a0,a0,8 # 0118 or a0,a0,at - ush $4, unshared # 011c ld at,got(.data)(gp) + ush $4, unshared # 011c lw at,got(.data)(gp) # 0120 nop - # 0124 daddiu at,at,lo(unshared) + # 0124 addiu at,at,lo(unshared) # 0128 sb a0,0(at) # 012c srl a0,a0,8 # 0130 sb a0,1(at) # 0134 lbu at,0(at) # 0138 sll a0,a0,8 # 013c or a0,a0,at - ulw $4, unshared # 0140 ld at,got(.data)(gp) + ulw $4, unshared # 0140 lw at,got(.data)(gp) # 0144 nop - # 0148 daddiu at,at,lo(unshared) + # 0148 addiu at,at,lo(unshared) # 014c lwl a0,0(at) # 0150 lwr a0,3(at) - usw $4, unshared # 0154 ld at,got(.data)(gp) + usw $4, unshared # 0154 lw at,got(.data)(gp) # 0158 nop - # 015c daddiu at,at,lo(unshared) + # 015c addiu at,at,lo(unshared) # 0160 swl a0,0(at) # 0164 swr a0,3(at) li.d $4, 1.0 # 0168 li a0,0xffc0 # 016c dsll32 a0,a0,14 - li.d $4, 1.9 # 0170 ld at,got(.rodata)(gp) + li.d $4, 1.9 # 0170 lw at,got(.rodata)(gp) # 0174 ld a0,lo(F1.9)(at) li.d $f0, 1.0 # 0178 lui at,0x3ff0 # 017c mtc1 at,$f1 # 0180 mtc1 zero,$f0 - li.d $f0, 1.9 # 0184 ld at,got(.rodata)(gp) + li.d $f0, 1.9 # 0184 lw at,got(.rodata)(gp) # 0188 ldc1 $f0,lo(L1.9)(at) seq $4, $5, -100 # 018c daddiu a0,a1,100 # 0190 sltiu a0,a0,1 @@ -121,20 +121,20 @@ 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 daddiu a0,a0,lo(shared) - dla $4, unshared # 01ac ld a0,got(.data)(gp) + # 01a8 addiu a0,a0,lo(shared) + dla $4, unshared # 01ac lw a0,got(.data)(gp) # 01b0 nop - # 01b4 daddiu a0,a0,lo(unshared) - uld $4, unshared # 01b8 ld at,got(.data)(gp) + # 01b4 addiu a0,a0,lo(unshared) + uld $4, unshared # 01b8 lw at,got(.data)(gp) # 01bc nop - # 01c0 daddiu at,at,lo(unshared) + # 01c0 addiu at,at,lo(unshared) # 01c4 ldl a0,0(at) # 01c8 ldr a0,7(at) - usd $4, unshared # 01cc ld at,got(.data)(gp) + usd $4, unshared # 01cc lw at,got(.data)(gp) # 01d0 nop - # 01d4 daddiu at,at,lo(unshared) + # 01d4 addiu at,at,lo(unshared) # 01d8 sdl a0,0(at) # 01dc sdr a0,7(at) diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/mips-gp64-fp32.d src/gas/testsuite/gas/mips/mips-gp64-fp32.d --- src-orig/gas/testsuite/gas/mips/mips-gp64-fp32.d Tue Aug 7 17:20:30 2001 +++ src/gas/testsuite/gas/mips/mips-gp64-fp32.d Tue Aug 21 19:20:35 2001 @@ -9,11 +9,11 @@ Disassembly of section .text: 0+000 <[^>]*>: 0: 3c041234 lui a0,0x1234 4: 34845678 ori a0,a0,0x5678 - 8: 6784c000 daddiu a0,gp,-16384 + 8: 2784c000 addiu a0,gp,-16384 c: 3c040000 lui a0,0x0 - 10: 64840000 daddiu a0,a0,0 + 10: 24840000 addiu a0,a0,0 14: 3c040000 lui a0,0x0 - 18: 64840154 daddiu a0,a0,340 + 18: 24840154 addiu a0,a0,340 1c: 08000055 j 154 <[^>]*> 20: 0c000055 jal 154 <[^>]*> 24: 8f84c000 lw a0,-16384\(gp\) @@ -33,13 +33,13 @@ Disassembly of section .text: 5c: 3c010000 lui at,0x0 60: fc240000 sd a0,0\(at\) 64: 3c010000 lui at,0x0 - 68: 64210000 daddiu at,at,0 + 68: 24210000 addiu at,at,0 6c: 80240000 lb a0,0\(at\) 70: 90210001 lbu at,1\(at\) 74: 00042200 sll a0,a0,0x8 78: 00812025 or a0,a0,at 7c: 3c010000 lui at,0x0 - 80: 64210000 daddiu at,at,0 + 80: 24210000 addiu at,at,0 84: a0240001 sb a0,1\(at\) 88: 00042202 srl a0,a0,0x8 8c: a0240000 sb a0,0\(at\) @@ -47,11 +47,11 @@ Disassembly of section .text: 94: 00042200 sll a0,a0,0x8 98: 00812025 or a0,a0,at 9c: 3c010000 lui at,0x0 - a0: 64210000 daddiu at,at,0 + a0: 24210000 addiu at,at,0 a4: 88240000 lwl a0,0\(at\) a8: 98240003 lwr a0,3\(at\) ac: 3c010000 lui at,0x0 - b0: 64210000 daddiu at,at,0 + b0: 24210000 addiu at,at,0 b4: a8240000 swl a0,0\(at\) b8: b8240003 swr a0,3\(at\) bc: 3404ffc0 li a0,0xffc0 @@ -67,15 +67,15 @@ Disassembly of section .text: e4: 64a40064 daddiu a0,a1,100 e8: 0004202b sltu a0,zero,a0 ec: 00a0202d move a0,a1 - f0: 6784c000 daddiu a0,gp,-16384 + f0: 2784c000 addiu a0,gp,-16384 f4: 3c040000 lui a0,0x0 - f8: 64840000 daddiu a0,a0,0 + f8: 24840000 addiu a0,a0,0 fc: 3c010000 lui at,0x0 - 100: 64210000 daddiu at,at,0 + 100: 24210000 addiu at,at,0 104: 68240000 ldl a0,0\(at\) 108: 6c240007 ldr a0,7\(at\) 10c: 3c010000 lui at,0x0 - 110: 64210000 daddiu at,at,0 + 110: 24210000 addiu at,at,0 114: b0240000 sdl a0,0\(at\) 118: b4240007 sdr a0,7\(at\) 11c: 3c018000 lui at,0x8000 diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/mips-gp64-fp32.s src/gas/testsuite/gas/mips/mips-gp64-fp32.s --- src-orig/gas/testsuite/gas/mips/mips-gp64-fp32.s Tue Aug 7 17:20:30 2001 +++ src/gas/testsuite/gas/mips/mips-gp64-fp32.s Tue Aug 21 19:20:35 2001 @@ -16,11 +16,11 @@ func: .set mips4 li $4, 0x12345678 # 0000 lui a0,0x1234 # 0004 ori a0,a0,0x5678 - la $4, shared # 0008 daddiu a0,gp,shared + la $4, shared # 0008 addiu a0,gp,shared la $4, unshared # 000c lui a0,hi(unshared) - # 0010 daddiu a0,a0,lo(unshared) + # 0010 addiu a0,a0,lo(unshared) la $4, end # 0014 lui a0,hi(end) - # 0018 daddiu a0,a0,lo(end) + # 0018 addiu a0,a0,lo(end) j end # 001c j end jal end # 0020 jal end lw $4, shared # 0024 lw a0,shared(gp) @@ -40,13 +40,13 @@ func: sd $4, unshared # 005c lui at,hi(unshared) # 0060 sd a0,lo(unshared)(at) ulh $4, unshared # 0064 lui at,hi(unshared) - # 0068 daddiu at,at,lo(unshared) + # 0068 addiu at,at,lo(unshared) # 006c lb a0,0(at) # 0070 lbu at,1(at) # 0074 sll a0,a0,8 # 0078 or a0,a0,at ush $4, unshared # 007c lui at,hi(unshared) - # 0080 daddiu at,at,lo(unshared) + # 0080 addiu at,at,lo(unshared) # 0084 sb a0,1(at) # 0088 srl a0,a0,8 # 008c sb a0,0(at) @@ -54,11 +54,11 @@ func: # 0094 sll a0,a0,8 # 0098 or a0,a0,at ulw $4, unshared # 009c lui at,hi(unshared) - # 00a0 daddiu at,at,lo(unshared) + # 00a0 addiu at,at,lo(unshared) # 00a4 lwl a0,0(at) # 00a8 lwr a0,3(at) usw $4, unshared # 00ac lui at,hi(unshared) - # 00b0 daddiu at,at,lo(unshared) + # 00b0 addiu at,at,lo(unshared) # 00b4 swl a0,0(at) # 00b8 swr a0,3(at) li.d $4, 1.0 # 00bc li a0,0xffc0 @@ -75,15 +75,15 @@ func: # 00e8 sltu a0,zero,a0 move $4, $5 # 00ec move a0,a1 - dla $4, shared # 00f0 daddiu a0,gp,shared + dla $4, shared # 00f0 addiu a0,gp,shared dla $4, unshared # 00f4 lui a0,hi(unshared) - # 00f8 daddiu a0,a0,lo(unshared) + # 00f8 addiu a0,a0,lo(unshared) uld $4, unshared # 00fc lui at,hi(unshared) - # 0100 daddiu at,at,lo(unshared) + # 0100 addiu at,at,lo(unshared) # 0104 ldl a0,0(at) # 0108 ldr a0,7(at) usd $4, unshared # 010c lui at,hi(unshared) - # 0110 daddiu at,at,lo(unshared) + # 0110 addiu at,at,lo(unshared) # 0114 sdl a0,0(at) # 0118 sdr a0,7(at) diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/mips-gp64-fp64-pic.d src/gas/testsuite/gas/mips/mips-gp64-fp64-pic.d --- src-orig/gas/testsuite/gas/mips/mips-gp64-fp64-pic.d Tue Aug 7 17:20:30 2001 +++ src/gas/testsuite/gas/mips/mips-gp64-fp64-pic.d Tue Aug 21 19:20:35 2001 @@ -10,121 +10,121 @@ Disassembly of section .text: 0: 3c1c0000 lui gp,0x0 4: 279c0000 addiu gp,gp,0 8: 0399e021 addu gp,gp,t9 - c: ffbc0008 sd gp,8\(sp\) - 10: 009c202d daddu a0,a0,gp + c: afbc0008 sw gp,8\(sp\) + 10: 009c2021 addu a0,a0,gp 14: 3c041234 lui a0,0x1234 18: 34845678 ori a0,a0,0x5678 1c: 8f840000 lw a0,0\(gp\) 20: 00000000 nop - 24: 64840000 daddiu a0,a0,0 + 24: 24840000 addiu a0,a0,0 28: 8f840000 lw a0,0\(gp\) 2c: 00000000 nop - 30: 64840000 daddiu a0,a0,0 + 30: 24840000 addiu a0,a0,0 34: 8f840000 lw a0,0\(gp\) 38: 00000000 nop - 3c: 6484022c daddiu a0,a0,556 + 3c: 2484022c addiu a0,a0,556 40: 1000007a b 22c <[^>]*> 44: 00000000 nop - 48: df990000 ld t9,0\(gp\) + 48: 8f990000 lw t9,0\(gp\) 4c: 00000000 nop - 50: 6739022c daddiu t9,t9,556 + 50: 2739022c addiu t9,t9,556 54: 0320f809 jalr t9 58: 00000000 nop - 5c: dfbc0008 ld gp,8\(sp\) - 60: df840000 ld a0,0\(gp\) + 5c: 8fbc0008 lw gp,8\(sp\) + 60: 8f840000 lw a0,0\(gp\) 64: 00000000 nop - 68: 64840000 daddiu a0,a0,0 + 68: 24840000 addiu a0,a0,0 6c: 8c840000 lw a0,0\(a0\) - 70: df840000 ld a0,0\(gp\) + 70: 8f840000 lw a0,0\(gp\) 74: 00000000 nop - 78: 64840000 daddiu a0,a0,0 + 78: 24840000 addiu a0,a0,0 7c: 8c840000 lw a0,0\(a0\) - 80: df840000 ld a0,0\(gp\) + 80: 8f840000 lw a0,0\(gp\) 84: 00000000 nop - 88: 6484022c daddiu a0,a0,556 + 88: 2484022c addiu a0,a0,556 8c: 8c840000 lw a0,0\(a0\) - 90: df840000 ld a0,0\(gp\) + 90: 8f840000 lw a0,0\(gp\) 94: 00000000 nop - 98: 64840000 daddiu a0,a0,0 + 98: 24840000 addiu a0,a0,0 9c: dc840000 ld a0,0\(a0\) - a0: df840000 ld a0,0\(gp\) + a0: 8f840000 lw a0,0\(gp\) a4: 00000000 nop - a8: 64840000 daddiu a0,a0,0 + a8: 24840000 addiu a0,a0,0 ac: dc840000 ld a0,0\(a0\) - b0: df840000 ld a0,0\(gp\) + b0: 8f840000 lw a0,0\(gp\) b4: 00000000 nop - b8: 6484022c daddiu a0,a0,556 + b8: 2484022c addiu a0,a0,556 bc: dc840000 ld a0,0\(a0\) - c0: df810000 ld at,0\(gp\) + c0: 8f810000 lw at,0\(gp\) c4: 00000000 nop - c8: 64210000 daddiu at,at,0 + c8: 24210000 addiu at,at,0 cc: ac240000 sw a0,0\(at\) - d0: df810000 ld at,0\(gp\) + d0: 8f810000 lw at,0\(gp\) d4: 00000000 nop - d8: 64210000 daddiu at,at,0 + d8: 24210000 addiu at,at,0 dc: ac240000 sw a0,0\(at\) - e0: df810000 ld at,0\(gp\) + e0: 8f810000 lw at,0\(gp\) e4: 00000000 nop - e8: 64210000 daddiu at,at,0 + e8: 24210000 addiu at,at,0 ec: fc240000 sd a0,0\(at\) - f0: df810000 ld at,0\(gp\) + f0: 8f810000 lw at,0\(gp\) f4: 00000000 nop - f8: 64210000 daddiu at,at,0 + f8: 24210000 addiu at,at,0 fc: fc240000 sd a0,0\(at\) - 100: df810000 ld at,0\(gp\) + 100: 8f810000 lw at,0\(gp\) 104: 00000000 nop - 108: 64210000 daddiu at,at,0 + 108: 24210000 addiu at,at,0 10c: 80240000 lb a0,0\(at\) 110: 90210001 lbu at,1\(at\) 114: 00042200 sll a0,a0,0x8 118: 00812025 or a0,a0,at - 11c: df810000 ld at,0\(gp\) + 11c: 8f810000 lw at,0\(gp\) 120: 00000000 nop - 124: 64210000 daddiu at,at,0 + 124: 24210000 addiu at,at,0 128: a0240001 sb a0,1\(at\) 12c: 00042202 srl a0,a0,0x8 130: a0240000 sb a0,0\(at\) 134: 90210001 lbu at,1\(at\) 138: 00042200 sll a0,a0,0x8 13c: 00812025 or a0,a0,at - 140: df810000 ld at,0\(gp\) + 140: 8f810000 lw at,0\(gp\) 144: 00000000 nop - 148: 64210000 daddiu at,at,0 + 148: 24210000 addiu at,at,0 14c: 88240000 lwl a0,0\(at\) 150: 98240003 lwr a0,3\(at\) - 154: df810000 ld at,0\(gp\) + 154: 8f810000 lw at,0\(gp\) 158: 00000000 nop - 15c: 64210000 daddiu at,at,0 + 15c: 24210000 addiu at,at,0 160: a8240000 swl a0,0\(at\) 164: b8240003 swr a0,3\(at\) 168: 3404ffc0 li a0,0xffc0 16c: 000423bc dsll32 a0,a0,0xe - 170: df810000 ld at,0\(gp\) + 170: 8f810000 lw at,0\(gp\) 174: dc240000 ld a0,0\(at\) 178: 3401ffc0 li at,0xffc0 17c: 00010bbc dsll32 at,at,0xe 180: 44a10000 dmtc1 at,\$f0 - 184: df810000 ld at,0\(gp\) + 184: 8f810000 lw at,0\(gp\) 188: d4200008 ldc1 \$f0,8\(at\) 18c: 64a40064 daddiu a0,a1,100 190: 2c840001 sltiu a0,a0,1 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: 64840000 daddiu a0,a0,0 - 1ac: df840000 ld a0,0\(gp\) + 1a8: 24840000 addiu a0,a0,0 + 1ac: 8f840000 lw a0,0\(gp\) 1b0: 00000000 nop - 1b4: 64840000 daddiu a0,a0,0 - 1b8: df810000 ld at,0\(gp\) + 1b4: 24840000 addiu a0,a0,0 + 1b8: 8f810000 lw at,0\(gp\) 1bc: 00000000 nop - 1c0: 64210000 daddiu at,at,0 + 1c0: 24210000 addiu at,at,0 1c4: 68240000 ldl a0,0\(at\) 1c8: 6c240007 ldr a0,7\(at\) - 1cc: df810000 ld at,0\(gp\) + 1cc: 8f810000 lw at,0\(gp\) 1d0: 00000000 nop - 1d4: 64210000 daddiu at,at,0 + 1d4: 24210000 addiu at,at,0 1d8: b0240000 sdl a0,0\(at\) 1dc: b4240007 sdr a0,7\(at\) 1e0: 3c018000 lui at,0x8000 diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/mips-gp64-fp64-pic.s src/gas/testsuite/gas/mips/mips-gp64-fp64-pic.s --- src-orig/gas/testsuite/gas/mips/mips-gp64-fp64-pic.s Tue Aug 7 17:20:30 2001 +++ src/gas/testsuite/gas/mips/mips-gp64-fp64-pic.s Tue Aug 21 19:20:35 2001 @@ -19,101 +19,101 @@ func: # 0004 addiu gp,gp,lo(_gp_disp) # 0008 addu gp,gp,t9 .set reorder - .cprestore 8 # 000c sd gp,8(sp) - .cpadd $4 # 0010 daddu a0,a0,gp + .cprestore 8 # 000c sw gp,8(sp) + .cpadd $4 # 0010 addu a0,a0,gp li $4, 0x12345678 # 0014 lui a0,0x1234 # 0018 ori a0,a0,0x5678 la $4, shared # 001c lw a0,got(.sdata)(gp) # 0020 nop - # 0024 daddiu a0,a0,lo(shared) + # 0024 addiu a0,a0,lo(shared) la $4, unshared # 0028 lw a0,got(.data)(gp) # 002c nop - # 0030 daddiu a0,a0,lo(unshared) + # 0030 addiu a0,a0,lo(unshared) la $4, end # 0034 lw a0,got(.text)(gp) # 0038 nop - # 003c daddiu a0,a0,lo(end) + # 003c addiu a0,a0,lo(end) j end # 0040 b end # 0044 nop - jal end # 0048 ld t9,got(.text)(gp) + jal end # 0048 lw t9,got(.text)(gp) # 004c nop - # 0050 daddiu t9,t9,lo(end) + # 0050 addiu t9,t9,lo(end) # 0054 jalr t9 # 0058 nop - # 005c ld gp,8(sp) - lw $4, shared # 0060 ld a0,got(.sdata)(gp) + # 005c lw gp,8(sp) + lw $4, shared # 0060 lw a0,got(.sdata)(gp) # 0064 nop - # 0068 daddiu a0,a0,lo(shared) + # 0068 addiu a0,a0,lo(shared) # 006c lw a0,(a0) - lw $4, unshared # 0070 ld a0,got(.data)(gp) + lw $4, unshared # 0070 lw a0,got(.data)(gp) # 0074 nop - # 0078 daddiu a0,a0,lo(unshared) + # 0078 addiu a0,a0,lo(unshared) # 007c lw a0,(a0) - lw $4, end # 0080 ld a0,got(.text)(gp) + lw $4, end # 0080 lw a0,got(.text)(gp) # 0084 nop - # 0088 daddiu a0,a0,lo(end) + # 0088 addiu a0,a0,lo(end) # 008c lw a0,(a0) - ld $4, shared # 0090 ld a0,got(.sdata)(gp) + ld $4, shared # 0090 lw a0,got(.sdata)(gp) # 0094 nop - # 0098 daddiu a0,a0,lo(shared) + # 0098 addiu a0,a0,lo(shared) # 009c ld a0,(a0) - ld $4, unshared # 00a0 ld a0,got(.data)(gp) + ld $4, unshared # 00a0 lw a0,got(.data)(gp) # 00a4 nop - # 00a8 daddiu a0,a0,lo(unshared) + # 00a8 addiu a0,a0,lo(unshared) # 00ac ld a0,(a0) - ld $4, end # 00b0 ld a0,got(.text)(gp) + ld $4, end # 00b0 lw a0,got(.text)(gp) # 00b4 nop - # 00b8 daddiu a0,a0,lo(end) + # 00b8 addiu a0,a0,lo(end) # 00bc ld a0,(a0) - sw $4, shared # 00c0 ld at,got(.sdata)(gp) + sw $4, shared # 00c0 lw at,got(.sdata)(gp) # 00c4 nop - # 00c8 daddiu at,at,lo(shared) + # 00c8 addiu at,at,lo(shared) # 00cc sw a0,0(at) - sw $4, unshared # 00d0 ld at,got(.data)(gp) + sw $4, unshared # 00d0 lw at,got(.data)(gp) # 00d4 nop - # 00d8 daddiu at,at,lo(unshared) + # 00d8 addiu at,at,lo(unshared) # 00dc sw a0,0(at) - sd $4, shared # 00e0 ld at,got(.sdata)(gp) + sd $4, shared # 00e0 lw at,got(.sdata)(gp) # 00e4 nop - # 00e8 daddiu at,at,lo(shared) + # 00e8 addiu at,at,lo(shared) # 00ec sd a0,(at) - sd $4, unshared # 00f0 ld at,got(.data)(gp) + sd $4, unshared # 00f0 lw at,got(.data)(gp) # 00f4 nop - # 00f8 daddiu at,at,lo(unshared) + # 00f8 addiu at,at,lo(unshared) # 00fc sd a0,(at) - ulh $4, unshared # 0100 ld at,got(.data)(gp) + ulh $4, unshared # 0100 lw at,got(.data)(gp) # 0104 nop - # 0108 daddiu at,at,lo(unshared) + # 0108 addiu at,at,lo(unshared) # 010c lb a0,0(at) # 0110 lbu at,1(at) # 0114 sll a0,a0,8 # 0118 or a0,a0,at - ush $4, unshared # 011c ld at,got(.data)(gp) + ush $4, unshared # 011c lw at,got(.data)(gp) # 0120 nop - # 0124 daddiu at,at,lo(unshared) + # 0124 addiu at,at,lo(unshared) # 0128 sb a0,0(at) # 012c srl a0,a0,8 # 0130 sb a0,1(at) # 0134 lbu at,0(at) # 0138 sll a0,a0,8 # 013c or a0,a0,at - ulw $4, unshared # 0140 ld at,got(.data)(gp) + ulw $4, unshared # 0140 lw at,got(.data)(gp) # 0144 nop - # 0148 daddiu at,at,lo(unshared) + # 0148 addiu at,at,lo(unshared) # 014c lwl a0,0(at) # 0150 lwr a0,3(at) - usw $4, unshared # 0154 ld at,got(.data)(gp) + usw $4, unshared # 0154 lw at,got(.data)(gp) # 0158 nop - # 015c daddiu at,at,lo(unshared) + # 015c addiu at,at,lo(unshared) # 0160 swl a0,0(at) # 0164 swr a0,3(at) li.d $4, 1.0 # 0168 li a0,0xffc0 # 016c dsll32 a0,a0,14 - li.d $4, 1.9 # 0170 ld at,got(.rodata)(gp) + li.d $4, 1.9 # 0170 lw at,got(.rodata)(gp) # 0174 ld a0,lo(F1.9)(at) li.d $f0, 1.0 # 0178 li at,0xffc0 # 017c dsll32 at,at,14 # 0180 dmtc1 at,$f0 - li.d $f0, 1.9 # 0184 ld at,got(.rodata)(gp) + li.d $f0, 1.9 # 0184 lw at,got(.rodata)(gp) # 0188 ldc1 $f0,lo(L1.9)(at) seq $4, $5, -100 # 018c daddiu a0,a1,100 # 0190 sltiu a0,a0,1 @@ -121,20 +121,20 @@ 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 daddiu a0,a0,lo(shared) - dla $4, unshared # 01ac ld a0,got(.data)(gp) + # 01a8 addiu a0,a0,lo(shared) + dla $4, unshared # 01ac lw a0,got(.data)(gp) # 01b0 nop - # 01b4 daddiu a0,a0,lo(unshared) - uld $4, unshared # 01b8 ld at,got(.data)(gp) + # 01b4 addiu a0,a0,lo(unshared) + uld $4, unshared # 01b8 lw at,got(.data)(gp) # 01bc nop - # 01c0 daddiu at,at,lo(unshared) + # 01c0 addiu at,at,lo(unshared) # 01c4 ldl a0,0(at) # 01c8 ldr a0,7(at) - usd $4, unshared # 01cc ld at,got(.data)(gp) + usd $4, unshared # 01cc lw at,got(.data)(gp) # 01d0 nop - # 01d4 daddiu at,at,lo(unshared) + # 01d4 addiu at,at,lo(unshared) # 01d8 sdl a0,0(at) # 01dc sdr a0,7(at) diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/mips-gp64-fp64.d src/gas/testsuite/gas/mips/mips-gp64-fp64.d --- src-orig/gas/testsuite/gas/mips/mips-gp64-fp64.d Tue Aug 7 17:20:30 2001 +++ src/gas/testsuite/gas/mips/mips-gp64-fp64.d Tue Aug 21 19:20:35 2001 @@ -9,11 +9,11 @@ Disassembly of section .text: 0+000 <[^>]*>: 0: 3c041234 lui a0,0x1234 4: 34845678 ori a0,a0,0x5678 - 8: 6784c000 daddiu a0,gp,-16384 + 8: 2784c000 addiu a0,gp,-16384 c: 3c040000 lui a0,0x0 - 10: 64840000 daddiu a0,a0,0 + 10: 24840000 addiu a0,a0,0 14: 3c040000 lui a0,0x0 - 18: 64840158 daddiu a0,a0,344 + 18: 24840158 addiu a0,a0,344 1c: 08000056 j 158 <[^>]*> 20: 0c000056 jal 158 <[^>]*> 24: 8f84c000 lw a0,-16384\(gp\) @@ -33,13 +33,13 @@ Disassembly of section .text: 5c: 3c010000 lui at,0x0 60: fc240000 sd a0,0\(at\) 64: 3c010000 lui at,0x0 - 68: 64210000 daddiu at,at,0 + 68: 24210000 addiu at,at,0 6c: 80240000 lb a0,0\(at\) 70: 90210001 lbu at,1\(at\) 74: 00042200 sll a0,a0,0x8 78: 00812025 or a0,a0,at 7c: 3c010000 lui at,0x0 - 80: 64210000 daddiu at,at,0 + 80: 24210000 addiu at,at,0 84: a0240001 sb a0,1\(at\) 88: 00042202 srl a0,a0,0x8 8c: a0240000 sb a0,0\(at\) @@ -47,11 +47,11 @@ Disassembly of section .text: 94: 00042200 sll a0,a0,0x8 98: 00812025 or a0,a0,at 9c: 3c010000 lui at,0x0 - a0: 64210000 daddiu at,at,0 + a0: 24210000 addiu at,at,0 a4: 88240000 lwl a0,0\(at\) a8: 98240003 lwr a0,3\(at\) ac: 3c010000 lui at,0x0 - b0: 64210000 daddiu at,at,0 + b0: 24210000 addiu at,at,0 b4: a8240000 swl a0,0\(at\) b8: b8240003 swr a0,3\(at\) bc: 3404ffc0 li a0,0xffc0 @@ -67,15 +67,15 @@ Disassembly of section .text: e4: 64a40064 daddiu a0,a1,100 e8: 0004202b sltu a0,zero,a0 ec: 00a0202d move a0,a1 - f0: 6784c000 daddiu a0,gp,-16384 + f0: 2784c000 addiu a0,gp,-16384 f4: 3c040000 lui a0,0x0 - f8: 64840000 daddiu a0,a0,0 + f8: 24840000 addiu a0,a0,0 fc: 3c010000 lui at,0x0 - 100: 64210000 daddiu at,at,0 + 100: 24210000 addiu at,at,0 104: 68240000 ldl a0,0\(at\) 108: 6c240007 ldr a0,7\(at\) 10c: 3c010000 lui at,0x0 - 110: 64210000 daddiu at,at,0 + 110: 24210000 addiu at,at,0 114: b0240000 sdl a0,0\(at\) 118: b4240007 sdr a0,7\(at\) 11c: 3c018000 lui at,0x8000 diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/mips-gp64-fp64.s src/gas/testsuite/gas/mips/mips-gp64-fp64.s --- src-orig/gas/testsuite/gas/mips/mips-gp64-fp64.s Tue Aug 7 17:20:30 2001 +++ src/gas/testsuite/gas/mips/mips-gp64-fp64.s Tue Aug 21 19:20:35 2001 @@ -16,11 +16,11 @@ func: .set mips4 li $4, 0x12345678 # 0000 lui a0,0x1234 # 0004 ori a0,a0,0x5678 - la $4, shared # 0008 daddiu a0,gp,shared + la $4, shared # 0008 addiu a0,gp,shared la $4, unshared # 000c lui a0,hi(unshared) - # 0010 daddiu a0,a0,lo(unshared) + # 0010 addiu a0,a0,lo(unshared) la $4, end # 0014 lui a0,hi(end) - # 0018 daddiu a0,a0,lo(end) + # 0018 addiu a0,a0,lo(end) j end # 001c j end jal end # 0020 jal end lw $4, shared # 0024 lw a0,shared(gp) @@ -40,13 +40,13 @@ func: sd $4, unshared # 005c lui at,hi(unshared) # 0060 sd a0,lo(unshared)(at) ulh $4, unshared # 0064 lui at,hi(unshared) - # 0068 daddiu at,at,lo(unshared) + # 0068 addiu at,at,lo(unshared) # 006c lb a0,0(at) # 0070 lbu at,1(at) # 0074 sll a0,a0,8 # 0078 or a0,a0,at ush $4, unshared # 007c lui at,hi(unshared) - # 0080 daddiu at,at,lo(unshared) + # 0080 addiu at,at,lo(unshared) # 0084 sb a0,1(at) # 0088 srl a0,a0,8 # 008c sb a0,0(at) @@ -54,11 +54,11 @@ func: # 0094 sll a0,a0,8 # 0098 or a0,a0,at ulw $4, unshared # 009c lui at,hi(unshared) - # 00a0 daddiu at,at,lo(unshared) + # 00a0 addiu at,at,lo(unshared) # 00a4 lwl a0,0(at) # 00a8 lwr a0,3(at) usw $4, unshared # 00ac lui at,hi(unshared) - # 00b0 daddiu at,at,lo(unshared) + # 00b0 addiu at,at,lo(unshared) # 00b4 swl a0,0(at) # 00b8 swr a0,3(at) li.d $4, 1.0 # 00bc li a0,0xffc0 @@ -75,15 +75,15 @@ func: # 00e8 sltu a0,zero,a0 move $4, $5 # 00ec move a0,a1 - dla $4, shared # 00f0 daddiu a0,gp,shared + dla $4, shared # 00f0 addiu a0,gp,shared dla $4, unshared # 00f4 lui a0,hi(unshared) - # 00f8 daddiu a0,a0,lo(unshared) + # 00f8 addiu a0,a0,lo(unshared) uld $4, unshared # 00fc lui at,hi(unshared) - # 0100 daddiu at,at,lo(unshared) + # 0100 addiu at,at,lo(unshared) # 0104 ldl a0,0(at) # 0108 ldr a0,7(at) usd $4, unshared # 010c lui at,hi(unshared) - # 0110 daddiu at,at,lo(unshared) + # 0110 addiu at,at,lo(unshared) # 0114 sdl a0,0(at) # 0118 sdr a0,7(at) diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/elf-rel4.d src/gas/testsuite/gas/mips/elf-rel4.d --- src-orig/gas/testsuite/gas/mips/elf-rel4.d Fri Aug 3 20:37:42 2001 +++ src/gas/testsuite/gas/mips/elf-rel4.d Tue Aug 21 19:20:35 2001 @@ -4,11 +4,11 @@ .*: +file format.* Disassembly of section .text: -0+000 <[^>]*> daddiu a0,gp,0 +0+000 <[^>]*> addiu a0,gp,0 0: R_MIPS_GPREL16 a -0+004 <[^>]*> daddiu a0,gp,4 +0+004 <[^>]*> addiu a0,gp,4 4: R_MIPS_GPREL16 a -0+008 <[^>]*> daddiu a0,gp,8 +0+008 <[^>]*> addiu a0,gp,8 8: R_MIPS_GPREL16 a -0+00c <[^>]*> daddiu a0,gp,12 +0+00c <[^>]*> addiu a0,gp,12 c: R_MIPS_GPREL16 a --- src-orig/gas/testsuite/gas/mips/elempic.d Sat Aug 25 01:28:15 2001 +++ src/gas/testsuite/gas/mips/elempic.d Sat Aug 25 02:56:57 2001 @@ -120,7 +120,7 @@ 0070 00010000 00000000 04000000 00000000 .* 0080 4c000000 00000000 54010000 00000000 .* 0090 d0ffffff ffffffff 32000010 33000010 .* - 00a0 0000033c d8006364 0000033c e8006364 .* + 00a0 0000033c d80063[26]4 0000033c e80063[26]4 .* 00b0 cc000000 34000000 cc000000 00000000 .* 00c0 34000000 00000000 00000000 32000010 .* 00d0 33000010 34000324 3c000324 cc000000 .* diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/uld.d src/gas/testsuite/gas/mips/uld.d --- src-orig/gas/testsuite/gas/mips/uld.d Mon Jul 2 14:34:18 2001 +++ src/gas/testsuite/gas/mips/uld.d Tue Aug 21 19:20:35 2001 @@ -29,241 +29,241 @@ Disassembly of section .text: 0+004c <[^>]*> ldr a0,[-0-9]+\(a1\) 0+0050 <[^>]*> lui at,[-0-9x]+ [ ]*50: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+0054 <[^>]*> daddiu at,at,[-0-9]+ +0+0054 <[^>]*> addiu at,at,[-0-9]+ [ ]*54: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+0058 <[^>]*> ldl a0,[07]\(at\) 0+005c <[^>]*> ldr a0,[07]\(at\) 0+0060 <[^>]*> lui at,0x0 [ ]*60: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+0064 <[^>]*> daddiu at,at,[-0-9]+ +0+0064 <[^>]*> addiu at,at,[-0-9]+ [ ]*64: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+0068 <[^>]*> ldl a0,[07]\(at\) 0+006c <[^>]*> ldr a0,[07]\(at\) -0+0070 <[^>]*> daddiu at,gp,0 +0+0070 <[^>]*> addiu at,gp,0 [ ]*70: [A-Z0-9_]*GPREL[A-Z0-9_]* small_external_data_label 0+0074 <[^>]*> ldl a0,[07]\(at\) 0+0078 <[^>]*> ldr a0,[07]\(at\) 0+007c <[^>]*> lui at,0x0 [ ]*7c: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+0080 <[^>]*> daddiu at,at,[-0-9]+ +0+0080 <[^>]*> addiu at,at,[-0-9]+ [ ]*80: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+0084 <[^>]*> ldl a0,[07]\(at\) 0+0088 <[^>]*> ldr a0,[07]\(at\) -0+008c <[^>]*> daddiu at,gp,0 +0+008c <[^>]*> addiu at,gp,0 [ ]*8c: [A-Z0-9_]*GPREL[A-Z0-9_]* small_external_common 0+0090 <[^>]*> ldl a0,[07]\(at\) 0+0094 <[^>]*> ldr a0,[07]\(at\) 0+0098 <[^>]*> lui at,[-0-9x]+ [ ]*98: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+009c <[^>]*> daddiu at,at,[-0-9]+ +0+009c <[^>]*> addiu at,at,[-0-9]+ [ ]*9c: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+00a0 <[^>]*> ldl a0,[07]\(at\) 0+00a4 <[^>]*> ldr a0,[07]\(at\) -0+00a8 <[^>]*> daddiu at,gp,[-0-9]+ +0+00a8 <[^>]*> addiu at,gp,[-0-9]+ [ ]*a8: [A-Z0-9_]*GPREL[A-Z0-9_]* .sbss.* 0+00ac <[^>]*> ldl a0,[07]\(at\) 0+00b0 <[^>]*> ldr a0,[07]\(at\) 0+00b4 <[^>]*> lui at,0x0 [ ]*b4: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+00b8 <[^>]*> daddiu at,at,[-0-9]+ +0+00b8 <[^>]*> addiu at,at,[-0-9]+ [ ]*b8: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+00bc <[^>]*> ldl a0,[07]\(at\) 0+00c0 <[^>]*> ldr a0,[07]\(at\) 0+00c4 <[^>]*> lui at,0x0 [ ]*c4: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+00c8 <[^>]*> daddiu at,at,[-0-9]+ +0+00c8 <[^>]*> addiu at,at,[-0-9]+ [ ]*c8: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+00cc <[^>]*> ldl a0,[07]\(at\) 0+00d0 <[^>]*> ldr a0,[07]\(at\) -0+00d4 <[^>]*> daddiu at,gp,1 +0+00d4 <[^>]*> addiu at,gp,1 [ ]*d4: [A-Z0-9_]*GPREL[A-Z0-9_]* small_external_data_label 0+00d8 <[^>]*> ldl a0,[07]\(at\) 0+00dc <[^>]*> ldr a0,[07]\(at\) 0+00e0 <[^>]*> lui at,0x0 [ ]*e0: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+00e4 <[^>]*> daddiu at,at,[-0-9]+ +0+00e4 <[^>]*> addiu at,at,[-0-9]+ [ ]*e4: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+00e8 <[^>]*> ldl a0,[07]\(at\) 0+00ec <[^>]*> ldr a0,[07]\(at\) -0+00f0 <[^>]*> daddiu at,gp,1 +0+00f0 <[^>]*> addiu at,gp,1 [ ]*f0: [A-Z0-9_]*GPREL[A-Z0-9_]* small_external_common 0+00f4 <[^>]*> ldl a0,[07]\(at\) 0+00f8 <[^>]*> ldr a0,[07]\(at\) 0+00fc <[^>]*> lui at,0x0 [ ]*fc: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+0100 <[^>]*> daddiu at,at,[-0-9]+ +0+0100 <[^>]*> addiu at,at,[-0-9]+ [ ]*100: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+0104 <[^>]*> ldl a0,[07]\(at\) 0+0108 <[^>]*> ldr a0,[07]\(at\) -0+010c <[^>]*> daddiu at,gp,[-0-9]+ +0+010c <[^>]*> addiu at,gp,[-0-9]+ [ ]*10c: [A-Z0-9_]*GPREL[A-Z0-9_]* .sbss.* 0+0110 <[^>]*> ldl a0,[07]\(at\) 0+0114 <[^>]*> ldr a0,[07]\(at\) 0+0118 <[^>]*> lui at,[-0-9x]+ [ ]*118: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+011c <[^>]*> daddiu at,at,[-0-9]+ +0+011c <[^>]*> addiu at,at,[-0-9]+ [ ]*11c: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+0120 <[^>]*> ldl a0,[07]\(at\) 0+0124 <[^>]*> ldr a0,[07]\(at\) 0+0128 <[^>]*> lui at,[-0-9x]+ [ ]*128: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+012c <[^>]*> daddiu at,at,[-0-9]+ +0+012c <[^>]*> addiu at,at,[-0-9]+ [ ]*12c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+0130 <[^>]*> ldl a0,[07]\(at\) 0+0134 <[^>]*> ldr a0,[07]\(at\) 0+0138 <[^>]*> lui at,[-0-9x]+ [ ]*138: [A-Z0-9_]*HI[A-Z0-9_]* small_external_data_label -0+013c <[^>]*> daddiu at,at,[-0-9]+ +0+013c <[^>]*> addiu at,at,[-0-9]+ [ ]*13c: [A-Z0-9_]*LO[A-Z0-9_]* small_external_data_label 0+0140 <[^>]*> ldl a0,[07]\(at\) 0+0144 <[^>]*> ldr a0,[07]\(at\) 0+0148 <[^>]*> lui at,[-0-9x]+ [ ]*148: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+014c <[^>]*> daddiu at,at,[-0-9]+ +0+014c <[^>]*> addiu at,at,[-0-9]+ [ ]*14c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+0150 <[^>]*> ldl a0,[07]\(at\) 0+0154 <[^>]*> ldr a0,[07]\(at\) 0+0158 <[^>]*> lui at,[-0-9x]+ [ ]*158: [A-Z0-9_]*HI[A-Z0-9_]* small_external_common -0+015c <[^>]*> daddiu at,at,[-0-9]+ +0+015c <[^>]*> addiu at,at,[-0-9]+ [ ]*15c: [A-Z0-9_]*LO[A-Z0-9_]* small_external_common 0+0160 <[^>]*> ldl a0,[07]\(at\) 0+0164 <[^>]*> ldr a0,[07]\(at\) 0+0168 <[^>]*> lui at,[-0-9x]+ [ ]*168: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+016c <[^>]*> daddiu at,at,[-0-9]+ +0+016c <[^>]*> addiu at,at,[-0-9]+ [ ]*16c: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+0170 <[^>]*> ldl a0,[07]\(at\) 0+0174 <[^>]*> ldr a0,[07]\(at\) 0+0178 <[^>]*> lui at,[-0-9x]+ [ ]*178: [A-Z0-9_]*HI[A-Z0-9_]* .sbss.* -0+017c <[^>]*> daddiu at,at,[-0-9]+ +0+017c <[^>]*> addiu at,at,[-0-9]+ [ ]*17c: [A-Z0-9_]*LO[A-Z0-9_]* .sbss.* 0+0180 <[^>]*> ldl a0,[07]\(at\) 0+0184 <[^>]*> ldr a0,[07]\(at\) 0+0188 <[^>]*> lui at,0x0 [ ]*188: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+018c <[^>]*> daddiu at,at,[-0-9]+ +0+018c <[^>]*> addiu at,at,[-0-9]+ [ ]*18c: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+0190 <[^>]*> ldl a0,[07]\(at\) 0+0194 <[^>]*> ldr a0,[07]\(at\) 0+0198 <[^>]*> lui at,0x0 [ ]*198: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+019c <[^>]*> daddiu at,at,[-0-9]+ +0+019c <[^>]*> addiu at,at,[-0-9]+ [ ]*19c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+01a0 <[^>]*> ldl a0,[07]\(at\) 0+01a4 <[^>]*> ldr a0,[07]\(at\) 0+01a8 <[^>]*> lui at,0x0 [ ]*1a8: [A-Z0-9_]*HI[A-Z0-9_]* small_external_data_label -0+01ac <[^>]*> daddiu at,at,[-0-9]+ +0+01ac <[^>]*> addiu at,at,[-0-9]+ [ ]*1ac: [A-Z0-9_]*LO[A-Z0-9_]* small_external_data_label 0+01b0 <[^>]*> ldl a0,[07]\(at\) 0+01b4 <[^>]*> ldr a0,[07]\(at\) 0+01b8 <[^>]*> lui at,0x0 [ ]*1b8: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+01bc <[^>]*> daddiu at,at,[-0-9]+ +0+01bc <[^>]*> addiu at,at,[-0-9]+ [ ]*1bc: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+01c0 <[^>]*> ldl a0,[07]\(at\) 0+01c4 <[^>]*> ldr a0,[07]\(at\) 0+01c8 <[^>]*> lui at,0x0 [ ]*1c8: [A-Z0-9_]*HI[A-Z0-9_]* small_external_common -0+01cc <[^>]*> daddiu at,at,[-0-9]+ +0+01cc <[^>]*> addiu at,at,[-0-9]+ [ ]*1cc: [A-Z0-9_]*LO[A-Z0-9_]* small_external_common 0+01d0 <[^>]*> ldl a0,[07]\(at\) 0+01d4 <[^>]*> ldr a0,[07]\(at\) 0+01d8 <[^>]*> lui at,0x0 [ ]*1d8: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+01dc <[^>]*> daddiu at,at,[-0-9]+ +0+01dc <[^>]*> addiu at,at,[-0-9]+ [ ]*1dc: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+01e0 <[^>]*> ldl a0,[07]\(at\) 0+01e4 <[^>]*> ldr a0,[07]\(at\) 0+01e8 <[^>]*> lui at,0x0 [ ]*1e8: [A-Z0-9_]*HI[A-Z0-9_]* .sbss.* -0+01ec <[^>]*> daddiu at,at,[-0-9]+ +0+01ec <[^>]*> addiu at,at,[-0-9]+ [ ]*1ec: [A-Z0-9_]*LO[A-Z0-9_]* .sbss.* 0+01f0 <[^>]*> ldl a0,[07]\(at\) 0+01f4 <[^>]*> ldr a0,[07]\(at\) 0+01f8 <[^>]*> lui at,[-0-9x]+ [ ]*1f8: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+01fc <[^>]*> daddiu at,at,[-0-9]+ +0+01fc <[^>]*> addiu at,at,[-0-9]+ [ ]*1fc: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+0200 <[^>]*> ldl a0,[07]\(at\) 0+0204 <[^>]*> ldr a0,[07]\(at\) 0+0208 <[^>]*> lui at,[-0-9x]+ [ ]*208: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+020c <[^>]*> daddiu at,at,0 +0+020c <[^>]*> addiu at,at,0 [ ]*20c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+0210 <[^>]*> ldl a0,[07]\(at\) 0+0214 <[^>]*> ldr a0,[07]\(at\) 0+0218 <[^>]*> lui at,[-0-9x]+ [ ]*218: [A-Z0-9_]*HI[A-Z0-9_]* small_external_data_label -0+021c <[^>]*> daddiu at,at,0 +0+021c <[^>]*> addiu at,at,0 [ ]*21c: [A-Z0-9_]*LO[A-Z0-9_]* small_external_data_label 0+0220 <[^>]*> ldl a0,[07]\(at\) 0+0224 <[^>]*> ldr a0,[07]\(at\) 0+0228 <[^>]*> lui at,[-0-9x]+ [ ]*228: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+022c <[^>]*> daddiu at,at,0 +0+022c <[^>]*> addiu at,at,0 [ ]*22c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+0230 <[^>]*> ldl a0,[07]\(at\) 0+0234 <[^>]*> ldr a0,[07]\(at\) 0+0238 <[^>]*> lui at,[-0-9x]+ [ ]*238: [A-Z0-9_]*HI[A-Z0-9_]* small_external_common -0+023c <[^>]*> daddiu at,at,0 +0+023c <[^>]*> addiu at,at,0 [ ]*23c: [A-Z0-9_]*LO[A-Z0-9_]* small_external_common 0+0240 <[^>]*> ldl a0,[07]\(at\) 0+0244 <[^>]*> ldr a0,[07]\(at\) 0+0248 <[^>]*> lui at,[-0-9x]+ [ ]*248: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+024c <[^>]*> daddiu at,at,[-0-9]+ +0+024c <[^>]*> addiu at,at,[-0-9]+ [ ]*24c: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+0250 <[^>]*> ldl a0,[07]\(at\) 0+0254 <[^>]*> ldr a0,[07]\(at\) 0+0258 <[^>]*> lui at,[-0-9x]+ [ ]*258: [A-Z0-9_]*HI[A-Z0-9_]* .sbss.* -0+025c <[^>]*> daddiu at,at,[-0-9]+ +0+025c <[^>]*> addiu at,at,[-0-9]+ [ ]*25c: [A-Z0-9_]*LO[A-Z0-9_]* .sbss.* 0+0260 <[^>]*> ldl a0,[07]\(at\) 0+0264 <[^>]*> ldr a0,[07]\(at\) 0+0268 <[^>]*> lui at,[-0-9x]+ [ ]*268: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+026c <[^>]*> daddiu at,at,[-0-9]+ +0+026c <[^>]*> addiu at,at,[-0-9]+ [ ]*26c: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+0270 <[^>]*> ldl a0,[07]\(at\) 0+0274 <[^>]*> ldr a0,[07]\(at\) 0+0278 <[^>]*> lui at,[-0-9x]+ [ ]*278: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+027c <[^>]*> daddiu at,at,[-0-9]+ +0+027c <[^>]*> addiu at,at,[-0-9]+ [ ]*27c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+0280 <[^>]*> ldl a0,[07]\(at\) 0+0284 <[^>]*> ldr a0,[07]\(at\) 0+0288 <[^>]*> lui at,[-0-9x]+ [ ]*288: [A-Z0-9_]*HI[A-Z0-9_]* small_external_data_label -0+028c <[^>]*> daddiu at,at,[-0-9]+ +0+028c <[^>]*> addiu at,at,[-0-9]+ [ ]*28c: [A-Z0-9_]*LO[A-Z0-9_]* small_external_data_label 0+0290 <[^>]*> ldl a0,[07]\(at\) 0+0294 <[^>]*> ldr a0,[07]\(at\) 0+0298 <[^>]*> lui at,[-0-9x]+ [ ]*298: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+029c <[^>]*> daddiu at,at,[-0-9]+ +0+029c <[^>]*> addiu at,at,[-0-9]+ [ ]*29c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+02a0 <[^>]*> ldl a0,[07]\(at\) 0+02a4 <[^>]*> ldr a0,[07]\(at\) 0+02a8 <[^>]*> lui at,[-0-9x]+ [ ]*2a8: [A-Z0-9_]*HI[A-Z0-9_]* small_external_common -0+02ac <[^>]*> daddiu at,at,[-0-9]+ +0+02ac <[^>]*> addiu at,at,[-0-9]+ [ ]*2ac: [A-Z0-9_]*LO[A-Z0-9_]* small_external_common 0+02b0 <[^>]*> ldl a0,[07]\(at\) 0+02b4 <[^>]*> ldr a0,[07]\(at\) 0+02b8 <[^>]*> lui at,[-0-9x]+ [ ]*2b8: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+02bc <[^>]*> daddiu at,at,[-0-9]+ +0+02bc <[^>]*> addiu at,at,[-0-9]+ [ ]*2bc: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+02c0 <[^>]*> ldl a0,[07]\(at\) 0+02c4 <[^>]*> ldr a0,[07]\(at\) 0+02c8 <[^>]*> lui at,[-0-9x]+ [ ]*2c8: [A-Z0-9_]*HI[A-Z0-9_]* .sbss.* -0+02cc <[^>]*> daddiu at,at,[-0-9]+ +0+02cc <[^>]*> addiu at,at,[-0-9]+ [ ]*2cc: [A-Z0-9_]*LO[A-Z0-9_]* .sbss.* 0+02d0 <[^>]*> ldl a0,[07]\(at\) 0+02d4 <[^>]*> ldr a0,[07]\(at\) diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/usd.d src/gas/testsuite/gas/mips/usd.d --- src-orig/gas/testsuite/gas/mips/usd.d Mon Jul 2 14:34:18 2001 +++ src/gas/testsuite/gas/mips/usd.d Tue Aug 21 19:20:35 2001 @@ -29,241 +29,241 @@ Disassembly of section .text: 0+004c <[^>]*> sdr a0,[-0-9]+\(a1\) 0+0050 <[^>]*> lui at,[-0-9x]+ [ ]*50: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+0054 <[^>]*> daddiu at,at,[-0-9]+ +0+0054 <[^>]*> addiu at,at,[-0-9]+ [ ]*54: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+0058 <[^>]*> sdl a0,[07]\(at\) 0+005c <[^>]*> sdr a0,[07]\(at\) 0+0060 <[^>]*> lui at,[-0-9x]+ [ ]*60: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+0064 <[^>]*> daddiu at,at,[-0-9]+ +0+0064 <[^>]*> addiu at,at,[-0-9]+ [ ]*64: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+0068 <[^>]*> sdl a0,[07]\(at\) 0+006c <[^>]*> sdr a0,[07]\(at\) -0+0070 <[^>]*> daddiu at,gp,0 +0+0070 <[^>]*> addiu at,gp,0 [ ]*70: [A-Z0-9_]*GPREL[A-Z0-9_]* small_external_data_label 0+0074 <[^>]*> sdl a0,[07]\(at\) 0+0078 <[^>]*> sdr a0,[07]\(at\) 0+007c <[^>]*> lui at,0x0 [ ]*7c: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+0080 <[^>]*> daddiu at,at,[-0-9]+ +0+0080 <[^>]*> addiu at,at,[-0-9]+ [ ]*80: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+0084 <[^>]*> sdl a0,[07]\(at\) 0+0088 <[^>]*> sdr a0,[07]\(at\) -0+008c <[^>]*> daddiu at,gp,0 +0+008c <[^>]*> addiu at,gp,0 [ ]*8c: [A-Z0-9_]*GPREL[A-Z0-9_]* small_external_common 0+0090 <[^>]*> sdl a0,[07]\(at\) 0+0094 <[^>]*> sdr a0,[07]\(at\) 0+0098 <[^>]*> lui at,[-0-9x]+ [ ]*98: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+009c <[^>]*> daddiu at,at,[-0-9]+ +0+009c <[^>]*> addiu at,at,[-0-9]+ [ ]*9c: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+00a0 <[^>]*> sdl a0,[07]\(at\) 0+00a4 <[^>]*> sdr a0,[07]\(at\) -0+00a8 <[^>]*> daddiu at,gp,[-0-9]+ +0+00a8 <[^>]*> addiu at,gp,[-0-9]+ [ ]*a8: [A-Z0-9_]*GPREL[A-Z0-9_]* .sbss.* 0+00ac <[^>]*> sdl a0,[07]\(at\) 0+00b0 <[^>]*> sdr a0,[07]\(at\) 0+00b4 <[^>]*> lui at,0x0 [ ]*b4: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+00b8 <[^>]*> daddiu at,at,[-0-9]+ +0+00b8 <[^>]*> addiu at,at,[-0-9]+ [ ]*b8: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+00bc <[^>]*> sdl a0,[07]\(at\) 0+00c0 <[^>]*> sdr a0,[07]\(at\) 0+00c4 <[^>]*> lui at,0x0 [ ]*c4: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+00c8 <[^>]*> daddiu at,at,[-0-9]+ +0+00c8 <[^>]*> addiu at,at,[-0-9]+ [ ]*c8: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+00cc <[^>]*> sdl a0,[07]\(at\) 0+00d0 <[^>]*> sdr a0,[07]\(at\) -0+00d4 <[^>]*> daddiu at,gp,1 +0+00d4 <[^>]*> addiu at,gp,1 [ ]*d4: [A-Z0-9_]*GPREL[A-Z0-9_]* small_external_data_label 0+00d8 <[^>]*> sdl a0,[07]\(at\) 0+00dc <[^>]*> sdr a0,[07]\(at\) 0+00e0 <[^>]*> lui at,0x0 [ ]*e0: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+00e4 <[^>]*> daddiu at,at,[-0-9]+ +0+00e4 <[^>]*> addiu at,at,[-0-9]+ [ ]*e4: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+00e8 <[^>]*> sdl a0,[07]\(at\) 0+00ec <[^>]*> sdr a0,[07]\(at\) -0+00f0 <[^>]*> daddiu at,gp,1 +0+00f0 <[^>]*> addiu at,gp,1 [ ]*f0: [A-Z0-9_]*GPREL[A-Z0-9_]* small_external_common 0+00f4 <[^>]*> sdl a0,[07]\(at\) 0+00f8 <[^>]*> sdr a0,[07]\(at\) 0+00fc <[^>]*> lui at,0x0 [ ]*fc: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+0100 <[^>]*> daddiu at,at,[-0-9]+ +0+0100 <[^>]*> addiu at,at,[-0-9]+ [ ]*100: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+0104 <[^>]*> sdl a0,[07]\(at\) 0+0108 <[^>]*> sdr a0,[07]\(at\) -0+010c <[^>]*> daddiu at,gp,[-0-9]+ +0+010c <[^>]*> addiu at,gp,[-0-9]+ [ ]*10c: [A-Z0-9_]*GPREL[A-Z0-9_]* .sbss.* 0+0110 <[^>]*> sdl a0,[07]\(at\) 0+0114 <[^>]*> sdr a0,[07]\(at\) 0+0118 <[^>]*> lui at,[-0-9x]+ [ ]*118: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+011c <[^>]*> daddiu at,at,[-0-9]+ +0+011c <[^>]*> addiu at,at,[-0-9]+ [ ]*11c: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+0120 <[^>]*> sdl a0,[07]\(at\) 0+0124 <[^>]*> sdr a0,[07]\(at\) 0+0128 <[^>]*> lui at,[-0-9x]+ [ ]*128: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+012c <[^>]*> daddiu at,at,[-0-9]+ +0+012c <[^>]*> addiu at,at,[-0-9]+ [ ]*12c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+0130 <[^>]*> sdl a0,[07]\(at\) 0+0134 <[^>]*> sdr a0,[07]\(at\) 0+0138 <[^>]*> lui at,[-0-9x]+ [ ]*138: [A-Z0-9_]*HI[A-Z0-9_]* small_external_data_label -0+013c <[^>]*> daddiu at,at,[-0-9]+ +0+013c <[^>]*> addiu at,at,[-0-9]+ [ ]*13c: [A-Z0-9_]*LO[A-Z0-9_]* small_external_data_label 0+0140 <[^>]*> sdl a0,[07]\(at\) 0+0144 <[^>]*> sdr a0,[07]\(at\) 0+0148 <[^>]*> lui at,[-0-9x]+ [ ]*148: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+014c <[^>]*> daddiu at,at,[-0-9]+ +0+014c <[^>]*> addiu at,at,[-0-9]+ [ ]*14c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+0150 <[^>]*> sdl a0,[07]\(at\) 0+0154 <[^>]*> sdr a0,[07]\(at\) 0+0158 <[^>]*> lui at,[-0-9x]+ [ ]*158: [A-Z0-9_]*HI[A-Z0-9_]* small_external_common -0+015c <[^>]*> daddiu at,at,[-0-9]+ +0+015c <[^>]*> addiu at,at,[-0-9]+ [ ]*15c: [A-Z0-9_]*LO[A-Z0-9_]* small_external_common 0+0160 <[^>]*> sdl a0,[07]\(at\) 0+0164 <[^>]*> sdr a0,[07]\(at\) 0+0168 <[^>]*> lui at,[-0-9x]+ [ ]*168: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+016c <[^>]*> daddiu at,at,[-0-9]+ +0+016c <[^>]*> addiu at,at,[-0-9]+ [ ]*16c: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+0170 <[^>]*> sdl a0,[07]\(at\) 0+0174 <[^>]*> sdr a0,[07]\(at\) 0+0178 <[^>]*> lui at,[-0-9x]+ [ ]*178: [A-Z0-9_]*HI[A-Z0-9_]* .sbss.* -0+017c <[^>]*> daddiu at,at,[-0-9]+ +0+017c <[^>]*> addiu at,at,[-0-9]+ [ ]*17c: [A-Z0-9_]*LO[A-Z0-9_]* .sbss.* 0+0180 <[^>]*> sdl a0,[07]\(at\) 0+0184 <[^>]*> sdr a0,[07]\(at\) 0+0188 <[^>]*> lui at,0x0 [ ]*188: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+018c <[^>]*> daddiu at,at,[-0-9]+ +0+018c <[^>]*> addiu at,at,[-0-9]+ [ ]*18c: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+0190 <[^>]*> sdl a0,[07]\(at\) 0+0194 <[^>]*> sdr a0,[07]\(at\) 0+0198 <[^>]*> lui at,0x0 [ ]*198: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+019c <[^>]*> daddiu at,at,[-0-9]+ +0+019c <[^>]*> addiu at,at,[-0-9]+ [ ]*19c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+01a0 <[^>]*> sdl a0,[07]\(at\) 0+01a4 <[^>]*> sdr a0,[07]\(at\) 0+01a8 <[^>]*> lui at,0x0 [ ]*1a8: [A-Z0-9_]*HI[A-Z0-9_]* small_external_data_label -0+01ac <[^>]*> daddiu at,at,[-0-9]+ +0+01ac <[^>]*> addiu at,at,[-0-9]+ [ ]*1ac: [A-Z0-9_]*LO[A-Z0-9_]* small_external_data_label 0+01b0 <[^>]*> sdl a0,[07]\(at\) 0+01b4 <[^>]*> sdr a0,[07]\(at\) 0+01b8 <[^>]*> lui at,0x0 [ ]*1b8: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+01bc <[^>]*> daddiu at,at,[-0-9]+ +0+01bc <[^>]*> addiu at,at,[-0-9]+ [ ]*1bc: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+01c0 <[^>]*> sdl a0,[07]\(at\) 0+01c4 <[^>]*> sdr a0,[07]\(at\) 0+01c8 <[^>]*> lui at,0x0 [ ]*1c8: [A-Z0-9_]*HI[A-Z0-9_]* small_external_common -0+01cc <[^>]*> daddiu at,at,[-0-9]+ +0+01cc <[^>]*> addiu at,at,[-0-9]+ [ ]*1cc: [A-Z0-9_]*LO[A-Z0-9_]* small_external_common 0+01d0 <[^>]*> sdl a0,[07]\(at\) 0+01d4 <[^>]*> sdr a0,[07]\(at\) 0+01d8 <[^>]*> lui at,0x0 [ ]*1d8: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+01dc <[^>]*> daddiu at,at,[-0-9]+ +0+01dc <[^>]*> addiu at,at,[-0-9]+ [ ]*1dc: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+01e0 <[^>]*> sdl a0,[07]\(at\) 0+01e4 <[^>]*> sdr a0,[07]\(at\) 0+01e8 <[^>]*> lui at,0x0 [ ]*1e8: [A-Z0-9_]*HI[A-Z0-9_]* .sbss.* -0+01ec <[^>]*> daddiu at,at,[-0-9]+ +0+01ec <[^>]*> addiu at,at,[-0-9]+ [ ]*1ec: [A-Z0-9_]*LO[A-Z0-9_]* .sbss.* 0+01f0 <[^>]*> sdl a0,[07]\(at\) 0+01f4 <[^>]*> sdr a0,[07]\(at\) 0+01f8 <[^>]*> lui at,[-0-9x]+ [ ]*1f8: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+01fc <[^>]*> daddiu at,at,[-0-9]+ +0+01fc <[^>]*> addiu at,at,[-0-9]+ [ ]*1fc: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+0200 <[^>]*> sdl a0,[07]\(at\) 0+0204 <[^>]*> sdr a0,[07]\(at\) 0+0208 <[^>]*> lui at,[-0-9x]+ [ ]*208: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+020c <[^>]*> daddiu at,at,0 +0+020c <[^>]*> addiu at,at,0 [ ]*20c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+0210 <[^>]*> sdl a0,[07]\(at\) 0+0214 <[^>]*> sdr a0,[07]\(at\) 0+0218 <[^>]*> lui at,[-0-9x]+ [ ]*218: [A-Z0-9_]*HI[A-Z0-9_]* small_external_data_label -0+021c <[^>]*> daddiu at,at,0 +0+021c <[^>]*> addiu at,at,0 [ ]*21c: [A-Z0-9_]*LO[A-Z0-9_]* small_external_data_label 0+0220 <[^>]*> sdl a0,[07]\(at\) 0+0224 <[^>]*> sdr a0,[07]\(at\) 0+0228 <[^>]*> lui at,[-0-9x]+ [ ]*228: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+022c <[^>]*> daddiu at,at,0 +0+022c <[^>]*> addiu at,at,0 [ ]*22c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+0230 <[^>]*> sdl a0,[07]\(at\) 0+0234 <[^>]*> sdr a0,[07]\(at\) 0+0238 <[^>]*> lui at,[-0-9x]+ [ ]*238: [A-Z0-9_]*HI[A-Z0-9_]* small_external_common -0+023c <[^>]*> daddiu at,at,0 +0+023c <[^>]*> addiu at,at,0 [ ]*23c: [A-Z0-9_]*LO[A-Z0-9_]* small_external_common 0+0240 <[^>]*> sdl a0,[07]\(at\) 0+0244 <[^>]*> sdr a0,[07]\(at\) 0+0248 <[^>]*> lui at,[-0-9x]+ [ ]*248: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+024c <[^>]*> daddiu at,at,[-0-9]+ +0+024c <[^>]*> addiu at,at,[-0-9]+ [ ]*24c: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+0250 <[^>]*> sdl a0,[07]\(at\) 0+0254 <[^>]*> sdr a0,[07]\(at\) 0+0258 <[^>]*> lui at,[-0-9x]+ [ ]*258: [A-Z0-9_]*HI[A-Z0-9_]* .sbss.* -0+025c <[^>]*> daddiu at,at,[-0-9]+ +0+025c <[^>]*> addiu at,at,[-0-9]+ [ ]*25c: [A-Z0-9_]*LO[A-Z0-9_]* .sbss.* 0+0260 <[^>]*> sdl a0,[07]\(at\) 0+0264 <[^>]*> sdr a0,[07]\(at\) 0+0268 <[^>]*> lui at,[-0-9x]+ [ ]*268: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+026c <[^>]*> daddiu at,at,[-0-9]+ +0+026c <[^>]*> addiu at,at,[-0-9]+ [ ]*26c: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+0270 <[^>]*> sdl a0,[07]\(at\) 0+0274 <[^>]*> sdr a0,[07]\(at\) 0+0278 <[^>]*> lui at,[-0-9x]+ [ ]*278: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+027c <[^>]*> daddiu at,at,[-0-9]+ +0+027c <[^>]*> addiu at,at,[-0-9]+ [ ]*27c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+0280 <[^>]*> sdl a0,[07]\(at\) 0+0284 <[^>]*> sdr a0,[07]\(at\) 0+0288 <[^>]*> lui at,[-0-9x]+ [ ]*288: [A-Z0-9_]*HI[A-Z0-9_]* small_external_data_label -0+028c <[^>]*> daddiu at,at,[-0-9]+ +0+028c <[^>]*> addiu at,at,[-0-9]+ [ ]*28c: [A-Z0-9_]*LO[A-Z0-9_]* small_external_data_label 0+0290 <[^>]*> sdl a0,[07]\(at\) 0+0294 <[^>]*> sdr a0,[07]\(at\) 0+0298 <[^>]*> lui at,[-0-9x]+ [ ]*298: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+029c <[^>]*> daddiu at,at,[-0-9]+ +0+029c <[^>]*> addiu at,at,[-0-9]+ [ ]*29c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+02a0 <[^>]*> sdl a0,[07]\(at\) 0+02a4 <[^>]*> sdr a0,[07]\(at\) 0+02a8 <[^>]*> lui at,[-0-9x]+ [ ]*2a8: [A-Z0-9_]*HI[A-Z0-9_]* small_external_common -0+02ac <[^>]*> daddiu at,at,[-0-9]+ +0+02ac <[^>]*> addiu at,at,[-0-9]+ [ ]*2ac: [A-Z0-9_]*LO[A-Z0-9_]* small_external_common 0+02b0 <[^>]*> sdl a0,[07]\(at\) 0+02b4 <[^>]*> sdr a0,[07]\(at\) 0+02b8 <[^>]*> lui at,[-0-9x]+ [ ]*2b8: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+02bc <[^>]*> daddiu at,at,[-0-9]+ +0+02bc <[^>]*> addiu at,at,[-0-9]+ [ ]*2bc: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+02c0 <[^>]*> sdl a0,[07]\(at\) 0+02c4 <[^>]*> sdr a0,[07]\(at\) 0+02c8 <[^>]*> lui at,[-0-9x]+ [ ]*2c8: [A-Z0-9_]*HI[A-Z0-9_]* .sbss.* -0+02cc <[^>]*> daddiu at,at,[-0-9]+ +0+02cc <[^>]*> addiu at,at,[-0-9]+ [ ]*2cc: [A-Z0-9_]*LO[A-Z0-9_]* .sbss.* 0+02d0 <[^>]*> sdl a0,[07]\(at\) 0+02d4 <[^>]*> sdr a0,[07]\(at\) ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-24 18:26 [PATCH] Fix distinction of 32/64bit addresses in MIPS gas Thiemo Seufer @ 2001-08-31 8:02 ` Richard Sandiford 2001-08-31 8:28 ` H . J . Lu 2001-08-31 9:17 ` Thiemo Seufer 0 siblings, 2 replies; 62+ messages in thread From: Richard Sandiford @ 2001-08-31 8:02 UTC (permalink / raw) To: Thiemo Seufer; +Cc: binutils Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de> writes: > we can't have 64bit addresses in a 32bit object file format, I'm not sure what you mean. I thought elf32 supported 64-bit addresses through R_MIPS_64? Besides, isn't the address size really decided by the ABI? > so I added a check for mips_64 to the relevant macro. This will fail > for o64 ABI and possibly for eabi64 too, but these are both virtually > unimplemented in gas. (I don't really know how eabi64 is defined.) Richard ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 8:02 ` Richard Sandiford @ 2001-08-31 8:28 ` H . J . Lu 2001-08-31 9:17 ` Thiemo Seufer 1 sibling, 0 replies; 62+ messages in thread From: H . J . Lu @ 2001-08-31 8:28 UTC (permalink / raw) To: Richard Sandiford; +Cc: Thiemo Seufer, binutils On Fri, Aug 31, 2001 at 04:02:30PM +0100, Richard Sandiford wrote: > Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de> writes: > > > we can't have 64bit addresses in a 32bit object file format, > > I'm not sure what you mean. I thought elf32 supported 64-bit addresses > through R_MIPS_64? Besides, isn't the address size really decided by > the ABI? > I don't think you can use R_MIPS_64 for 32bit ELF. H.J. ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 8:02 ` Richard Sandiford 2001-08-31 8:28 ` H . J . Lu @ 2001-08-31 9:17 ` Thiemo Seufer 2001-08-31 9:53 ` Geoff Keating 2001-08-31 10:04 ` Richard Sandiford 1 sibling, 2 replies; 62+ messages in thread From: Thiemo Seufer @ 2001-08-31 9:17 UTC (permalink / raw) To: binutils Richard Sandiford wrote: > Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de> writes: > > > we can't have 64bit addresses in a 32bit object file format, > > I'm not sure what you mean. I thought elf32 supported 64-bit addresses > through R_MIPS_64? MIPS ELF32 has no R_MIPS_64, AFAIK it has no notion of 64bit entities at all. > Besides, isn't the address size really decided by > the ABI? Sure, and a ABI with 64bit addresses won't fit in a object format restricted to 32bit. Thiemo ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 9:17 ` Thiemo Seufer @ 2001-08-31 9:53 ` Geoff Keating 2001-08-31 10:31 ` Thiemo Seufer 2001-08-31 10:04 ` Richard Sandiford 1 sibling, 1 reply; 62+ messages in thread From: Geoff Keating @ 2001-08-31 9:53 UTC (permalink / raw) To: ica2_ts; +Cc: binutils > Mailing-List: contact binutils-help@sourceware.cygnus.com; run by ezmlm > List-Unsubscribe: < mailto:binutils-unsubscribe-geoffk=cygnus.com@sources.redhat.com > > List-Subscribe: < mailto:binutils-subscribe@sources.redhat.com > > List-Archive: < http://sources.redhat.com/ml/binutils/ > > List-Post: < mailto:binutils@sources.redhat.com > > List-Help: < mailto:binutils-help@sources.redhat.com >, < http://sources.redhat.com/ml/#faqs > > Date: Fri, 31 Aug 2001 18:16:57 +0200 > Content-Disposition: inline > User-Agent: Mutt/1.3.20i > From: Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de> > > Richard Sandiford wrote: > > Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de> writes: > > > > > we can't have 64bit addresses in a 32bit object file format, > > > > I'm not sure what you mean. I thought elf32 supported 64-bit addresses > > through R_MIPS_64? > > MIPS ELF32 has no R_MIPS_64, AFAIK it has no notion of 64bit > entities at all. Doesn't this work by R_MIPS_64 being a sign-extended 32-bit address? You don't get real 64-bit addresses, but you can create 64-bit values from 32-bit addresses, useful for a program running on a 64-bit chip but being loaded in the 32-bit address space. -- - Geoffrey Keating <geoffk@geoffk.org> ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 9:53 ` Geoff Keating @ 2001-08-31 10:31 ` Thiemo Seufer [not found] ` <mailpost.999279120.2469@postal.sibyte.com> 0 siblings, 1 reply; 62+ messages in thread From: Thiemo Seufer @ 2001-08-31 10:31 UTC (permalink / raw) To: binutils Geoff Keating wrote: [snip] > > > > we can't have 64bit addresses in a 32bit object file format, > > > > > > I'm not sure what you mean. I thought elf32 supported 64-bit addresses > > > through R_MIPS_64? > > > > MIPS ELF32 has no R_MIPS_64, AFAIK it has no notion of 64bit > > entities at all. > > Doesn't this work by R_MIPS_64 being a sign-extended 32-bit address? Reiteration: MIPS ELF32 has no R_MIPS_64. > You don't get real 64-bit addresses, but you can create 64-bit values > from 32-bit addresses, useful for a program running on a 64-bit chip > but being loaded in the 32-bit address space. It's a property of all 64bit capable MIPS Hardware to sign-extend 32bit addresses, this has nothing to do with the object format. Tools like gdb have to sign-extend the 32bit addresses theirselves to keep in sync with the Hardware. Thiemo ^ permalink raw reply [flat|nested] 62+ messages in thread
[parent not found: <mailpost.999279120.2469@postal.sibyte.com>]
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas [not found] ` <mailpost.999279120.2469@postal.sibyte.com> @ 2001-08-31 10:37 ` cgd 2001-08-31 11:46 ` Thiemo Seufer 0 siblings, 1 reply; 62+ messages in thread From: cgd @ 2001-08-31 10:37 UTC (permalink / raw) To: ica2_ts; +Cc: binutils ica2_ts@csv.ica.uni-stuttgart.de ("Thiemo Seufer") writes: > Geoff Keating wrote: > [snip] > > > > > we can't have 64bit addresses in a 32bit object file format, > > > > > > > > I'm not sure what you mean. I thought elf32 supported 64-bit addresses > > > > through R_MIPS_64? > > > > > > MIPS ELF32 has no R_MIPS_64, AFAIK it has no notion of 64bit > > > entities at all. > > > > Doesn't this work by R_MIPS_64 being a sign-extended 32-bit address? > > Reiteration: MIPS ELF32 has no R_MIPS_64. Maybe i'm missing something in what you're saying but... bfd's elf32-mips.c definitely has some amount of support for R_MIPS_64... As far as I know, we (SiByte) have been using it for ... a while now in code that gets compiled with -mips[34] (or similar 8-) -mlong64, into elf32 object files... cgd ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 10:37 ` cgd @ 2001-08-31 11:46 ` Thiemo Seufer 2001-08-31 11:49 ` Ian Lance Taylor ` (3 more replies) 0 siblings, 4 replies; 62+ messages in thread From: Thiemo Seufer @ 2001-08-31 11:46 UTC (permalink / raw) To: binutils cgd@broadcom.com wrote: [snip] > > > > > > we can't have 64bit addresses in a 32bit object file format, > > > > > > > > > > I'm not sure what you mean. I thought elf32 supported 64-bit addresses > > > > > through R_MIPS_64? > > > > > > > > MIPS ELF32 has no R_MIPS_64, AFAIK it has no notion of 64bit > > > > entities at all. > > > > > > Doesn't this work by R_MIPS_64 being a sign-extended 32-bit address? > > > > Reiteration: MIPS ELF32 has no R_MIPS_64. > > Maybe i'm missing something in what you're saying but... I'm talking about: SYSTEM V APPLICATION BINARY INTERFACE MIPS RISC Processor Supplement 3rd Edition where no such relocation is defined. > bfd's elf32-mips.c definitely has some amount of support for > R_MIPS_64... It is a relocation from ABI 64, ABI N32 is a variation of it WRT. Even n32 code does not use R_MIPS_64 or R_MIPS_SUB because it can't hold a 64bit value in it's relocations (and it has no use for 64bit anyway). > As far as I know, we (SiByte) have been using it for ... a while now > in code that gets compiled with -mips[34] (or similar 8-) -mlong64, > into elf32 object files... I saw the comments in elf32-mips.c and hoped nobody actually used it anyway. It violates every applicable standard. Can you give a example where R_MIPS_64 is actually needed instead of R_MIPS_32? If the output is truncated I can't see why R_MIPS_32 (possibly with tweaked content) insn't enough. Thiemo ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 11:46 ` Thiemo Seufer @ 2001-08-31 11:49 ` Ian Lance Taylor 2001-08-31 11:50 ` Ian Lance Taylor ` (2 subsequent siblings) 3 siblings, 0 replies; 62+ messages in thread From: Ian Lance Taylor @ 2001-08-31 11:49 UTC (permalink / raw) To: Thiemo Seufer; +Cc: binutils ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 11:46 ` Thiemo Seufer 2001-08-31 11:49 ` Ian Lance Taylor @ 2001-08-31 11:50 ` Ian Lance Taylor [not found] ` <mailpost.999283589.5294@postal.sibyte.com> 2001-08-31 14:49 ` Andrew Cagney 3 siblings, 0 replies; 62+ messages in thread From: Ian Lance Taylor @ 2001-08-31 11:50 UTC (permalink / raw) To: Thiemo Seufer; +Cc: binutils Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de> writes: > > As far as I know, we (SiByte) have been using it for ... a while now > > in code that gets compiled with -mips[34] (or similar 8-) -mlong64, > > into elf32 object files... > > I saw the comments in elf32-mips.c and hoped nobody actually used > it anyway. It violates every applicable standard. There is a difference between violating a standard and extending a standard. Violating a standard is generally a bad idea. Extending a standard is merely risky. Ian ^ permalink raw reply [flat|nested] 62+ messages in thread
[parent not found: <mailpost.999283589.5294@postal.sibyte.com>]
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas [not found] ` <mailpost.999283589.5294@postal.sibyte.com> @ 2001-08-31 12:41 ` cgd 2001-08-31 14:31 ` H . J . Lu 2001-08-31 18:22 ` Thiemo Seufer 0 siblings, 2 replies; 62+ messages in thread From: cgd @ 2001-08-31 12:41 UTC (permalink / raw) To: ica2_ts; +Cc: binutils ica2_ts@csv.ica.uni-stuttgart.de ("Thiemo Seufer") writes: > Can you give a example where R_MIPS_64 is actually needed instead > of R_MIPS_32? If the output is truncated I can't see why R_MIPS_32 > (possibly with tweaked content) insn't enough. cat > foo.c << __EOF__ extern int foo; int *bar = &foo; __EOF mips-elf-gcc -mips4 -mlong64 -c foo.c i believe that should be sufficient. (certainly, it does the trick here with both our mips-linux tools and mips-elf-variant tools... 8-) yes, i know that the pointer is going to be constrainted to being a sign-extended 32-bit value, but neither the compiler or any assembly code that uses it needs to know that (or should). As far as they're concerned, pointers are 64-bit values and they're loaded with ld, etc. yes, there's code that actually uses this. why? it's really nice to have code that is linked into a 32-bit address space, but can have 'usable' 64-bit pointers in C code. e.g. code that lives at the boot vector, but wants to address data in xkphys... One could use 64-bit ELF for these programs, but that support is really new (does it even work completely yet?), and, really, there's no reason for people doing this to _want_ to switch to 64-bit ELF so why do it? chris ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 12:41 ` cgd @ 2001-08-31 14:31 ` H . J . Lu 2001-09-03 23:07 ` cgd 2001-08-31 18:22 ` Thiemo Seufer 1 sibling, 1 reply; 62+ messages in thread From: H . J . Lu @ 2001-08-31 14:31 UTC (permalink / raw) To: cgd; +Cc: ica2_ts, binutils On Fri, Aug 31, 2001 at 12:41:37PM -0700, cgd@broadcom.com wrote: > ica2_ts@csv.ica.uni-stuttgart.de ("Thiemo Seufer") writes: > > Can you give a example where R_MIPS_64 is actually needed instead > > of R_MIPS_32? If the output is truncated I can't see why R_MIPS_32 > > (possibly with tweaked content) insn't enough. > > cat > foo.c << __EOF__ > extern int foo; > > int *bar = &foo; > __EOF > mips-elf-gcc -mips4 -mlong64 -c foo.c > > > i believe that should be sufficient. (certainly, it does the trick > here with both our mips-linux tools and mips-elf-variant tools... 8-) > > yes, i know that the pointer is going to be constrainted to being a > sign-extended 32-bit value, but neither the compiler or any assembly > code that uses it needs to know that (or should). As far as they're > concerned, pointers are 64-bit values and they're loaded with ld, etc. Why do you need R_MIPS_64 for that? > > yes, there's code that actually uses this. why? it's really nice to > have code that is linked into a 32-bit address space, but can have > 'usable' 64-bit pointers in C code. e.g. code that lives at the boot > vector, but wants to address data in xkphys... One could use 64-bit > ELF for these programs, but that support is really new (does it even > work completely yet?), and, really, there's no reason for people doing > this to _want_ to switch to 64-bit ELF so why do it? What is the 32bit address of `foo'? H.J. ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 14:31 ` H . J . Lu @ 2001-09-03 23:07 ` cgd 2001-09-06 10:50 ` H . J . Lu 0 siblings, 1 reply; 62+ messages in thread From: cgd @ 2001-09-03 23:07 UTC (permalink / raw) To: H . J . Lu; +Cc: ica2_ts, binutils "H . J . Lu" <hjl@lucon.org> writes: > > yes, i know that the pointer is going to be constrainted to being a > > sign-extended 32-bit value, but neither the compiler or any assembly > > code that uses it needs to know that (or should). As far as they're > > concerned, pointers are 64-bit values and they're loaded with ld, etc. > > Why do you need R_MIPS_64 for that? Don't really know that that specific reloc is necessary... but that _is_ what the tools seem to generate, no? However no matter how you cut it, you still need a reloc that "32 bit address, plus 32 bits of sign extension." > What is the 32bit address of `foo'? bit 31 may or may not be set, depending on what exactly you're compiling. (I've personally used that type of construction for both things that live at the boot address, and things which live down in (k)useg, and we contanute to use that on a daily basis.) cgd ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-03 23:07 ` cgd @ 2001-09-06 10:50 ` H . J . Lu 2001-09-06 10:59 ` cgd 2001-09-06 11:08 ` Thiemo Seufer 0 siblings, 2 replies; 62+ messages in thread From: H . J . Lu @ 2001-09-06 10:50 UTC (permalink / raw) To: cgd; +Cc: ica2_ts, binutils On Mon, Sep 03, 2001 at 11:07:50PM -0700, cgd@broadcom.com wrote: > "H . J . Lu" <hjl@lucon.org> writes: > > > yes, i know that the pointer is going to be constrainted to being a > > > sign-extended 32-bit value, but neither the compiler or any assembly > > > code that uses it needs to know that (or should). As far as they're > > > concerned, pointers are 64-bit values and they're loaded with ld, etc. > > > > Why do you need R_MIPS_64 for that? > > Don't really know that that specific reloc is necessary... but that > _is_ what the tools seem to generate, no? > > However no matter how you cut it, you still need a reloc that "32 bit > address, plus 32 bits of sign extension." > > > > What is the 32bit address of `foo'? > > bit 31 may or may not be set, depending on what exactly you're > compiling. Let me get this. Correct me if I am wrong. It seems that you want to use 64bit registers in an o32 binary. Am I right? H.J. ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-06 10:50 ` H . J . Lu @ 2001-09-06 10:59 ` cgd 2001-09-06 11:07 ` H . J . Lu 2001-09-06 11:14 ` Thiemo Seufer 2001-09-06 11:08 ` Thiemo Seufer 1 sibling, 2 replies; 62+ messages in thread From: cgd @ 2001-09-06 10:59 UTC (permalink / raw) To: H . J . Lu; +Cc: ica2_ts, binutils "H . J . Lu" <hjl@lucon.org> writes: > > > What is the 32bit address of `foo'? > > > > bit 31 may or may not be set, depending on what exactly you're > > compiling. > > Let me get this. Correct me if I am wrong. It seems that you want > to use 64bit registers in an o32 binary. Am I right? Uh, the way you phrase that, i get the feeling that you think i'm silly for saying "yes." But I think that's probably only because you structure the question unfavforably. I don't think I said anything about "an o32 binary," just a 32-bit ELF binary. "mips64-elf" tools have, historically, generated: * 32-bit ELF * mips3-compatible code (including use of full 64-bit GPRs). Unless you say -mlong64, pointers and longs will be 32-bit, but you'll use full 64-bit GPRs for 'long long'. If you do say -mlong64, you'll get 64-bit pointers and longs, in your 64-bit GPRs. All with a 32-bit ELF format. (And, using R_MIPS_64 to represent pointers in the object files.) I don't really _know_ what ABI it uses. I had always thought of it as "o64", which in my mind was "o32 naively extended for 64-bit GPRs," but really i don't know that that's correct. In fact, I don't really _care_ what ABI it uses. We understand the calling conventions well enough for embedded development use, which is where we're using it. In any case, it _does_ work (or did until recently -- i've not really tried in the last few months with a truly vanilla mips64-elf configuration, since we've got a clone of mips64-elf with a few minor mods which are irrelevant for the purposes of this discussion 8-). You can be sure that if we are, there's no shortage of others doing so as well... cgd ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-06 10:59 ` cgd @ 2001-09-06 11:07 ` H . J . Lu 2001-09-06 11:35 ` Thiemo Seufer ` (2 more replies) 2001-09-06 11:14 ` Thiemo Seufer 1 sibling, 3 replies; 62+ messages in thread From: H . J . Lu @ 2001-09-06 11:07 UTC (permalink / raw) To: cgd; +Cc: ica2_ts, binutils On Thu, Sep 06, 2001 at 10:59:29AM -0700, cgd@broadcom.com wrote: > "H . J . Lu" <hjl@lucon.org> writes: > > > > What is the 32bit address of `foo'? > > > > > > bit 31 may or may not be set, depending on what exactly you're > > > compiling. > > > > Let me get this. Correct me if I am wrong. It seems that you want > > to use 64bit registers in an o32 binary. Am I right? > > Uh, the way you phrase that, i get the feeling that you think i'm > silly for saying "yes." But I think that's probably only because you I won't call it silly. > structure the question unfavforably. I don't think I said anything > about "an o32 binary," just a 32-bit ELF binary. > I just want to make sure we are on the same page. > > "mips64-elf" tools have, historically, generated: > > * 32-bit ELF > > * mips3-compatible code (including use of full 64-bit GPRs). > > Unless you say -mlong64, pointers and longs will be 32-bit, but you'll > use full 64-bit GPRs for 'long long'. > > If you do say -mlong64, you'll get 64-bit pointers and longs, in your > 64-bit GPRs. > > All with a 32-bit ELF format. (And, using R_MIPS_64 to represent > pointers in the object files.) > > I don't really _know_ what ABI it uses. I had always thought of it as > "o64", which in my mind was "o32 naively extended for 64-bit GPRs," > but really i don't know that that's correct. In fact, I don't really > _care_ what ABI it uses. We understand the calling conventions well > enough for embedded development use, which is where we're using it. I think that is ok as long as R_MIPS_64 is not used for o32 binaries. Maybe it is time to give a new BFD target for mips64-elf since it does represent a different ABI which includes R_MIPS_64. R_MIPS_64 should be forbidden for o32 binaries. H.J. ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-06 11:07 ` H . J . Lu @ 2001-09-06 11:35 ` Thiemo Seufer 2001-09-06 11:39 ` cgd 2001-09-06 11:57 ` Richard Sandiford 2 siblings, 0 replies; 62+ messages in thread From: Thiemo Seufer @ 2001-09-06 11:35 UTC (permalink / raw) To: binutils H . J . Lu wrote: [snip] > > I don't really _know_ what ABI it uses. I had always thought of it as > > "o64", which in my mind was "o32 naively extended for 64-bit GPRs," > > but really i don't know that that's correct. It doesn't use the O64 header flag, so there's probably a difference. > > In fact, I don't really > > _care_ what ABI it uses. We understand the calling conventions well > > enough for embedded development use, which is where we're using it. > > I think that is ok as long as R_MIPS_64 is not used for o32 binaries. > Maybe it is time to give a new BFD target for mips64-elf since it does > represent a different ABI which includes R_MIPS_64. How would you distinguish these object files? The O32 header flag isn't mandatory for o32, and I don't think introducing a new one for this yet-unnamed ABI makes thing better. > R_MIPS_64 should be > forbidden for o32 binaries. It is only used with -mlong64, which kills ABI conformance anyway. It might be a good idea to clear any ABI header flag when such an option is in effect, It might also be a good thing to remove the O32 flag completely, since it can't denote a ABI conformant o32 binary. However, I don't know what tools will get broken then. Thiemo ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-06 11:07 ` H . J . Lu 2001-09-06 11:35 ` Thiemo Seufer @ 2001-09-06 11:39 ` cgd 2001-09-06 11:40 ` cgd 2001-09-08 12:03 ` Andrew Cagney 2001-09-06 11:57 ` Richard Sandiford 2 siblings, 2 replies; 62+ messages in thread From: cgd @ 2001-09-06 11:39 UTC (permalink / raw) To: H . J . Lu; +Cc: ica2_ts, binutils "H . J . Lu" <hjl@lucon.org> writes: > I think that is ok as long as R_MIPS_64 is not used for o32 binaries. > Maybe it is time to give a new BFD target for mips64-elf since it does > represent a different ABI which includes R_MIPS_64. R_MIPS_64 should be > forbidden for o32 binaries. What harm is there in allowing it, as an extension? Only 'broken' code will generate them to begin with... chris ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-06 11:39 ` cgd @ 2001-09-06 11:40 ` cgd 2001-09-08 12:03 ` Andrew Cagney 1 sibling, 0 replies; 62+ messages in thread From: cgd @ 2001-09-06 11:40 UTC (permalink / raw) To: H . J . Lu; +Cc: ica2_ts, binutils cgd@broadcom.com (Chris G. Demetriou) writes: > "H . J . Lu" <hjl@lucon.org> writes: > > I think that is ok as long as R_MIPS_64 is not used for o32 binaries. > > Maybe it is time to give a new BFD target for mips64-elf since it does > > represent a different ABI which includes R_MIPS_64. R_MIPS_64 should be > > forbidden for o32 binaries. > > What harm is there in allowing it, as an extension? > > Only 'broken' code will generate them to begin with... to be clearer: "... if that code's intent is to generate binaries which follow 'standard' o32." chris ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-06 11:39 ` cgd 2001-09-06 11:40 ` cgd @ 2001-09-08 12:03 ` Andrew Cagney 2001-09-08 16:38 ` Thiemo Seufer 1 sibling, 1 reply; 62+ messages in thread From: Andrew Cagney @ 2001-09-08 12:03 UTC (permalink / raw) To: cgd; +Cc: H . J . Lu, ica2_ts, binutils regarding o64, gdb expects, in gdb/mips-tdep.c:mips_gdbarch_init(), to see MIPS_ABI_O64 in the flags. is that being set? andrew ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-08 12:03 ` Andrew Cagney @ 2001-09-08 16:38 ` Thiemo Seufer 2001-09-08 16:56 ` Thiemo Seufer 0 siblings, 1 reply; 62+ messages in thread From: Thiemo Seufer @ 2001-09-08 16:38 UTC (permalink / raw) To: binutils Andrew Cagney wrote: > regarding o64, gdb expects, in gdb/mips-tdep.c:mips_gdbarch_init(), to > see MIPS_ABI_O64 in the flags. is that being set? Yes. The header flag is the only thing caused by -mabi=o64 in gas. Thiemo ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-08 16:38 ` Thiemo Seufer @ 2001-09-08 16:56 ` Thiemo Seufer 0 siblings, 0 replies; 62+ messages in thread From: Thiemo Seufer @ 2001-09-08 16:56 UTC (permalink / raw) To: binutils Thiemo Seufer wrote: > Andrew Cagney wrote: > > regarding o64, gdb expects, in gdb/mips-tdep.c:mips_gdbarch_init(), to > > see MIPS_ABI_O64 in the flags. is that being set? > > Yes. The header flag is the only thing caused by -mabi=o64 in gas. Ah, I didn't realize you referred to the -mlong64 trick to get 64bit code. AFAICS the o64 header flag is not set in this case. Thiemo ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-06 11:07 ` H . J . Lu 2001-09-06 11:35 ` Thiemo Seufer 2001-09-06 11:39 ` cgd @ 2001-09-06 11:57 ` Richard Sandiford 2001-09-06 20:53 ` Thiemo Seufer 2 siblings, 1 reply; 62+ messages in thread From: Richard Sandiford @ 2001-09-06 11:57 UTC (permalink / raw) To: H . J . Lu; +Cc: cgd, ica2_ts, binutils "H . J . Lu" <hjl@lucon.org> writes: > I think that is ok as long as R_MIPS_64 is not used for o32 binaries. > Maybe it is time to give a new BFD target for mips64-elf since it does > represent a different ABI which includes R_MIPS_64. R_MIPS_64 should be > forbidden for o32 binaries. I feel I'm missing something here, so sorry if I'm going round in circles. I'm just not sure I understand what the problem is. AFAIK, R_MIPS_64 won't be used unless you have 64-bit addresses (and hence 64-bit registers), or if you have an explicit pseudo-op like .8byte. o32 binaries wouldn't be using either of those things anyway, would they? I thought the consensus some time ago was that o32 implied 32-bit registers, and therefore 32-bit addresses. The HAVE_??BIT_ macros are already set up like that as long as you specify -mabi=32 on the command line. So AFAICT the current set-up supports what I think of as "o32 binaries" -- with the appropriate command-line switches -- and it also (hopefully) supports the more ad-hoc ABIs that were supported by earlier versions. Richard ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-06 11:57 ` Richard Sandiford @ 2001-09-06 20:53 ` Thiemo Seufer 2001-09-06 21:09 ` Thiemo Seufer ` (2 more replies) 0 siblings, 3 replies; 62+ messages in thread From: Thiemo Seufer @ 2001-09-06 20:53 UTC (permalink / raw) To: binutils Richard Sandiford wrote: [snip] > I feel I'm missing something here, so sorry if I'm going round in > circles. I'm just not sure I understand what the problem is. > > AFAIK, R_MIPS_64 won't be used unless you have 64-bit addresses (and > hence 64-bit registers), or if you have an explicit pseudo-op like > .8byte. o32 binaries wouldn't be using either of those things anyway, > would they? That's right, but you can't tell if it is actually o32 conformant by looking at the ELF header. There is no flag which says "Warning! This object does not conform to any established ABI". It would be nice to have one. > I thought the consensus some time ago was that o32 implied 32-bit > registers, and therefore 32-bit addresses. The HAVE_??BIT_ macros are > already set up like that as long as you specify -mabi=32 on the command > line. That's all fine for 32bit, but I needed a way to check if 64bit addresses can be used generally (e.g. for dli). Something like ! HAVE_32BIT_ADDRESSES won't do that, because full 64bit support needs a 64bit object format. Having a HAVE_64BIT_ADDRESSES macro which is _not_ the inverse of HAVE_32BIT_ADDRESSES is ugly. I also found no reason why there is made use of 64bit instructions like daddiu for a 32bit load. It makes the code look different from o32 while doing the same. This was the one part of my patch. The other was to change (d)la to chose it's expansion in dependency of the address model instead of the insn name. That's the way the SGI assembler behaves, and this is the useful behaviour for ABI conformance. For 64bit code in an 32bit object file this may have side effects (the usability of R_MIPS_64 is not affected). I split up my patch in two parts, the dla change is appended below. Thiemo 2001-09-07 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> /gas/ChangeLog * tc_mips.c (macro): Fix address load instruction. /gas/testsuite/ChangeLog * gas/mips/ld.d: Use 32bit instructions for addresses. * gas/mips/mips-gp64-fp32-pic.d: Likewise. * gas/mips/mips-gp64-fp32-pic.s: Likewise. * gas/mips/mips-gp64-fp32.d: Likewise. * gas/mips/mips-gp64-fp32.s: Likewise. * gas/mips/mips-gp64-fp64-pic.d: Likewise. * gas/mips/mips-gp64-fp64-pic.s: Likewise. * gas/mips/mips-gp64-fp64.d: Likewise. * gas/mips/mips-gp64-fp64.s: Likewise. * gas/mips/elempic.d: Likewise. * gas/mips/uld.d: Likewise. * gas/mips/usd.d: Likewise. diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/config/tc-mips.c src/gas/config/tc-mips.c --- src-orig/gas/config/tc-mips.c Sat Aug 18 21:47:23 2001 +++ src/gas/config/tc-mips.c Tue Aug 21 18:21:49 2001 @@ -4288,7 +4458,7 @@ macro (ip) 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", + HAVE_32BIT_ADDRESSES ? "lw" : "ld", "t,o(b)", tempreg, lw_reloc_type, GP); if (expr1.X_add_number == 0) { diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/ld.d src/gas/testsuite/gas/mips/ld.d --- src-orig/gas/testsuite/gas/mips/ld.d Mon Jul 2 14:34:18 2001 +++ src/gas/testsuite/gas/mips/ld.d Tue Aug 21 19:20:35 2001 @@ -628,12 +628,12 @@ Disassembly of section .text: 0+05d0 <[^>]*> sw a1,4\(zero\) 0+05d4 <[^>]*> lui a0,[-0-9x]+ [ ]*5d4: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+05d8 <[^>]*> daddu a0,a0,a1 +0+05d8 <[^>]*> addu a0,a0,a1 0+05dc <[^>]*> ld a0,[-0-9]+\(a0\) [ ]*5dc: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+05e0 <[^>]*> lui at,[-0-9x]+ [ ]*5e0: [A-Z0-9_]*HI[A-Z0-9_]* .sbss.* -0+05e4 <[^>]*> daddu at,at,a1 +0+05e4 <[^>]*> addu at,at,a1 0+05e8 <[^>]*> sd a0,[-0-9]+\(at\) [ ]*5e8: [A-Z0-9_]*LO[A-Z0-9_]* .sbss.* 0+05ec <[^>]*> nop ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-06 20:53 ` Thiemo Seufer @ 2001-09-06 21:09 ` Thiemo Seufer 2001-09-06 21:12 ` Thiemo Seufer 2001-09-07 4:10 ` Richard Sandiford 2 siblings, 0 replies; 62+ messages in thread From: Thiemo Seufer @ 2001-09-06 21:09 UTC (permalink / raw) To: binutils Thiemo Seufer wrote: [snip] > I split up my patch in two parts, the dla change is appended below. As announced, the other part with the HAVE_32BIT_ADDRESSES change. Thiemo 2001-09-07 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> /gas/ChangeLog * tc_mips.c (HAVE_32BIT_ADDRESSES): Check for 64bit object file format also. (HAVE_64BIT_ADDRESSES): New define. /gas/testsuite/ChangeLog * gas/mips/mips-gp64-fp32-pic.d: Use 32bit instructions for addresses. * gas/mips/mips-gp64-fp32-pic.s: Likewise. * gas/mips/mips-gp64-fp32.d: Likewise. * gas/mips/mips-gp64-fp32.s: Likewise. * gas/mips/mips-gp64-fp64-pic.d: Likewise. * gas/mips/mips-gp64-fp64-pic.s: Likewise. * gas/mips/mips-gp64-fp64.d: Likewise. * gas/mips/mips-gp64-fp64.s: Likewise. * gas/mips/elempic.d: Likewise. * gas/mips/uld.d: Likewise. * gas/mips/usd.d: Likewise. diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/config/tc-mips.c src/gas/config/tc-mips.c --- src-orig/gas/config/tc-mips.c Sat Aug 18 21:47:23 2001 +++ src/gas/config/tc-mips.c Tue Aug 21 18:21:49 2001 @@ -270,9 +270,15 @@ static int mips_32bit_abi = 0; #define HAVE_64BIT_GPRS (! HAVE_32BIT_GPRS) #define HAVE_64BIT_FPRS (! HAVE_32BIT_FPRS) -#define HAVE_32BIT_ADDRESSES \ - (HAVE_32BIT_GPRS \ - || bfd_arch_bits_per_address (stdoutput) == 32) +/* We can only have 64bit addresses if the object file format + supports it. FIXME: We abuse mips_64 as a indicator for + such support. */ +#define HAVE_32BIT_ADDRESSES \ + (HAVE_32BIT_GPRS \ + || bfd_arch_bits_per_address (stdoutput) == 32 \ + || ! mips_64) + +#define HAVE_64BIT_ADDRESSES (! HAVE_32BIT_ADDRESSES) /* Whether the processor uses hardware interlocks to protect reads from the HI and LO registers, and thus does not diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/mips-gp64-fp32-pic.d src/gas/testsuite/gas/mips/mips-gp64-fp32-pic.d --- src-orig/gas/testsuite/gas/mips/mips-gp64-fp32-pic.d Tue Aug 7 17:20:30 2001 +++ src/gas/testsuite/gas/mips/mips-gp64-fp32-pic.d Tue Aug 21 19:20:35 2001 @@ -10,121 +10,121 @@ Disassembly of section .text: 0: 3c1c0000 lui gp,0x0 4: 279c0000 addiu gp,gp,0 8: 0399e021 addu gp,gp,t9 - c: ffbc0008 sd gp,8\(sp\) - 10: 009c202d daddu a0,a0,gp + c: afbc0008 sw gp,8\(sp\) + 10: 009c2021 addu a0,a0,gp 14: 3c041234 lui a0,0x1234 18: 34845678 ori a0,a0,0x5678 1c: 8f840000 lw a0,0\(gp\) 20: 00000000 nop - 24: 64840000 daddiu a0,a0,0 + 24: 24840000 addiu a0,a0,0 28: 8f840000 lw a0,0\(gp\) 2c: 00000000 nop - 30: 64840000 daddiu a0,a0,0 + 30: 24840000 addiu a0,a0,0 34: 8f840000 lw a0,0\(gp\) 38: 00000000 nop - 3c: 64840228 daddiu a0,a0,552 + 3c: 24840228 addiu a0,a0,552 40: 10000079 b 228 <[^>]*> 44: 00000000 nop - 48: df990000 ld t9,0\(gp\) + 48: 8f990000 lw t9,0\(gp\) 4c: 00000000 nop - 50: 67390228 daddiu t9,t9,552 + 50: 27390228 addiu t9,t9,552 54: 0320f809 jalr t9 58: 00000000 nop - 5c: dfbc0008 ld gp,8\(sp\) - 60: df840000 ld a0,0\(gp\) + 5c: 8fbc0008 lw gp,8\(sp\) + 60: 8f840000 lw a0,0\(gp\) 64: 00000000 nop - 68: 64840000 daddiu a0,a0,0 + 68: 24840000 addiu a0,a0,0 6c: 8c840000 lw a0,0\(a0\) - 70: df840000 ld a0,0\(gp\) + 70: 8f840000 lw a0,0\(gp\) 74: 00000000 nop - 78: 64840000 daddiu a0,a0,0 + 78: 24840000 addiu a0,a0,0 7c: 8c840000 lw a0,0\(a0\) - 80: df840000 ld a0,0\(gp\) + 80: 8f840000 lw a0,0\(gp\) 84: 00000000 nop - 88: 64840228 daddiu a0,a0,552 + 88: 24840228 addiu a0,a0,552 8c: 8c840000 lw a0,0\(a0\) - 90: df840000 ld a0,0\(gp\) + 90: 8f840000 lw a0,0\(gp\) 94: 00000000 nop - 98: 64840000 daddiu a0,a0,0 + 98: 24840000 addiu a0,a0,0 9c: dc840000 ld a0,0\(a0\) - a0: df840000 ld a0,0\(gp\) + a0: 8f840000 lw a0,0\(gp\) a4: 00000000 nop - a8: 64840000 daddiu a0,a0,0 + a8: 24840000 addiu a0,a0,0 ac: dc840000 ld a0,0\(a0\) - b0: df840000 ld a0,0\(gp\) + b0: 8f840000 lw a0,0\(gp\) b4: 00000000 nop - b8: 64840228 daddiu a0,a0,552 + b8: 24840228 addiu a0,a0,552 bc: dc840000 ld a0,0\(a0\) - c0: df810000 ld at,0\(gp\) + c0: 8f810000 lw at,0\(gp\) c4: 00000000 nop - c8: 64210000 daddiu at,at,0 + c8: 24210000 addiu at,at,0 cc: ac240000 sw a0,0\(at\) - d0: df810000 ld at,0\(gp\) + d0: 8f810000 lw at,0\(gp\) d4: 00000000 nop - d8: 64210000 daddiu at,at,0 + d8: 24210000 addiu at,at,0 dc: ac240000 sw a0,0\(at\) - e0: df810000 ld at,0\(gp\) + e0: 8f810000 lw at,0\(gp\) e4: 00000000 nop - e8: 64210000 daddiu at,at,0 + e8: 24210000 addiu at,at,0 ec: fc240000 sd a0,0\(at\) - f0: df810000 ld at,0\(gp\) + f0: 8f810000 lw at,0\(gp\) f4: 00000000 nop - f8: 64210000 daddiu at,at,0 + f8: 24210000 addiu at,at,0 fc: fc240000 sd a0,0\(at\) - 100: df810000 ld at,0\(gp\) + 100: 8f810000 lw at,0\(gp\) 104: 00000000 nop - 108: 64210000 daddiu at,at,0 + 108: 24210000 addiu at,at,0 10c: 80240000 lb a0,0\(at\) 110: 90210001 lbu at,1\(at\) 114: 00042200 sll a0,a0,0x8 118: 00812025 or a0,a0,at - 11c: df810000 ld at,0\(gp\) + 11c: 8f810000 lw at,0\(gp\) 120: 00000000 nop - 124: 64210000 daddiu at,at,0 + 124: 24210000 addiu at,at,0 128: a0240001 sb a0,1\(at\) 12c: 00042202 srl a0,a0,0x8 130: a0240000 sb a0,0\(at\) 134: 90210001 lbu at,1\(at\) 138: 00042200 sll a0,a0,0x8 13c: 00812025 or a0,a0,at - 140: df810000 ld at,0\(gp\) + 140: 8f810000 lw at,0\(gp\) 144: 00000000 nop - 148: 64210000 daddiu at,at,0 + 148: 24210000 addiu at,at,0 14c: 88240000 lwl a0,0\(at\) 150: 98240003 lwr a0,3\(at\) - 154: df810000 ld at,0\(gp\) + 154: 8f810000 lw at,0\(gp\) 158: 00000000 nop - 15c: 64210000 daddiu at,at,0 + 15c: 24210000 addiu at,at,0 160: a8240000 swl a0,0\(at\) 164: b8240003 swr a0,3\(at\) 168: 3404ffc0 li a0,0xffc0 16c: 000423bc dsll32 a0,a0,0xe - 170: df810000 ld at,0\(gp\) + 170: 8f810000 lw at,0\(gp\) 174: dc240000 ld a0,0\(at\) 178: 3c013ff0 lui at,0x3ff0 17c: 44810800 mtc1 at,\$f1 180: 44800000 mtc1 zero,\$f0 - 184: df810000 ld at,0\(gp\) + 184: 8f810000 lw at,0\(gp\) 188: d4200008 ldc1 \$f0,8\(at\) 18c: 64a40064 daddiu a0,a1,100 190: 2c840001 sltiu a0,a0,1 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: 64840000 daddiu a0,a0,0 - 1ac: df840000 ld a0,0\(gp\) + 1a8: 24840000 addiu a0,a0,0 + 1ac: 8f840000 lw a0,0\(gp\) 1b0: 00000000 nop - 1b4: 64840000 daddiu a0,a0,0 - 1b8: df810000 ld at,0\(gp\) + 1b4: 24840000 addiu a0,a0,0 + 1b8: 8f810000 lw at,0\(gp\) 1bc: 00000000 nop - 1c0: 64210000 daddiu at,at,0 + 1c0: 24210000 addiu at,at,0 1c4: 68240000 ldl a0,0\(at\) 1c8: 6c240007 ldr a0,7\(at\) - 1cc: df810000 ld at,0\(gp\) + 1cc: 8f810000 lw at,0\(gp\) 1d0: 00000000 nop - 1d4: 64210000 daddiu at,at,0 + 1d4: 24210000 addiu at,at,0 1d8: b0240000 sdl a0,0\(at\) 1dc: b4240007 sdr a0,7\(at\) 1e0: 3c018000 lui at,0x8000 diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/mips-gp64-fp32-pic.s src/gas/testsuite/gas/mips/mips-gp64-fp32-pic.s --- src-orig/gas/testsuite/gas/mips/mips-gp64-fp32-pic.s Tue Aug 7 17:20:30 2001 +++ src/gas/testsuite/gas/mips/mips-gp64-fp32-pic.s Tue Aug 21 19:20:35 2001 @@ -19,101 +19,101 @@ func: # 0004 addiu gp,gp,lo(_gp_disp) # 0008 addu gp,gp,t9 .set reorder - .cprestore 8 # 000c sd gp,8(sp) - .cpadd $4 # 0010 daddu a0,a0,gp + .cprestore 8 # 000c sw gp,8(sp) + .cpadd $4 # 0010 addu a0,a0,gp li $4, 0x12345678 # 0014 lui a0,0x1234 # 0018 ori a0,a0,0x5678 la $4, shared # 001c lw a0,got(.sdata)(gp) # 0020 nop - # 0024 daddiu a0,a0,lo(shared) + # 0024 addiu a0,a0,lo(shared) la $4, unshared # 0028 lw a0,got(.data)(gp) # 002c nop - # 0030 daddiu a0,a0,lo(unshared) + # 0030 addiu a0,a0,lo(unshared) la $4, end # 0034 lw a0,got(.text)(gp) # 0038 nop - # 003c daddiu a0,a0,lo(end) + # 003c addiu a0,a0,lo(end) j end # 0040 b end # 0044 nop - jal end # 0048 ld t9,got(.text)(gp) + jal end # 0048 lw t9,got(.text)(gp) # 004c nop - # 0050 daddiu t9,t9,lo(end) + # 0050 addiu t9,t9,lo(end) # 0054 jalr t9 # 0058 nop - # 005c ld gp,8(sp) - lw $4, shared # 0060 ld a0,got(.sdata)(gp) + # 005c lw gp,8(sp) + lw $4, shared # 0060 lw a0,got(.sdata)(gp) # 0064 nop - # 0068 daddiu a0,a0,lo(shared) + # 0068 addiu a0,a0,lo(shared) # 006c lw a0,(a0) - lw $4, unshared # 0070 ld a0,got(.data)(gp) + lw $4, unshared # 0070 lw a0,got(.data)(gp) # 0074 nop - # 0078 daddiu a0,a0,lo(unshared) + # 0078 addiu a0,a0,lo(unshared) # 007c lw a0,(a0) - lw $4, end # 0080 ld a0,got(.text)(gp) + lw $4, end # 0080 lw a0,got(.text)(gp) # 0084 nop - # 0088 daddiu a0,a0,lo(end) + # 0088 addiu a0,a0,lo(end) # 008c lw a0,(a0) - ld $4, shared # 0090 ld a0,got(.sdata)(gp) + ld $4, shared # 0090 lw a0,got(.sdata)(gp) # 0094 nop - # 0098 daddiu a0,a0,lo(shared) + # 0098 addiu a0,a0,lo(shared) # 009c ld a0,(a0) - ld $4, unshared # 00a0 ld a0,got(.data)(gp) + ld $4, unshared # 00a0 lw a0,got(.data)(gp) # 00a4 nop - # 00a8 daddiu a0,a0,lo(unshared) + # 00a8 addiu a0,a0,lo(unshared) # 00ac ld a0,(a0) - ld $4, end # 00b0 ld a0,got(.text)(gp) + ld $4, end # 00b0 lw a0,got(.text)(gp) # 00b4 nop - # 00b8 daddiu a0,a0,lo(end) + # 00b8 addiu a0,a0,lo(end) # 00bc ld a0,(a0) - sw $4, shared # 00c0 ld at,got(.sdata)(gp) + sw $4, shared # 00c0 lw at,got(.sdata)(gp) # 00c4 nop - # 00c8 daddiu at,at,lo(shared) + # 00c8 addiu at,at,lo(shared) # 00cc sw a0,0(at) - sw $4, unshared # 00d0 ld at,got(.data)(gp) + sw $4, unshared # 00d0 lw at,got(.data)(gp) # 00d4 nop - # 00d8 daddiu at,at,lo(unshared) + # 00d8 addiu at,at,lo(unshared) # 00dc sw a0,0(at) - sd $4, shared # 00e0 ld at,got(.sdata)(gp) + sd $4, shared # 00e0 lw at,got(.sdata)(gp) # 00e4 nop - # 00e8 daddiu at,at,lo(shared) + # 00e8 addiu at,at,lo(shared) # 00ec sd a0,(at) - sd $4, unshared # 00f0 ld at,got(.data)(gp) + sd $4, unshared # 00f0 lw at,got(.data)(gp) # 00f4 nop - # 00f8 daddiu at,at,lo(unshared) + # 00f8 addiu at,at,lo(unshared) # 00fc sd a0,(at) - ulh $4, unshared # 0100 ld at,got(.data)(gp) + ulh $4, unshared # 0100 lw at,got(.data)(gp) # 0104 nop - # 0108 daddiu at,at,lo(unshared) + # 0108 addiu at,at,lo(unshared) # 010c lb a0,0(at) # 0110 lbu at,1(at) # 0114 sll a0,a0,8 # 0118 or a0,a0,at - ush $4, unshared # 011c ld at,got(.data)(gp) + ush $4, unshared # 011c lw at,got(.data)(gp) # 0120 nop - # 0124 daddiu at,at,lo(unshared) + # 0124 addiu at,at,lo(unshared) # 0128 sb a0,0(at) # 012c srl a0,a0,8 # 0130 sb a0,1(at) # 0134 lbu at,0(at) # 0138 sll a0,a0,8 # 013c or a0,a0,at - ulw $4, unshared # 0140 ld at,got(.data)(gp) + ulw $4, unshared # 0140 lw at,got(.data)(gp) # 0144 nop - # 0148 daddiu at,at,lo(unshared) + # 0148 addiu at,at,lo(unshared) # 014c lwl a0,0(at) # 0150 lwr a0,3(at) - usw $4, unshared # 0154 ld at,got(.data)(gp) + usw $4, unshared # 0154 lw at,got(.data)(gp) # 0158 nop - # 015c daddiu at,at,lo(unshared) + # 015c addiu at,at,lo(unshared) # 0160 swl a0,0(at) # 0164 swr a0,3(at) li.d $4, 1.0 # 0168 li a0,0xffc0 # 016c dsll32 a0,a0,14 - li.d $4, 1.9 # 0170 ld at,got(.rodata)(gp) + li.d $4, 1.9 # 0170 lw at,got(.rodata)(gp) # 0174 ld a0,lo(F1.9)(at) li.d $f0, 1.0 # 0178 lui at,0x3ff0 # 017c mtc1 at,$f1 # 0180 mtc1 zero,$f0 - li.d $f0, 1.9 # 0184 ld at,got(.rodata)(gp) + li.d $f0, 1.9 # 0184 lw at,got(.rodata)(gp) # 0188 ldc1 $f0,lo(L1.9)(at) seq $4, $5, -100 # 018c daddiu a0,a1,100 # 0190 sltiu a0,a0,1 @@ -121,20 +121,20 @@ 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 daddiu a0,a0,lo(shared) - dla $4, unshared # 01ac ld a0,got(.data)(gp) + # 01a8 addiu a0,a0,lo(shared) + dla $4, unshared # 01ac lw a0,got(.data)(gp) # 01b0 nop - # 01b4 daddiu a0,a0,lo(unshared) - uld $4, unshared # 01b8 ld at,got(.data)(gp) + # 01b4 addiu a0,a0,lo(unshared) + uld $4, unshared # 01b8 lw at,got(.data)(gp) # 01bc nop - # 01c0 daddiu at,at,lo(unshared) + # 01c0 addiu at,at,lo(unshared) # 01c4 ldl a0,0(at) # 01c8 ldr a0,7(at) - usd $4, unshared # 01cc ld at,got(.data)(gp) + usd $4, unshared # 01cc lw at,got(.data)(gp) # 01d0 nop - # 01d4 daddiu at,at,lo(unshared) + # 01d4 addiu at,at,lo(unshared) # 01d8 sdl a0,0(at) # 01dc sdr a0,7(at) diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/mips-gp64-fp32.d src/gas/testsuite/gas/mips/mips-gp64-fp32.d --- src-orig/gas/testsuite/gas/mips/mips-gp64-fp32.d Tue Aug 7 17:20:30 2001 +++ src/gas/testsuite/gas/mips/mips-gp64-fp32.d Tue Aug 21 19:20:35 2001 @@ -9,11 +9,11 @@ Disassembly of section .text: 0+000 <[^>]*>: 0: 3c041234 lui a0,0x1234 4: 34845678 ori a0,a0,0x5678 - 8: 6784c000 daddiu a0,gp,-16384 + 8: 2784c000 addiu a0,gp,-16384 c: 3c040000 lui a0,0x0 - 10: 64840000 daddiu a0,a0,0 + 10: 24840000 addiu a0,a0,0 14: 3c040000 lui a0,0x0 - 18: 64840154 daddiu a0,a0,340 + 18: 24840154 addiu a0,a0,340 1c: 08000055 j 154 <[^>]*> 20: 0c000055 jal 154 <[^>]*> 24: 8f84c000 lw a0,-16384\(gp\) @@ -33,13 +33,13 @@ Disassembly of section .text: 5c: 3c010000 lui at,0x0 60: fc240000 sd a0,0\(at\) 64: 3c010000 lui at,0x0 - 68: 64210000 daddiu at,at,0 + 68: 24210000 addiu at,at,0 6c: 80240000 lb a0,0\(at\) 70: 90210001 lbu at,1\(at\) 74: 00042200 sll a0,a0,0x8 78: 00812025 or a0,a0,at 7c: 3c010000 lui at,0x0 - 80: 64210000 daddiu at,at,0 + 80: 24210000 addiu at,at,0 84: a0240001 sb a0,1\(at\) 88: 00042202 srl a0,a0,0x8 8c: a0240000 sb a0,0\(at\) @@ -47,11 +47,11 @@ Disassembly of section .text: 94: 00042200 sll a0,a0,0x8 98: 00812025 or a0,a0,at 9c: 3c010000 lui at,0x0 - a0: 64210000 daddiu at,at,0 + a0: 24210000 addiu at,at,0 a4: 88240000 lwl a0,0\(at\) a8: 98240003 lwr a0,3\(at\) ac: 3c010000 lui at,0x0 - b0: 64210000 daddiu at,at,0 + b0: 24210000 addiu at,at,0 b4: a8240000 swl a0,0\(at\) b8: b8240003 swr a0,3\(at\) bc: 3404ffc0 li a0,0xffc0 @@ -67,15 +67,15 @@ Disassembly of section .text: e4: 64a40064 daddiu a0,a1,100 e8: 0004202b sltu a0,zero,a0 ec: 00a0202d move a0,a1 - f0: 6784c000 daddiu a0,gp,-16384 + f0: 2784c000 addiu a0,gp,-16384 f4: 3c040000 lui a0,0x0 - f8: 64840000 daddiu a0,a0,0 + f8: 24840000 addiu a0,a0,0 fc: 3c010000 lui at,0x0 - 100: 64210000 daddiu at,at,0 + 100: 24210000 addiu at,at,0 104: 68240000 ldl a0,0\(at\) 108: 6c240007 ldr a0,7\(at\) 10c: 3c010000 lui at,0x0 - 110: 64210000 daddiu at,at,0 + 110: 24210000 addiu at,at,0 114: b0240000 sdl a0,0\(at\) 118: b4240007 sdr a0,7\(at\) 11c: 3c018000 lui at,0x8000 diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/mips-gp64-fp32.s src/gas/testsuite/gas/mips/mips-gp64-fp32.s --- src-orig/gas/testsuite/gas/mips/mips-gp64-fp32.s Tue Aug 7 17:20:30 2001 +++ src/gas/testsuite/gas/mips/mips-gp64-fp32.s Tue Aug 21 19:20:35 2001 @@ -16,11 +16,11 @@ func: .set mips4 li $4, 0x12345678 # 0000 lui a0,0x1234 # 0004 ori a0,a0,0x5678 - la $4, shared # 0008 daddiu a0,gp,shared + la $4, shared # 0008 addiu a0,gp,shared la $4, unshared # 000c lui a0,hi(unshared) - # 0010 daddiu a0,a0,lo(unshared) + # 0010 addiu a0,a0,lo(unshared) la $4, end # 0014 lui a0,hi(end) - # 0018 daddiu a0,a0,lo(end) + # 0018 addiu a0,a0,lo(end) j end # 001c j end jal end # 0020 jal end lw $4, shared # 0024 lw a0,shared(gp) @@ -40,13 +40,13 @@ func: sd $4, unshared # 005c lui at,hi(unshared) # 0060 sd a0,lo(unshared)(at) ulh $4, unshared # 0064 lui at,hi(unshared) - # 0068 daddiu at,at,lo(unshared) + # 0068 addiu at,at,lo(unshared) # 006c lb a0,0(at) # 0070 lbu at,1(at) # 0074 sll a0,a0,8 # 0078 or a0,a0,at ush $4, unshared # 007c lui at,hi(unshared) - # 0080 daddiu at,at,lo(unshared) + # 0080 addiu at,at,lo(unshared) # 0084 sb a0,1(at) # 0088 srl a0,a0,8 # 008c sb a0,0(at) @@ -54,11 +54,11 @@ func: # 0094 sll a0,a0,8 # 0098 or a0,a0,at ulw $4, unshared # 009c lui at,hi(unshared) - # 00a0 daddiu at,at,lo(unshared) + # 00a0 addiu at,at,lo(unshared) # 00a4 lwl a0,0(at) # 00a8 lwr a0,3(at) usw $4, unshared # 00ac lui at,hi(unshared) - # 00b0 daddiu at,at,lo(unshared) + # 00b0 addiu at,at,lo(unshared) # 00b4 swl a0,0(at) # 00b8 swr a0,3(at) li.d $4, 1.0 # 00bc li a0,0xffc0 @@ -75,15 +75,15 @@ func: # 00e8 sltu a0,zero,a0 move $4, $5 # 00ec move a0,a1 - dla $4, shared # 00f0 daddiu a0,gp,shared + dla $4, shared # 00f0 addiu a0,gp,shared dla $4, unshared # 00f4 lui a0,hi(unshared) - # 00f8 daddiu a0,a0,lo(unshared) + # 00f8 addiu a0,a0,lo(unshared) uld $4, unshared # 00fc lui at,hi(unshared) - # 0100 daddiu at,at,lo(unshared) + # 0100 addiu at,at,lo(unshared) # 0104 ldl a0,0(at) # 0108 ldr a0,7(at) usd $4, unshared # 010c lui at,hi(unshared) - # 0110 daddiu at,at,lo(unshared) + # 0110 addiu at,at,lo(unshared) # 0114 sdl a0,0(at) # 0118 sdr a0,7(at) diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/mips-gp64-fp64-pic.d src/gas/testsuite/gas/mips/mips-gp64-fp64-pic.d --- src-orig/gas/testsuite/gas/mips/mips-gp64-fp64-pic.d Tue Aug 7 17:20:30 2001 +++ src/gas/testsuite/gas/mips/mips-gp64-fp64-pic.d Tue Aug 21 19:20:35 2001 @@ -10,121 +10,121 @@ Disassembly of section .text: 0: 3c1c0000 lui gp,0x0 4: 279c0000 addiu gp,gp,0 8: 0399e021 addu gp,gp,t9 - c: ffbc0008 sd gp,8\(sp\) - 10: 009c202d daddu a0,a0,gp + c: afbc0008 sw gp,8\(sp\) + 10: 009c2021 addu a0,a0,gp 14: 3c041234 lui a0,0x1234 18: 34845678 ori a0,a0,0x5678 1c: 8f840000 lw a0,0\(gp\) 20: 00000000 nop - 24: 64840000 daddiu a0,a0,0 + 24: 24840000 addiu a0,a0,0 28: 8f840000 lw a0,0\(gp\) 2c: 00000000 nop - 30: 64840000 daddiu a0,a0,0 + 30: 24840000 addiu a0,a0,0 34: 8f840000 lw a0,0\(gp\) 38: 00000000 nop - 3c: 6484022c daddiu a0,a0,556 + 3c: 2484022c addiu a0,a0,556 40: 1000007a b 22c <[^>]*> 44: 00000000 nop - 48: df990000 ld t9,0\(gp\) + 48: 8f990000 lw t9,0\(gp\) 4c: 00000000 nop - 50: 6739022c daddiu t9,t9,556 + 50: 2739022c addiu t9,t9,556 54: 0320f809 jalr t9 58: 00000000 nop - 5c: dfbc0008 ld gp,8\(sp\) - 60: df840000 ld a0,0\(gp\) + 5c: 8fbc0008 lw gp,8\(sp\) + 60: 8f840000 lw a0,0\(gp\) 64: 00000000 nop - 68: 64840000 daddiu a0,a0,0 + 68: 24840000 addiu a0,a0,0 6c: 8c840000 lw a0,0\(a0\) - 70: df840000 ld a0,0\(gp\) + 70: 8f840000 lw a0,0\(gp\) 74: 00000000 nop - 78: 64840000 daddiu a0,a0,0 + 78: 24840000 addiu a0,a0,0 7c: 8c840000 lw a0,0\(a0\) - 80: df840000 ld a0,0\(gp\) + 80: 8f840000 lw a0,0\(gp\) 84: 00000000 nop - 88: 6484022c daddiu a0,a0,556 + 88: 2484022c addiu a0,a0,556 8c: 8c840000 lw a0,0\(a0\) - 90: df840000 ld a0,0\(gp\) + 90: 8f840000 lw a0,0\(gp\) 94: 00000000 nop - 98: 64840000 daddiu a0,a0,0 + 98: 24840000 addiu a0,a0,0 9c: dc840000 ld a0,0\(a0\) - a0: df840000 ld a0,0\(gp\) + a0: 8f840000 lw a0,0\(gp\) a4: 00000000 nop - a8: 64840000 daddiu a0,a0,0 + a8: 24840000 addiu a0,a0,0 ac: dc840000 ld a0,0\(a0\) - b0: df840000 ld a0,0\(gp\) + b0: 8f840000 lw a0,0\(gp\) b4: 00000000 nop - b8: 6484022c daddiu a0,a0,556 + b8: 2484022c addiu a0,a0,556 bc: dc840000 ld a0,0\(a0\) - c0: df810000 ld at,0\(gp\) + c0: 8f810000 lw at,0\(gp\) c4: 00000000 nop - c8: 64210000 daddiu at,at,0 + c8: 24210000 addiu at,at,0 cc: ac240000 sw a0,0\(at\) - d0: df810000 ld at,0\(gp\) + d0: 8f810000 lw at,0\(gp\) d4: 00000000 nop - d8: 64210000 daddiu at,at,0 + d8: 24210000 addiu at,at,0 dc: ac240000 sw a0,0\(at\) - e0: df810000 ld at,0\(gp\) + e0: 8f810000 lw at,0\(gp\) e4: 00000000 nop - e8: 64210000 daddiu at,at,0 + e8: 24210000 addiu at,at,0 ec: fc240000 sd a0,0\(at\) - f0: df810000 ld at,0\(gp\) + f0: 8f810000 lw at,0\(gp\) f4: 00000000 nop - f8: 64210000 daddiu at,at,0 + f8: 24210000 addiu at,at,0 fc: fc240000 sd a0,0\(at\) - 100: df810000 ld at,0\(gp\) + 100: 8f810000 lw at,0\(gp\) 104: 00000000 nop - 108: 64210000 daddiu at,at,0 + 108: 24210000 addiu at,at,0 10c: 80240000 lb a0,0\(at\) 110: 90210001 lbu at,1\(at\) 114: 00042200 sll a0,a0,0x8 118: 00812025 or a0,a0,at - 11c: df810000 ld at,0\(gp\) + 11c: 8f810000 lw at,0\(gp\) 120: 00000000 nop - 124: 64210000 daddiu at,at,0 + 124: 24210000 addiu at,at,0 128: a0240001 sb a0,1\(at\) 12c: 00042202 srl a0,a0,0x8 130: a0240000 sb a0,0\(at\) 134: 90210001 lbu at,1\(at\) 138: 00042200 sll a0,a0,0x8 13c: 00812025 or a0,a0,at - 140: df810000 ld at,0\(gp\) + 140: 8f810000 lw at,0\(gp\) 144: 00000000 nop - 148: 64210000 daddiu at,at,0 + 148: 24210000 addiu at,at,0 14c: 88240000 lwl a0,0\(at\) 150: 98240003 lwr a0,3\(at\) - 154: df810000 ld at,0\(gp\) + 154: 8f810000 lw at,0\(gp\) 158: 00000000 nop - 15c: 64210000 daddiu at,at,0 + 15c: 24210000 addiu at,at,0 160: a8240000 swl a0,0\(at\) 164: b8240003 swr a0,3\(at\) 168: 3404ffc0 li a0,0xffc0 16c: 000423bc dsll32 a0,a0,0xe - 170: df810000 ld at,0\(gp\) + 170: 8f810000 lw at,0\(gp\) 174: dc240000 ld a0,0\(at\) 178: 3401ffc0 li at,0xffc0 17c: 00010bbc dsll32 at,at,0xe 180: 44a10000 dmtc1 at,\$f0 - 184: df810000 ld at,0\(gp\) + 184: 8f810000 lw at,0\(gp\) 188: d4200008 ldc1 \$f0,8\(at\) 18c: 64a40064 daddiu a0,a1,100 190: 2c840001 sltiu a0,a0,1 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: 64840000 daddiu a0,a0,0 - 1ac: df840000 ld a0,0\(gp\) + 1a8: 24840000 addiu a0,a0,0 + 1ac: 8f840000 lw a0,0\(gp\) 1b0: 00000000 nop - 1b4: 64840000 daddiu a0,a0,0 - 1b8: df810000 ld at,0\(gp\) + 1b4: 24840000 addiu a0,a0,0 + 1b8: 8f810000 lw at,0\(gp\) 1bc: 00000000 nop - 1c0: 64210000 daddiu at,at,0 + 1c0: 24210000 addiu at,at,0 1c4: 68240000 ldl a0,0\(at\) 1c8: 6c240007 ldr a0,7\(at\) - 1cc: df810000 ld at,0\(gp\) + 1cc: 8f810000 lw at,0\(gp\) 1d0: 00000000 nop - 1d4: 64210000 daddiu at,at,0 + 1d4: 24210000 addiu at,at,0 1d8: b0240000 sdl a0,0\(at\) 1dc: b4240007 sdr a0,7\(at\) 1e0: 3c018000 lui at,0x8000 diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/mips-gp64-fp64-pic.s src/gas/testsuite/gas/mips/mips-gp64-fp64-pic.s --- src-orig/gas/testsuite/gas/mips/mips-gp64-fp64-pic.s Tue Aug 7 17:20:30 2001 +++ src/gas/testsuite/gas/mips/mips-gp64-fp64-pic.s Tue Aug 21 19:20:35 2001 @@ -19,101 +19,101 @@ func: # 0004 addiu gp,gp,lo(_gp_disp) # 0008 addu gp,gp,t9 .set reorder - .cprestore 8 # 000c sd gp,8(sp) - .cpadd $4 # 0010 daddu a0,a0,gp + .cprestore 8 # 000c sw gp,8(sp) + .cpadd $4 # 0010 addu a0,a0,gp li $4, 0x12345678 # 0014 lui a0,0x1234 # 0018 ori a0,a0,0x5678 la $4, shared # 001c lw a0,got(.sdata)(gp) # 0020 nop - # 0024 daddiu a0,a0,lo(shared) + # 0024 addiu a0,a0,lo(shared) la $4, unshared # 0028 lw a0,got(.data)(gp) # 002c nop - # 0030 daddiu a0,a0,lo(unshared) + # 0030 addiu a0,a0,lo(unshared) la $4, end # 0034 lw a0,got(.text)(gp) # 0038 nop - # 003c daddiu a0,a0,lo(end) + # 003c addiu a0,a0,lo(end) j end # 0040 b end # 0044 nop - jal end # 0048 ld t9,got(.text)(gp) + jal end # 0048 lw t9,got(.text)(gp) # 004c nop - # 0050 daddiu t9,t9,lo(end) + # 0050 addiu t9,t9,lo(end) # 0054 jalr t9 # 0058 nop - # 005c ld gp,8(sp) - lw $4, shared # 0060 ld a0,got(.sdata)(gp) + # 005c lw gp,8(sp) + lw $4, shared # 0060 lw a0,got(.sdata)(gp) # 0064 nop - # 0068 daddiu a0,a0,lo(shared) + # 0068 addiu a0,a0,lo(shared) # 006c lw a0,(a0) - lw $4, unshared # 0070 ld a0,got(.data)(gp) + lw $4, unshared # 0070 lw a0,got(.data)(gp) # 0074 nop - # 0078 daddiu a0,a0,lo(unshared) + # 0078 addiu a0,a0,lo(unshared) # 007c lw a0,(a0) - lw $4, end # 0080 ld a0,got(.text)(gp) + lw $4, end # 0080 lw a0,got(.text)(gp) # 0084 nop - # 0088 daddiu a0,a0,lo(end) + # 0088 addiu a0,a0,lo(end) # 008c lw a0,(a0) - ld $4, shared # 0090 ld a0,got(.sdata)(gp) + ld $4, shared # 0090 lw a0,got(.sdata)(gp) # 0094 nop - # 0098 daddiu a0,a0,lo(shared) + # 0098 addiu a0,a0,lo(shared) # 009c ld a0,(a0) - ld $4, unshared # 00a0 ld a0,got(.data)(gp) + ld $4, unshared # 00a0 lw a0,got(.data)(gp) # 00a4 nop - # 00a8 daddiu a0,a0,lo(unshared) + # 00a8 addiu a0,a0,lo(unshared) # 00ac ld a0,(a0) - ld $4, end # 00b0 ld a0,got(.text)(gp) + ld $4, end # 00b0 lw a0,got(.text)(gp) # 00b4 nop - # 00b8 daddiu a0,a0,lo(end) + # 00b8 addiu a0,a0,lo(end) # 00bc ld a0,(a0) - sw $4, shared # 00c0 ld at,got(.sdata)(gp) + sw $4, shared # 00c0 lw at,got(.sdata)(gp) # 00c4 nop - # 00c8 daddiu at,at,lo(shared) + # 00c8 addiu at,at,lo(shared) # 00cc sw a0,0(at) - sw $4, unshared # 00d0 ld at,got(.data)(gp) + sw $4, unshared # 00d0 lw at,got(.data)(gp) # 00d4 nop - # 00d8 daddiu at,at,lo(unshared) + # 00d8 addiu at,at,lo(unshared) # 00dc sw a0,0(at) - sd $4, shared # 00e0 ld at,got(.sdata)(gp) + sd $4, shared # 00e0 lw at,got(.sdata)(gp) # 00e4 nop - # 00e8 daddiu at,at,lo(shared) + # 00e8 addiu at,at,lo(shared) # 00ec sd a0,(at) - sd $4, unshared # 00f0 ld at,got(.data)(gp) + sd $4, unshared # 00f0 lw at,got(.data)(gp) # 00f4 nop - # 00f8 daddiu at,at,lo(unshared) + # 00f8 addiu at,at,lo(unshared) # 00fc sd a0,(at) - ulh $4, unshared # 0100 ld at,got(.data)(gp) + ulh $4, unshared # 0100 lw at,got(.data)(gp) # 0104 nop - # 0108 daddiu at,at,lo(unshared) + # 0108 addiu at,at,lo(unshared) # 010c lb a0,0(at) # 0110 lbu at,1(at) # 0114 sll a0,a0,8 # 0118 or a0,a0,at - ush $4, unshared # 011c ld at,got(.data)(gp) + ush $4, unshared # 011c lw at,got(.data)(gp) # 0120 nop - # 0124 daddiu at,at,lo(unshared) + # 0124 addiu at,at,lo(unshared) # 0128 sb a0,0(at) # 012c srl a0,a0,8 # 0130 sb a0,1(at) # 0134 lbu at,0(at) # 0138 sll a0,a0,8 # 013c or a0,a0,at - ulw $4, unshared # 0140 ld at,got(.data)(gp) + ulw $4, unshared # 0140 lw at,got(.data)(gp) # 0144 nop - # 0148 daddiu at,at,lo(unshared) + # 0148 addiu at,at,lo(unshared) # 014c lwl a0,0(at) # 0150 lwr a0,3(at) - usw $4, unshared # 0154 ld at,got(.data)(gp) + usw $4, unshared # 0154 lw at,got(.data)(gp) # 0158 nop - # 015c daddiu at,at,lo(unshared) + # 015c addiu at,at,lo(unshared) # 0160 swl a0,0(at) # 0164 swr a0,3(at) li.d $4, 1.0 # 0168 li a0,0xffc0 # 016c dsll32 a0,a0,14 - li.d $4, 1.9 # 0170 ld at,got(.rodata)(gp) + li.d $4, 1.9 # 0170 lw at,got(.rodata)(gp) # 0174 ld a0,lo(F1.9)(at) li.d $f0, 1.0 # 0178 li at,0xffc0 # 017c dsll32 at,at,14 # 0180 dmtc1 at,$f0 - li.d $f0, 1.9 # 0184 ld at,got(.rodata)(gp) + li.d $f0, 1.9 # 0184 lw at,got(.rodata)(gp) # 0188 ldc1 $f0,lo(L1.9)(at) seq $4, $5, -100 # 018c daddiu a0,a1,100 # 0190 sltiu a0,a0,1 @@ -121,20 +121,20 @@ 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 daddiu a0,a0,lo(shared) - dla $4, unshared # 01ac ld a0,got(.data)(gp) + # 01a8 addiu a0,a0,lo(shared) + dla $4, unshared # 01ac lw a0,got(.data)(gp) # 01b0 nop - # 01b4 daddiu a0,a0,lo(unshared) - uld $4, unshared # 01b8 ld at,got(.data)(gp) + # 01b4 addiu a0,a0,lo(unshared) + uld $4, unshared # 01b8 lw at,got(.data)(gp) # 01bc nop - # 01c0 daddiu at,at,lo(unshared) + # 01c0 addiu at,at,lo(unshared) # 01c4 ldl a0,0(at) # 01c8 ldr a0,7(at) - usd $4, unshared # 01cc ld at,got(.data)(gp) + usd $4, unshared # 01cc lw at,got(.data)(gp) # 01d0 nop - # 01d4 daddiu at,at,lo(unshared) + # 01d4 addiu at,at,lo(unshared) # 01d8 sdl a0,0(at) # 01dc sdr a0,7(at) diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/mips-gp64-fp64.d src/gas/testsuite/gas/mips/mips-gp64-fp64.d --- src-orig/gas/testsuite/gas/mips/mips-gp64-fp64.d Tue Aug 7 17:20:30 2001 +++ src/gas/testsuite/gas/mips/mips-gp64-fp64.d Tue Aug 21 19:20:35 2001 @@ -9,11 +9,11 @@ Disassembly of section .text: 0+000 <[^>]*>: 0: 3c041234 lui a0,0x1234 4: 34845678 ori a0,a0,0x5678 - 8: 6784c000 daddiu a0,gp,-16384 + 8: 2784c000 addiu a0,gp,-16384 c: 3c040000 lui a0,0x0 - 10: 64840000 daddiu a0,a0,0 + 10: 24840000 addiu a0,a0,0 14: 3c040000 lui a0,0x0 - 18: 64840158 daddiu a0,a0,344 + 18: 24840158 addiu a0,a0,344 1c: 08000056 j 158 <[^>]*> 20: 0c000056 jal 158 <[^>]*> 24: 8f84c000 lw a0,-16384\(gp\) @@ -33,13 +33,13 @@ Disassembly of section .text: 5c: 3c010000 lui at,0x0 60: fc240000 sd a0,0\(at\) 64: 3c010000 lui at,0x0 - 68: 64210000 daddiu at,at,0 + 68: 24210000 addiu at,at,0 6c: 80240000 lb a0,0\(at\) 70: 90210001 lbu at,1\(at\) 74: 00042200 sll a0,a0,0x8 78: 00812025 or a0,a0,at 7c: 3c010000 lui at,0x0 - 80: 64210000 daddiu at,at,0 + 80: 24210000 addiu at,at,0 84: a0240001 sb a0,1\(at\) 88: 00042202 srl a0,a0,0x8 8c: a0240000 sb a0,0\(at\) @@ -47,11 +47,11 @@ Disassembly of section .text: 94: 00042200 sll a0,a0,0x8 98: 00812025 or a0,a0,at 9c: 3c010000 lui at,0x0 - a0: 64210000 daddiu at,at,0 + a0: 24210000 addiu at,at,0 a4: 88240000 lwl a0,0\(at\) a8: 98240003 lwr a0,3\(at\) ac: 3c010000 lui at,0x0 - b0: 64210000 daddiu at,at,0 + b0: 24210000 addiu at,at,0 b4: a8240000 swl a0,0\(at\) b8: b8240003 swr a0,3\(at\) bc: 3404ffc0 li a0,0xffc0 @@ -67,15 +67,15 @@ Disassembly of section .text: e4: 64a40064 daddiu a0,a1,100 e8: 0004202b sltu a0,zero,a0 ec: 00a0202d move a0,a1 - f0: 6784c000 daddiu a0,gp,-16384 + f0: 2784c000 addiu a0,gp,-16384 f4: 3c040000 lui a0,0x0 - f8: 64840000 daddiu a0,a0,0 + f8: 24840000 addiu a0,a0,0 fc: 3c010000 lui at,0x0 - 100: 64210000 daddiu at,at,0 + 100: 24210000 addiu at,at,0 104: 68240000 ldl a0,0\(at\) 108: 6c240007 ldr a0,7\(at\) 10c: 3c010000 lui at,0x0 - 110: 64210000 daddiu at,at,0 + 110: 24210000 addiu at,at,0 114: b0240000 sdl a0,0\(at\) 118: b4240007 sdr a0,7\(at\) 11c: 3c018000 lui at,0x8000 diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/mips-gp64-fp64.s src/gas/testsuite/gas/mips/mips-gp64-fp64.s --- src-orig/gas/testsuite/gas/mips/mips-gp64-fp64.s Tue Aug 7 17:20:30 2001 +++ src/gas/testsuite/gas/mips/mips-gp64-fp64.s Tue Aug 21 19:20:35 2001 @@ -16,11 +16,11 @@ func: .set mips4 li $4, 0x12345678 # 0000 lui a0,0x1234 # 0004 ori a0,a0,0x5678 - la $4, shared # 0008 daddiu a0,gp,shared + la $4, shared # 0008 addiu a0,gp,shared la $4, unshared # 000c lui a0,hi(unshared) - # 0010 daddiu a0,a0,lo(unshared) + # 0010 addiu a0,a0,lo(unshared) la $4, end # 0014 lui a0,hi(end) - # 0018 daddiu a0,a0,lo(end) + # 0018 addiu a0,a0,lo(end) j end # 001c j end jal end # 0020 jal end lw $4, shared # 0024 lw a0,shared(gp) @@ -40,13 +40,13 @@ func: sd $4, unshared # 005c lui at,hi(unshared) # 0060 sd a0,lo(unshared)(at) ulh $4, unshared # 0064 lui at,hi(unshared) - # 0068 daddiu at,at,lo(unshared) + # 0068 addiu at,at,lo(unshared) # 006c lb a0,0(at) # 0070 lbu at,1(at) # 0074 sll a0,a0,8 # 0078 or a0,a0,at ush $4, unshared # 007c lui at,hi(unshared) - # 0080 daddiu at,at,lo(unshared) + # 0080 addiu at,at,lo(unshared) # 0084 sb a0,1(at) # 0088 srl a0,a0,8 # 008c sb a0,0(at) @@ -54,11 +54,11 @@ func: # 0094 sll a0,a0,8 # 0098 or a0,a0,at ulw $4, unshared # 009c lui at,hi(unshared) - # 00a0 daddiu at,at,lo(unshared) + # 00a0 addiu at,at,lo(unshared) # 00a4 lwl a0,0(at) # 00a8 lwr a0,3(at) usw $4, unshared # 00ac lui at,hi(unshared) - # 00b0 daddiu at,at,lo(unshared) + # 00b0 addiu at,at,lo(unshared) # 00b4 swl a0,0(at) # 00b8 swr a0,3(at) li.d $4, 1.0 # 00bc li a0,0xffc0 @@ -75,15 +75,15 @@ func: # 00e8 sltu a0,zero,a0 move $4, $5 # 00ec move a0,a1 - dla $4, shared # 00f0 daddiu a0,gp,shared + dla $4, shared # 00f0 addiu a0,gp,shared dla $4, unshared # 00f4 lui a0,hi(unshared) - # 00f8 daddiu a0,a0,lo(unshared) + # 00f8 addiu a0,a0,lo(unshared) uld $4, unshared # 00fc lui at,hi(unshared) - # 0100 daddiu at,at,lo(unshared) + # 0100 addiu at,at,lo(unshared) # 0104 ldl a0,0(at) # 0108 ldr a0,7(at) usd $4, unshared # 010c lui at,hi(unshared) - # 0110 daddiu at,at,lo(unshared) + # 0110 addiu at,at,lo(unshared) # 0114 sdl a0,0(at) # 0118 sdr a0,7(at) diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/elf-rel4.d src/gas/testsuite/gas/mips/elf-rel4.d --- src-orig/gas/testsuite/gas/mips/elf-rel4.d Fri Aug 3 20:37:42 2001 +++ src/gas/testsuite/gas/mips/elf-rel4.d Tue Aug 21 19:20:35 2001 @@ -4,11 +4,11 @@ .*: +file format.* Disassembly of section .text: -0+000 <[^>]*> daddiu a0,gp,0 +0+000 <[^>]*> addiu a0,gp,0 0: R_MIPS_GPREL16 a -0+004 <[^>]*> daddiu a0,gp,4 +0+004 <[^>]*> addiu a0,gp,4 4: R_MIPS_GPREL16 a -0+008 <[^>]*> daddiu a0,gp,8 +0+008 <[^>]*> addiu a0,gp,8 8: R_MIPS_GPREL16 a -0+00c <[^>]*> daddiu a0,gp,12 +0+00c <[^>]*> addiu a0,gp,12 c: R_MIPS_GPREL16 a --- src-orig/gas/testsuite/gas/mips/elempic.d Sat Aug 25 01:28:15 2001 +++ src/gas/testsuite/gas/mips/elempic.d Sat Aug 25 02:56:57 2001 @@ -120,7 +120,7 @@ 0070 00010000 00000000 04000000 00000000 .* 0080 4c000000 00000000 54010000 00000000 .* 0090 d0ffffff ffffffff 32000010 33000010 .* - 00a0 0000033c d8006364 0000033c e8006364 .* + 00a0 0000033c d80063[26]4 0000033c e80063[26]4 .* 00b0 cc000000 34000000 cc000000 00000000 .* 00c0 34000000 00000000 00000000 32000010 .* 00d0 33000010 34000324 3c000324 cc000000 .* diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/uld.d src/gas/testsuite/gas/mips/uld.d --- src-orig/gas/testsuite/gas/mips/uld.d Mon Jul 2 14:34:18 2001 +++ src/gas/testsuite/gas/mips/uld.d Tue Aug 21 19:20:35 2001 @@ -29,241 +29,241 @@ Disassembly of section .text: 0+004c <[^>]*> ldr a0,[-0-9]+\(a1\) 0+0050 <[^>]*> lui at,[-0-9x]+ [ ]*50: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+0054 <[^>]*> daddiu at,at,[-0-9]+ +0+0054 <[^>]*> addiu at,at,[-0-9]+ [ ]*54: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+0058 <[^>]*> ldl a0,[07]\(at\) 0+005c <[^>]*> ldr a0,[07]\(at\) 0+0060 <[^>]*> lui at,0x0 [ ]*60: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+0064 <[^>]*> daddiu at,at,[-0-9]+ +0+0064 <[^>]*> addiu at,at,[-0-9]+ [ ]*64: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+0068 <[^>]*> ldl a0,[07]\(at\) 0+006c <[^>]*> ldr a0,[07]\(at\) -0+0070 <[^>]*> daddiu at,gp,0 +0+0070 <[^>]*> addiu at,gp,0 [ ]*70: [A-Z0-9_]*GPREL[A-Z0-9_]* small_external_data_label 0+0074 <[^>]*> ldl a0,[07]\(at\) 0+0078 <[^>]*> ldr a0,[07]\(at\) 0+007c <[^>]*> lui at,0x0 [ ]*7c: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+0080 <[^>]*> daddiu at,at,[-0-9]+ +0+0080 <[^>]*> addiu at,at,[-0-9]+ [ ]*80: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+0084 <[^>]*> ldl a0,[07]\(at\) 0+0088 <[^>]*> ldr a0,[07]\(at\) -0+008c <[^>]*> daddiu at,gp,0 +0+008c <[^>]*> addiu at,gp,0 [ ]*8c: [A-Z0-9_]*GPREL[A-Z0-9_]* small_external_common 0+0090 <[^>]*> ldl a0,[07]\(at\) 0+0094 <[^>]*> ldr a0,[07]\(at\) 0+0098 <[^>]*> lui at,[-0-9x]+ [ ]*98: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+009c <[^>]*> daddiu at,at,[-0-9]+ +0+009c <[^>]*> addiu at,at,[-0-9]+ [ ]*9c: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+00a0 <[^>]*> ldl a0,[07]\(at\) 0+00a4 <[^>]*> ldr a0,[07]\(at\) -0+00a8 <[^>]*> daddiu at,gp,[-0-9]+ +0+00a8 <[^>]*> addiu at,gp,[-0-9]+ [ ]*a8: [A-Z0-9_]*GPREL[A-Z0-9_]* .sbss.* 0+00ac <[^>]*> ldl a0,[07]\(at\) 0+00b0 <[^>]*> ldr a0,[07]\(at\) 0+00b4 <[^>]*> lui at,0x0 [ ]*b4: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+00b8 <[^>]*> daddiu at,at,[-0-9]+ +0+00b8 <[^>]*> addiu at,at,[-0-9]+ [ ]*b8: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+00bc <[^>]*> ldl a0,[07]\(at\) 0+00c0 <[^>]*> ldr a0,[07]\(at\) 0+00c4 <[^>]*> lui at,0x0 [ ]*c4: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+00c8 <[^>]*> daddiu at,at,[-0-9]+ +0+00c8 <[^>]*> addiu at,at,[-0-9]+ [ ]*c8: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+00cc <[^>]*> ldl a0,[07]\(at\) 0+00d0 <[^>]*> ldr a0,[07]\(at\) -0+00d4 <[^>]*> daddiu at,gp,1 +0+00d4 <[^>]*> addiu at,gp,1 [ ]*d4: [A-Z0-9_]*GPREL[A-Z0-9_]* small_external_data_label 0+00d8 <[^>]*> ldl a0,[07]\(at\) 0+00dc <[^>]*> ldr a0,[07]\(at\) 0+00e0 <[^>]*> lui at,0x0 [ ]*e0: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+00e4 <[^>]*> daddiu at,at,[-0-9]+ +0+00e4 <[^>]*> addiu at,at,[-0-9]+ [ ]*e4: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+00e8 <[^>]*> ldl a0,[07]\(at\) 0+00ec <[^>]*> ldr a0,[07]\(at\) -0+00f0 <[^>]*> daddiu at,gp,1 +0+00f0 <[^>]*> addiu at,gp,1 [ ]*f0: [A-Z0-9_]*GPREL[A-Z0-9_]* small_external_common 0+00f4 <[^>]*> ldl a0,[07]\(at\) 0+00f8 <[^>]*> ldr a0,[07]\(at\) 0+00fc <[^>]*> lui at,0x0 [ ]*fc: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+0100 <[^>]*> daddiu at,at,[-0-9]+ +0+0100 <[^>]*> addiu at,at,[-0-9]+ [ ]*100: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+0104 <[^>]*> ldl a0,[07]\(at\) 0+0108 <[^>]*> ldr a0,[07]\(at\) -0+010c <[^>]*> daddiu at,gp,[-0-9]+ +0+010c <[^>]*> addiu at,gp,[-0-9]+ [ ]*10c: [A-Z0-9_]*GPREL[A-Z0-9_]* .sbss.* 0+0110 <[^>]*> ldl a0,[07]\(at\) 0+0114 <[^>]*> ldr a0,[07]\(at\) 0+0118 <[^>]*> lui at,[-0-9x]+ [ ]*118: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+011c <[^>]*> daddiu at,at,[-0-9]+ +0+011c <[^>]*> addiu at,at,[-0-9]+ [ ]*11c: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+0120 <[^>]*> ldl a0,[07]\(at\) 0+0124 <[^>]*> ldr a0,[07]\(at\) 0+0128 <[^>]*> lui at,[-0-9x]+ [ ]*128: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+012c <[^>]*> daddiu at,at,[-0-9]+ +0+012c <[^>]*> addiu at,at,[-0-9]+ [ ]*12c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+0130 <[^>]*> ldl a0,[07]\(at\) 0+0134 <[^>]*> ldr a0,[07]\(at\) 0+0138 <[^>]*> lui at,[-0-9x]+ [ ]*138: [A-Z0-9_]*HI[A-Z0-9_]* small_external_data_label -0+013c <[^>]*> daddiu at,at,[-0-9]+ +0+013c <[^>]*> addiu at,at,[-0-9]+ [ ]*13c: [A-Z0-9_]*LO[A-Z0-9_]* small_external_data_label 0+0140 <[^>]*> ldl a0,[07]\(at\) 0+0144 <[^>]*> ldr a0,[07]\(at\) 0+0148 <[^>]*> lui at,[-0-9x]+ [ ]*148: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+014c <[^>]*> daddiu at,at,[-0-9]+ +0+014c <[^>]*> addiu at,at,[-0-9]+ [ ]*14c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+0150 <[^>]*> ldl a0,[07]\(at\) 0+0154 <[^>]*> ldr a0,[07]\(at\) 0+0158 <[^>]*> lui at,[-0-9x]+ [ ]*158: [A-Z0-9_]*HI[A-Z0-9_]* small_external_common -0+015c <[^>]*> daddiu at,at,[-0-9]+ +0+015c <[^>]*> addiu at,at,[-0-9]+ [ ]*15c: [A-Z0-9_]*LO[A-Z0-9_]* small_external_common 0+0160 <[^>]*> ldl a0,[07]\(at\) 0+0164 <[^>]*> ldr a0,[07]\(at\) 0+0168 <[^>]*> lui at,[-0-9x]+ [ ]*168: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+016c <[^>]*> daddiu at,at,[-0-9]+ +0+016c <[^>]*> addiu at,at,[-0-9]+ [ ]*16c: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+0170 <[^>]*> ldl a0,[07]\(at\) 0+0174 <[^>]*> ldr a0,[07]\(at\) 0+0178 <[^>]*> lui at,[-0-9x]+ [ ]*178: [A-Z0-9_]*HI[A-Z0-9_]* .sbss.* -0+017c <[^>]*> daddiu at,at,[-0-9]+ +0+017c <[^>]*> addiu at,at,[-0-9]+ [ ]*17c: [A-Z0-9_]*LO[A-Z0-9_]* .sbss.* 0+0180 <[^>]*> ldl a0,[07]\(at\) 0+0184 <[^>]*> ldr a0,[07]\(at\) 0+0188 <[^>]*> lui at,0x0 [ ]*188: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+018c <[^>]*> daddiu at,at,[-0-9]+ +0+018c <[^>]*> addiu at,at,[-0-9]+ [ ]*18c: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+0190 <[^>]*> ldl a0,[07]\(at\) 0+0194 <[^>]*> ldr a0,[07]\(at\) 0+0198 <[^>]*> lui at,0x0 [ ]*198: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+019c <[^>]*> daddiu at,at,[-0-9]+ +0+019c <[^>]*> addiu at,at,[-0-9]+ [ ]*19c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+01a0 <[^>]*> ldl a0,[07]\(at\) 0+01a4 <[^>]*> ldr a0,[07]\(at\) 0+01a8 <[^>]*> lui at,0x0 [ ]*1a8: [A-Z0-9_]*HI[A-Z0-9_]* small_external_data_label -0+01ac <[^>]*> daddiu at,at,[-0-9]+ +0+01ac <[^>]*> addiu at,at,[-0-9]+ [ ]*1ac: [A-Z0-9_]*LO[A-Z0-9_]* small_external_data_label 0+01b0 <[^>]*> ldl a0,[07]\(at\) 0+01b4 <[^>]*> ldr a0,[07]\(at\) 0+01b8 <[^>]*> lui at,0x0 [ ]*1b8: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+01bc <[^>]*> daddiu at,at,[-0-9]+ +0+01bc <[^>]*> addiu at,at,[-0-9]+ [ ]*1bc: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+01c0 <[^>]*> ldl a0,[07]\(at\) 0+01c4 <[^>]*> ldr a0,[07]\(at\) 0+01c8 <[^>]*> lui at,0x0 [ ]*1c8: [A-Z0-9_]*HI[A-Z0-9_]* small_external_common -0+01cc <[^>]*> daddiu at,at,[-0-9]+ +0+01cc <[^>]*> addiu at,at,[-0-9]+ [ ]*1cc: [A-Z0-9_]*LO[A-Z0-9_]* small_external_common 0+01d0 <[^>]*> ldl a0,[07]\(at\) 0+01d4 <[^>]*> ldr a0,[07]\(at\) 0+01d8 <[^>]*> lui at,0x0 [ ]*1d8: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+01dc <[^>]*> daddiu at,at,[-0-9]+ +0+01dc <[^>]*> addiu at,at,[-0-9]+ [ ]*1dc: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+01e0 <[^>]*> ldl a0,[07]\(at\) 0+01e4 <[^>]*> ldr a0,[07]\(at\) 0+01e8 <[^>]*> lui at,0x0 [ ]*1e8: [A-Z0-9_]*HI[A-Z0-9_]* .sbss.* -0+01ec <[^>]*> daddiu at,at,[-0-9]+ +0+01ec <[^>]*> addiu at,at,[-0-9]+ [ ]*1ec: [A-Z0-9_]*LO[A-Z0-9_]* .sbss.* 0+01f0 <[^>]*> ldl a0,[07]\(at\) 0+01f4 <[^>]*> ldr a0,[07]\(at\) 0+01f8 <[^>]*> lui at,[-0-9x]+ [ ]*1f8: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+01fc <[^>]*> daddiu at,at,[-0-9]+ +0+01fc <[^>]*> addiu at,at,[-0-9]+ [ ]*1fc: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+0200 <[^>]*> ldl a0,[07]\(at\) 0+0204 <[^>]*> ldr a0,[07]\(at\) 0+0208 <[^>]*> lui at,[-0-9x]+ [ ]*208: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+020c <[^>]*> daddiu at,at,0 +0+020c <[^>]*> addiu at,at,0 [ ]*20c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+0210 <[^>]*> ldl a0,[07]\(at\) 0+0214 <[^>]*> ldr a0,[07]\(at\) 0+0218 <[^>]*> lui at,[-0-9x]+ [ ]*218: [A-Z0-9_]*HI[A-Z0-9_]* small_external_data_label -0+021c <[^>]*> daddiu at,at,0 +0+021c <[^>]*> addiu at,at,0 [ ]*21c: [A-Z0-9_]*LO[A-Z0-9_]* small_external_data_label 0+0220 <[^>]*> ldl a0,[07]\(at\) 0+0224 <[^>]*> ldr a0,[07]\(at\) 0+0228 <[^>]*> lui at,[-0-9x]+ [ ]*228: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+022c <[^>]*> daddiu at,at,0 +0+022c <[^>]*> addiu at,at,0 [ ]*22c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+0230 <[^>]*> ldl a0,[07]\(at\) 0+0234 <[^>]*> ldr a0,[07]\(at\) 0+0238 <[^>]*> lui at,[-0-9x]+ [ ]*238: [A-Z0-9_]*HI[A-Z0-9_]* small_external_common -0+023c <[^>]*> daddiu at,at,0 +0+023c <[^>]*> addiu at,at,0 [ ]*23c: [A-Z0-9_]*LO[A-Z0-9_]* small_external_common 0+0240 <[^>]*> ldl a0,[07]\(at\) 0+0244 <[^>]*> ldr a0,[07]\(at\) 0+0248 <[^>]*> lui at,[-0-9x]+ [ ]*248: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+024c <[^>]*> daddiu at,at,[-0-9]+ +0+024c <[^>]*> addiu at,at,[-0-9]+ [ ]*24c: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+0250 <[^>]*> ldl a0,[07]\(at\) 0+0254 <[^>]*> ldr a0,[07]\(at\) 0+0258 <[^>]*> lui at,[-0-9x]+ [ ]*258: [A-Z0-9_]*HI[A-Z0-9_]* .sbss.* -0+025c <[^>]*> daddiu at,at,[-0-9]+ +0+025c <[^>]*> addiu at,at,[-0-9]+ [ ]*25c: [A-Z0-9_]*LO[A-Z0-9_]* .sbss.* 0+0260 <[^>]*> ldl a0,[07]\(at\) 0+0264 <[^>]*> ldr a0,[07]\(at\) 0+0268 <[^>]*> lui at,[-0-9x]+ [ ]*268: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+026c <[^>]*> daddiu at,at,[-0-9]+ +0+026c <[^>]*> addiu at,at,[-0-9]+ [ ]*26c: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+0270 <[^>]*> ldl a0,[07]\(at\) 0+0274 <[^>]*> ldr a0,[07]\(at\) 0+0278 <[^>]*> lui at,[-0-9x]+ [ ]*278: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+027c <[^>]*> daddiu at,at,[-0-9]+ +0+027c <[^>]*> addiu at,at,[-0-9]+ [ ]*27c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+0280 <[^>]*> ldl a0,[07]\(at\) 0+0284 <[^>]*> ldr a0,[07]\(at\) 0+0288 <[^>]*> lui at,[-0-9x]+ [ ]*288: [A-Z0-9_]*HI[A-Z0-9_]* small_external_data_label -0+028c <[^>]*> daddiu at,at,[-0-9]+ +0+028c <[^>]*> addiu at,at,[-0-9]+ [ ]*28c: [A-Z0-9_]*LO[A-Z0-9_]* small_external_data_label 0+0290 <[^>]*> ldl a0,[07]\(at\) 0+0294 <[^>]*> ldr a0,[07]\(at\) 0+0298 <[^>]*> lui at,[-0-9x]+ [ ]*298: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+029c <[^>]*> daddiu at,at,[-0-9]+ +0+029c <[^>]*> addiu at,at,[-0-9]+ [ ]*29c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+02a0 <[^>]*> ldl a0,[07]\(at\) 0+02a4 <[^>]*> ldr a0,[07]\(at\) 0+02a8 <[^>]*> lui at,[-0-9x]+ [ ]*2a8: [A-Z0-9_]*HI[A-Z0-9_]* small_external_common -0+02ac <[^>]*> daddiu at,at,[-0-9]+ +0+02ac <[^>]*> addiu at,at,[-0-9]+ [ ]*2ac: [A-Z0-9_]*LO[A-Z0-9_]* small_external_common 0+02b0 <[^>]*> ldl a0,[07]\(at\) 0+02b4 <[^>]*> ldr a0,[07]\(at\) 0+02b8 <[^>]*> lui at,[-0-9x]+ [ ]*2b8: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+02bc <[^>]*> daddiu at,at,[-0-9]+ +0+02bc <[^>]*> addiu at,at,[-0-9]+ [ ]*2bc: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+02c0 <[^>]*> ldl a0,[07]\(at\) 0+02c4 <[^>]*> ldr a0,[07]\(at\) 0+02c8 <[^>]*> lui at,[-0-9x]+ [ ]*2c8: [A-Z0-9_]*HI[A-Z0-9_]* .sbss.* -0+02cc <[^>]*> daddiu at,at,[-0-9]+ +0+02cc <[^>]*> addiu at,at,[-0-9]+ [ ]*2cc: [A-Z0-9_]*LO[A-Z0-9_]* .sbss.* 0+02d0 <[^>]*> ldl a0,[07]\(at\) 0+02d4 <[^>]*> ldr a0,[07]\(at\) diff -BurpNX /bigdisk/src/binutils-exclude src-orig/gas/testsuite/gas/mips/usd.d src/gas/testsuite/gas/mips/usd.d --- src-orig/gas/testsuite/gas/mips/usd.d Mon Jul 2 14:34:18 2001 +++ src/gas/testsuite/gas/mips/usd.d Tue Aug 21 19:20:35 2001 @@ -29,241 +29,241 @@ Disassembly of section .text: 0+004c <[^>]*> sdr a0,[-0-9]+\(a1\) 0+0050 <[^>]*> lui at,[-0-9x]+ [ ]*50: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+0054 <[^>]*> daddiu at,at,[-0-9]+ +0+0054 <[^>]*> addiu at,at,[-0-9]+ [ ]*54: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+0058 <[^>]*> sdl a0,[07]\(at\) 0+005c <[^>]*> sdr a0,[07]\(at\) 0+0060 <[^>]*> lui at,[-0-9x]+ [ ]*60: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+0064 <[^>]*> daddiu at,at,[-0-9]+ +0+0064 <[^>]*> addiu at,at,[-0-9]+ [ ]*64: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+0068 <[^>]*> sdl a0,[07]\(at\) 0+006c <[^>]*> sdr a0,[07]\(at\) -0+0070 <[^>]*> daddiu at,gp,0 +0+0070 <[^>]*> addiu at,gp,0 [ ]*70: [A-Z0-9_]*GPREL[A-Z0-9_]* small_external_data_label 0+0074 <[^>]*> sdl a0,[07]\(at\) 0+0078 <[^>]*> sdr a0,[07]\(at\) 0+007c <[^>]*> lui at,0x0 [ ]*7c: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+0080 <[^>]*> daddiu at,at,[-0-9]+ +0+0080 <[^>]*> addiu at,at,[-0-9]+ [ ]*80: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+0084 <[^>]*> sdl a0,[07]\(at\) 0+0088 <[^>]*> sdr a0,[07]\(at\) -0+008c <[^>]*> daddiu at,gp,0 +0+008c <[^>]*> addiu at,gp,0 [ ]*8c: [A-Z0-9_]*GPREL[A-Z0-9_]* small_external_common 0+0090 <[^>]*> sdl a0,[07]\(at\) 0+0094 <[^>]*> sdr a0,[07]\(at\) 0+0098 <[^>]*> lui at,[-0-9x]+ [ ]*98: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+009c <[^>]*> daddiu at,at,[-0-9]+ +0+009c <[^>]*> addiu at,at,[-0-9]+ [ ]*9c: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+00a0 <[^>]*> sdl a0,[07]\(at\) 0+00a4 <[^>]*> sdr a0,[07]\(at\) -0+00a8 <[^>]*> daddiu at,gp,[-0-9]+ +0+00a8 <[^>]*> addiu at,gp,[-0-9]+ [ ]*a8: [A-Z0-9_]*GPREL[A-Z0-9_]* .sbss.* 0+00ac <[^>]*> sdl a0,[07]\(at\) 0+00b0 <[^>]*> sdr a0,[07]\(at\) 0+00b4 <[^>]*> lui at,0x0 [ ]*b4: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+00b8 <[^>]*> daddiu at,at,[-0-9]+ +0+00b8 <[^>]*> addiu at,at,[-0-9]+ [ ]*b8: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+00bc <[^>]*> sdl a0,[07]\(at\) 0+00c0 <[^>]*> sdr a0,[07]\(at\) 0+00c4 <[^>]*> lui at,0x0 [ ]*c4: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+00c8 <[^>]*> daddiu at,at,[-0-9]+ +0+00c8 <[^>]*> addiu at,at,[-0-9]+ [ ]*c8: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+00cc <[^>]*> sdl a0,[07]\(at\) 0+00d0 <[^>]*> sdr a0,[07]\(at\) -0+00d4 <[^>]*> daddiu at,gp,1 +0+00d4 <[^>]*> addiu at,gp,1 [ ]*d4: [A-Z0-9_]*GPREL[A-Z0-9_]* small_external_data_label 0+00d8 <[^>]*> sdl a0,[07]\(at\) 0+00dc <[^>]*> sdr a0,[07]\(at\) 0+00e0 <[^>]*> lui at,0x0 [ ]*e0: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+00e4 <[^>]*> daddiu at,at,[-0-9]+ +0+00e4 <[^>]*> addiu at,at,[-0-9]+ [ ]*e4: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+00e8 <[^>]*> sdl a0,[07]\(at\) 0+00ec <[^>]*> sdr a0,[07]\(at\) -0+00f0 <[^>]*> daddiu at,gp,1 +0+00f0 <[^>]*> addiu at,gp,1 [ ]*f0: [A-Z0-9_]*GPREL[A-Z0-9_]* small_external_common 0+00f4 <[^>]*> sdl a0,[07]\(at\) 0+00f8 <[^>]*> sdr a0,[07]\(at\) 0+00fc <[^>]*> lui at,0x0 [ ]*fc: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+0100 <[^>]*> daddiu at,at,[-0-9]+ +0+0100 <[^>]*> addiu at,at,[-0-9]+ [ ]*100: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+0104 <[^>]*> sdl a0,[07]\(at\) 0+0108 <[^>]*> sdr a0,[07]\(at\) -0+010c <[^>]*> daddiu at,gp,[-0-9]+ +0+010c <[^>]*> addiu at,gp,[-0-9]+ [ ]*10c: [A-Z0-9_]*GPREL[A-Z0-9_]* .sbss.* 0+0110 <[^>]*> sdl a0,[07]\(at\) 0+0114 <[^>]*> sdr a0,[07]\(at\) 0+0118 <[^>]*> lui at,[-0-9x]+ [ ]*118: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+011c <[^>]*> daddiu at,at,[-0-9]+ +0+011c <[^>]*> addiu at,at,[-0-9]+ [ ]*11c: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+0120 <[^>]*> sdl a0,[07]\(at\) 0+0124 <[^>]*> sdr a0,[07]\(at\) 0+0128 <[^>]*> lui at,[-0-9x]+ [ ]*128: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+012c <[^>]*> daddiu at,at,[-0-9]+ +0+012c <[^>]*> addiu at,at,[-0-9]+ [ ]*12c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+0130 <[^>]*> sdl a0,[07]\(at\) 0+0134 <[^>]*> sdr a0,[07]\(at\) 0+0138 <[^>]*> lui at,[-0-9x]+ [ ]*138: [A-Z0-9_]*HI[A-Z0-9_]* small_external_data_label -0+013c <[^>]*> daddiu at,at,[-0-9]+ +0+013c <[^>]*> addiu at,at,[-0-9]+ [ ]*13c: [A-Z0-9_]*LO[A-Z0-9_]* small_external_data_label 0+0140 <[^>]*> sdl a0,[07]\(at\) 0+0144 <[^>]*> sdr a0,[07]\(at\) 0+0148 <[^>]*> lui at,[-0-9x]+ [ ]*148: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+014c <[^>]*> daddiu at,at,[-0-9]+ +0+014c <[^>]*> addiu at,at,[-0-9]+ [ ]*14c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+0150 <[^>]*> sdl a0,[07]\(at\) 0+0154 <[^>]*> sdr a0,[07]\(at\) 0+0158 <[^>]*> lui at,[-0-9x]+ [ ]*158: [A-Z0-9_]*HI[A-Z0-9_]* small_external_common -0+015c <[^>]*> daddiu at,at,[-0-9]+ +0+015c <[^>]*> addiu at,at,[-0-9]+ [ ]*15c: [A-Z0-9_]*LO[A-Z0-9_]* small_external_common 0+0160 <[^>]*> sdl a0,[07]\(at\) 0+0164 <[^>]*> sdr a0,[07]\(at\) 0+0168 <[^>]*> lui at,[-0-9x]+ [ ]*168: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+016c <[^>]*> daddiu at,at,[-0-9]+ +0+016c <[^>]*> addiu at,at,[-0-9]+ [ ]*16c: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+0170 <[^>]*> sdl a0,[07]\(at\) 0+0174 <[^>]*> sdr a0,[07]\(at\) 0+0178 <[^>]*> lui at,[-0-9x]+ [ ]*178: [A-Z0-9_]*HI[A-Z0-9_]* .sbss.* -0+017c <[^>]*> daddiu at,at,[-0-9]+ +0+017c <[^>]*> addiu at,at,[-0-9]+ [ ]*17c: [A-Z0-9_]*LO[A-Z0-9_]* .sbss.* 0+0180 <[^>]*> sdl a0,[07]\(at\) 0+0184 <[^>]*> sdr a0,[07]\(at\) 0+0188 <[^>]*> lui at,0x0 [ ]*188: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+018c <[^>]*> daddiu at,at,[-0-9]+ +0+018c <[^>]*> addiu at,at,[-0-9]+ [ ]*18c: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+0190 <[^>]*> sdl a0,[07]\(at\) 0+0194 <[^>]*> sdr a0,[07]\(at\) 0+0198 <[^>]*> lui at,0x0 [ ]*198: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+019c <[^>]*> daddiu at,at,[-0-9]+ +0+019c <[^>]*> addiu at,at,[-0-9]+ [ ]*19c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+01a0 <[^>]*> sdl a0,[07]\(at\) 0+01a4 <[^>]*> sdr a0,[07]\(at\) 0+01a8 <[^>]*> lui at,0x0 [ ]*1a8: [A-Z0-9_]*HI[A-Z0-9_]* small_external_data_label -0+01ac <[^>]*> daddiu at,at,[-0-9]+ +0+01ac <[^>]*> addiu at,at,[-0-9]+ [ ]*1ac: [A-Z0-9_]*LO[A-Z0-9_]* small_external_data_label 0+01b0 <[^>]*> sdl a0,[07]\(at\) 0+01b4 <[^>]*> sdr a0,[07]\(at\) 0+01b8 <[^>]*> lui at,0x0 [ ]*1b8: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+01bc <[^>]*> daddiu at,at,[-0-9]+ +0+01bc <[^>]*> addiu at,at,[-0-9]+ [ ]*1bc: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+01c0 <[^>]*> sdl a0,[07]\(at\) 0+01c4 <[^>]*> sdr a0,[07]\(at\) 0+01c8 <[^>]*> lui at,0x0 [ ]*1c8: [A-Z0-9_]*HI[A-Z0-9_]* small_external_common -0+01cc <[^>]*> daddiu at,at,[-0-9]+ +0+01cc <[^>]*> addiu at,at,[-0-9]+ [ ]*1cc: [A-Z0-9_]*LO[A-Z0-9_]* small_external_common 0+01d0 <[^>]*> sdl a0,[07]\(at\) 0+01d4 <[^>]*> sdr a0,[07]\(at\) 0+01d8 <[^>]*> lui at,0x0 [ ]*1d8: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+01dc <[^>]*> daddiu at,at,[-0-9]+ +0+01dc <[^>]*> addiu at,at,[-0-9]+ [ ]*1dc: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+01e0 <[^>]*> sdl a0,[07]\(at\) 0+01e4 <[^>]*> sdr a0,[07]\(at\) 0+01e8 <[^>]*> lui at,0x0 [ ]*1e8: [A-Z0-9_]*HI[A-Z0-9_]* .sbss.* -0+01ec <[^>]*> daddiu at,at,[-0-9]+ +0+01ec <[^>]*> addiu at,at,[-0-9]+ [ ]*1ec: [A-Z0-9_]*LO[A-Z0-9_]* .sbss.* 0+01f0 <[^>]*> sdl a0,[07]\(at\) 0+01f4 <[^>]*> sdr a0,[07]\(at\) 0+01f8 <[^>]*> lui at,[-0-9x]+ [ ]*1f8: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+01fc <[^>]*> daddiu at,at,[-0-9]+ +0+01fc <[^>]*> addiu at,at,[-0-9]+ [ ]*1fc: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+0200 <[^>]*> sdl a0,[07]\(at\) 0+0204 <[^>]*> sdr a0,[07]\(at\) 0+0208 <[^>]*> lui at,[-0-9x]+ [ ]*208: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+020c <[^>]*> daddiu at,at,0 +0+020c <[^>]*> addiu at,at,0 [ ]*20c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+0210 <[^>]*> sdl a0,[07]\(at\) 0+0214 <[^>]*> sdr a0,[07]\(at\) 0+0218 <[^>]*> lui at,[-0-9x]+ [ ]*218: [A-Z0-9_]*HI[A-Z0-9_]* small_external_data_label -0+021c <[^>]*> daddiu at,at,0 +0+021c <[^>]*> addiu at,at,0 [ ]*21c: [A-Z0-9_]*LO[A-Z0-9_]* small_external_data_label 0+0220 <[^>]*> sdl a0,[07]\(at\) 0+0224 <[^>]*> sdr a0,[07]\(at\) 0+0228 <[^>]*> lui at,[-0-9x]+ [ ]*228: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+022c <[^>]*> daddiu at,at,0 +0+022c <[^>]*> addiu at,at,0 [ ]*22c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+0230 <[^>]*> sdl a0,[07]\(at\) 0+0234 <[^>]*> sdr a0,[07]\(at\) 0+0238 <[^>]*> lui at,[-0-9x]+ [ ]*238: [A-Z0-9_]*HI[A-Z0-9_]* small_external_common -0+023c <[^>]*> daddiu at,at,0 +0+023c <[^>]*> addiu at,at,0 [ ]*23c: [A-Z0-9_]*LO[A-Z0-9_]* small_external_common 0+0240 <[^>]*> sdl a0,[07]\(at\) 0+0244 <[^>]*> sdr a0,[07]\(at\) 0+0248 <[^>]*> lui at,[-0-9x]+ [ ]*248: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+024c <[^>]*> daddiu at,at,[-0-9]+ +0+024c <[^>]*> addiu at,at,[-0-9]+ [ ]*24c: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+0250 <[^>]*> sdl a0,[07]\(at\) 0+0254 <[^>]*> sdr a0,[07]\(at\) 0+0258 <[^>]*> lui at,[-0-9x]+ [ ]*258: [A-Z0-9_]*HI[A-Z0-9_]* .sbss.* -0+025c <[^>]*> daddiu at,at,[-0-9]+ +0+025c <[^>]*> addiu at,at,[-0-9]+ [ ]*25c: [A-Z0-9_]*LO[A-Z0-9_]* .sbss.* 0+0260 <[^>]*> sdl a0,[07]\(at\) 0+0264 <[^>]*> sdr a0,[07]\(at\) 0+0268 <[^>]*> lui at,[-0-9x]+ [ ]*268: [A-Z0-9_]*HI[A-Z0-9_]* .data.* -0+026c <[^>]*> daddiu at,at,[-0-9]+ +0+026c <[^>]*> addiu at,at,[-0-9]+ [ ]*26c: [A-Z0-9_]*LO[A-Z0-9_]* .data.* 0+0270 <[^>]*> sdl a0,[07]\(at\) 0+0274 <[^>]*> sdr a0,[07]\(at\) 0+0278 <[^>]*> lui at,[-0-9x]+ [ ]*278: [A-Z0-9_]*HI[A-Z0-9_]* big_external_data_label -0+027c <[^>]*> daddiu at,at,[-0-9]+ +0+027c <[^>]*> addiu at,at,[-0-9]+ [ ]*27c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_data_label 0+0280 <[^>]*> sdl a0,[07]\(at\) 0+0284 <[^>]*> sdr a0,[07]\(at\) 0+0288 <[^>]*> lui at,[-0-9x]+ [ ]*288: [A-Z0-9_]*HI[A-Z0-9_]* small_external_data_label -0+028c <[^>]*> daddiu at,at,[-0-9]+ +0+028c <[^>]*> addiu at,at,[-0-9]+ [ ]*28c: [A-Z0-9_]*LO[A-Z0-9_]* small_external_data_label 0+0290 <[^>]*> sdl a0,[07]\(at\) 0+0294 <[^>]*> sdr a0,[07]\(at\) 0+0298 <[^>]*> lui at,[-0-9x]+ [ ]*298: [A-Z0-9_]*HI[A-Z0-9_]* big_external_common -0+029c <[^>]*> daddiu at,at,[-0-9]+ +0+029c <[^>]*> addiu at,at,[-0-9]+ [ ]*29c: [A-Z0-9_]*LO[A-Z0-9_]* big_external_common 0+02a0 <[^>]*> sdl a0,[07]\(at\) 0+02a4 <[^>]*> sdr a0,[07]\(at\) 0+02a8 <[^>]*> lui at,[-0-9x]+ [ ]*2a8: [A-Z0-9_]*HI[A-Z0-9_]* small_external_common -0+02ac <[^>]*> daddiu at,at,[-0-9]+ +0+02ac <[^>]*> addiu at,at,[-0-9]+ [ ]*2ac: [A-Z0-9_]*LO[A-Z0-9_]* small_external_common 0+02b0 <[^>]*> sdl a0,[07]\(at\) 0+02b4 <[^>]*> sdr a0,[07]\(at\) 0+02b8 <[^>]*> lui at,[-0-9x]+ [ ]*2b8: [A-Z0-9_]*HI[A-Z0-9_]* .bss.* -0+02bc <[^>]*> daddiu at,at,[-0-9]+ +0+02bc <[^>]*> addiu at,at,[-0-9]+ [ ]*2bc: [A-Z0-9_]*LO[A-Z0-9_]* .bss.* 0+02c0 <[^>]*> sdl a0,[07]\(at\) 0+02c4 <[^>]*> sdr a0,[07]\(at\) 0+02c8 <[^>]*> lui at,[-0-9x]+ [ ]*2c8: [A-Z0-9_]*HI[A-Z0-9_]* .sbss.* -0+02cc <[^>]*> daddiu at,at,[-0-9]+ +0+02cc <[^>]*> addiu at,at,[-0-9]+ [ ]*2cc: [A-Z0-9_]*LO[A-Z0-9_]* .sbss.* 0+02d0 <[^>]*> sdl a0,[07]\(at\) 0+02d4 <[^>]*> sdr a0,[07]\(at\) ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-06 20:53 ` Thiemo Seufer 2001-09-06 21:09 ` Thiemo Seufer @ 2001-09-06 21:12 ` Thiemo Seufer 2001-09-06 22:38 ` H . J . Lu 2001-09-07 4:10 ` Richard Sandiford 2 siblings, 1 reply; 62+ messages in thread From: Thiemo Seufer @ 2001-09-06 21:12 UTC (permalink / raw) To: binutils Thiemo Seufer wrote: [snip] > 2001-09-07 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de> > > /gas/ChangeLog > * tc_mips.c > (macro): Fix address load instruction. > > /gas/testsuite/ChangeLog > * gas/mips/ld.d: Use 32bit instructions for addresses. > * gas/mips/mips-gp64-fp32-pic.d: Likewise. > * gas/mips/mips-gp64-fp32-pic.s: Likewise. > * gas/mips/mips-gp64-fp32.d: Likewise. > * gas/mips/mips-gp64-fp32.s: Likewise. > * gas/mips/mips-gp64-fp64-pic.d: Likewise. > * gas/mips/mips-gp64-fp64-pic.s: Likewise. > * gas/mips/mips-gp64-fp64.d: Likewise. > * gas/mips/mips-gp64-fp64.s: Likewise. > * gas/mips/elempic.d: Likewise. > * gas/mips/uld.d: Likewise. > * gas/mips/usd.d: Likewise. Of course the ChangeLog should read /gas/ChangeLog * tc_mips.c (macro): Let address load expansion depend on register width instead of it's name. /gas/testsuite/ChangeLog * gas/mips/ld.d: Use 32bit instructions for addresses. Thiemo ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-06 21:12 ` Thiemo Seufer @ 2001-09-06 22:38 ` H . J . Lu 2001-09-06 23:11 ` Thiemo Seufer 0 siblings, 1 reply; 62+ messages in thread From: H . J . Lu @ 2001-09-06 22:38 UTC (permalink / raw) To: Thiemo Seufer; +Cc: binutils On Fri, Sep 07, 2001 at 06:12:41AM +0200, Thiemo Seufer wrote: > > Of course the ChangeLog should read > > /gas/ChangeLog > * tc_mips.c Hi Thiemo, You put many tc_mips.c entries in ChangeLog. But there is no tc_mips.c anywhere. It should be config/tc-mips.c. Could you please fix them? Thanks. H.J. ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-06 22:38 ` H . J . Lu @ 2001-09-06 23:11 ` Thiemo Seufer 0 siblings, 0 replies; 62+ messages in thread From: Thiemo Seufer @ 2001-09-06 23:11 UTC (permalink / raw) To: binutils H . J . Lu wrote: [snip] > You put many tc_mips.c entries in ChangeLog. But there is no tc_mips.c > anywhere. It should be config/tc-mips.c. Could you please fix them? Done. Thanks. Thiemo ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-06 20:53 ` Thiemo Seufer 2001-09-06 21:09 ` Thiemo Seufer 2001-09-06 21:12 ` Thiemo Seufer @ 2001-09-07 4:10 ` Richard Sandiford 2001-09-07 6:22 ` Thiemo Seufer 2 siblings, 1 reply; 62+ messages in thread From: Richard Sandiford @ 2001-09-07 4:10 UTC (permalink / raw) To: Thiemo Seufer; +Cc: binutils Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de> writes: > Richard Sandiford wrote: > [snip] > > AFAIK, R_MIPS_64 won't be used unless you have 64-bit addresses (and > > hence 64-bit registers), or if you have an explicit pseudo-op like > > .8byte. o32 binaries wouldn't be using either of those things anyway, > > would they? > > That's right, but you can't tell if it is actually o32 conformant > by looking at the ELF header. There is no flag which says > "Warning! This object does not conform to any established ABI". > It would be nice to have one. Well, there's the O32 flag, which is only set if -mabi=32 is given. That bit does guarantee register and address size, just not the lack of 64-bit relocs generated by .8byte and the like. Maybe GAS should warn about that? > > I thought the consensus some time ago was that o32 implied 32-bit > > registers, and therefore 32-bit addresses. The HAVE_??BIT_ macros are > > already set up like that as long as you specify -mabi=32 on the command > > line. > > That's all fine for 32bit, but I needed a way to check if 64bit > addresses can be used generally (e.g. for dli). Something like > ! HAVE_32BIT_ADDRESSES won't do that, because full 64bit support > needs a 64bit object format. But *limited* 64-bit support is available with elf32 as things stand... > Having a HAVE_64BIT_ADDRESSES macro which is _not_ the inverse of > HAVE_32BIT_ADDRESSES is ugly. ...so I'm still unsure why that's necessary. > I also found no reason why there is made use of 64bit instructions > like daddiu for a 32bit load. It makes the code look different from > o32 while doing the same. But if the code was written or compiled with 64-bit addresses in mind, it seems natural enough to use daddu in pointer arithmetic. Does it do any harm? The only reason I can see for making HAVE_32BIT_ADDRESSES any stricter is if there's a situation in which code written for 32-bit addresses can't be assembled that way as things stand, presumably because GAS's command-line options are too inflexible. > This was the one part of my patch. The other was to change (d)la to > chose it's expansion in dependency of the address model instead of > the insn name. That's the way the SGI assembler behaves, and this > is the useful behaviour for ABI conformance. For 64bit code in an > 32bit object file this may have side effects (the usability of > R_MIPS_64 is not affected). Right. For the record, I'm only talking about the other bit (the big one). Richard ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-07 4:10 ` Richard Sandiford @ 2001-09-07 6:22 ` Thiemo Seufer 2001-09-07 7:02 ` Richard Sandiford 0 siblings, 1 reply; 62+ messages in thread From: Thiemo Seufer @ 2001-09-07 6:22 UTC (permalink / raw) To: binutils Richard Sandiford wrote: [snip] > > That's right, but you can't tell if it is actually o32 conformant > > by looking at the ELF header. There is no flag which says > > "Warning! This object does not conform to any established ABI". > > It would be nice to have one. > > Well, there's the O32 flag, which is only set if -mabi=32 is given. > That bit does guarantee register and address size, just not the lack of > 64-bit relocs generated by .8byte and the like. Maybe GAS should warn > about that? How could it do that? The o32 ABI does _not_ specify this flag, a file without any ABI flags set is a valid o32 file. I can't see what the use of the O32 header flag could be. [snip] > > That's all fine for 32bit, but I needed a way to check if 64bit > > addresses can be used generally (e.g. for dli). Something like > > ! HAVE_32BIT_ADDRESSES won't do that, because full 64bit support > > needs a 64bit object format. > > But *limited* 64-bit support is available with elf32 as things stand... > > > Having a HAVE_64BIT_ADDRESSES macro which is _not_ the inverse of > > HAVE_32BIT_ADDRESSES is ugly. > > ...so I'm still unsure why that's necessary. I want to have full 64bit support, and it's conceptionally the right thing to keep the variants of 64bit support at a minimum. AFAICS my patch doesn't break the limited 64bit support. > > I also found no reason why there is made use of 64bit instructions > > like daddiu for a 32bit load. It makes the code look different from > > o32 while doing the same. > > But if the code was written or compiled with 64-bit addresses in mind, > it seems natural enough to use daddu in pointer arithmetic. Does it do > any harm? Yes, it inflates the number of variants without need. > The only reason I can see for making HAVE_32BIT_ADDRESSES any > stricter is if there's a situation in which code written for 32-bit > addresses can't be assembled that way as things stand, presumably > because GAS's command-line options are too inflexible. Then I would need to distinguish between (! HAVE_32BIT_ADDRESSES) and HAVE_64BIT_ADDRESSES, building a trap for everyone else. MIPS gas is really complicated enough with ISA, ABI and object formats. Thiemo ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-07 6:22 ` Thiemo Seufer @ 2001-09-07 7:02 ` Richard Sandiford 2001-09-07 8:11 ` Thiemo Seufer 0 siblings, 1 reply; 62+ messages in thread From: Richard Sandiford @ 2001-09-07 7:02 UTC (permalink / raw) To: Thiemo Seufer; +Cc: binutils Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de> writes: > How could it do that? The o32 ABI does _not_ specify this flag, > a file without any ABI flags set is a valid o32 file. I can't > see what the use of the O32 header flag could be. Ok, that hadn't twigged, sorry! So, if I've understood you correctly, your take seems to be: - O32 doesn't define an ABI bit for ELF, so every ELF file without an ABI flag set should be compatible with O32. Whereas mine is: - O32 doesn't define an ABI bit for ELF, so users dosn't have that safety net if they use the wrong options. They need to remember to use the appropriate command-line switches, like -mabi=32. Fleshing that out a bit, I think: GAS has historically supported all sorts of wierd and wonderful combinations that don't have any representation in the ELF header flags. And for which no ABI flags will be set. I don't think that's reason enough not to allow them. GAS should generate whatever code the command line tells it to, whether or not those options can be determined from the output file. > [snip] > I want to have full 64bit support, and it's conceptionally the right > thing to keep the variants of 64bit support at a minimum. Which is a great thing. But people should be able to do things the old way too! > AFAICS my patch doesn't break the limited 64bit support. Like you said in your previous mail, it means that $gp is now assumed to be a 32-bit rather than 64-bit value. There might be dynamic loaders out there that handle the R_MIPS_64 extension, which could replace them with genuine 64-bit (as opposed to sign-extended 32-bit) addresses. I don't know if either of those matter in practice. But... > > > I also found no reason why there is made use of 64bit instructions > > > like daddiu for a 32bit load. It makes the code look different from > > > o32 while doing the same. > > > > But if the code was written or compiled with 64-bit addresses in mind, > > it seems natural enough to use daddu in pointer arithmetic. Does it do > > any harm? > > Yes, it inflates the number of variants without need. ...I really don't see why maintaining the old variant is a problem. All the main part of your patch did was change the definition of the HAVE_32BIT_ADDRESSES macro, it didn't really seem to simplify the code as such. > > The only reason I can see for making HAVE_32BIT_ADDRESSES any > > stricter is if there's a situation in which code written for 32-bit > > addresses can't be assembled that way as things stand, presumably > > because GAS's command-line options are too inflexible. > > Then I would need to distinguish between (! HAVE_32BIT_ADDRESSES) > and HAVE_64BIT_ADDRESSES, building a trap for everyone else. > MIPS gas is really complicated enough with ISA, ABI and object > formats. I still don't see why you need to do that, sorry! Sometimes these things take a while to sink in. In what situation would the two be different? Like you say, they should be inverses. Richard ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-07 7:02 ` Richard Sandiford @ 2001-09-07 8:11 ` Thiemo Seufer 2001-09-07 9:20 ` Richard Sandiford 0 siblings, 1 reply; 62+ messages in thread From: Thiemo Seufer @ 2001-09-07 8:11 UTC (permalink / raw) To: binutils Richard Sandiford wrote: > Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de> writes: > > How could it do that? The o32 ABI does _not_ specify this flag, > > a file without any ABI flags set is a valid o32 file. I can't > > see what the use of the O32 header flag could be. > > Ok, that hadn't twigged, sorry! > > So, if I've understood you correctly, your take seems to be: > > - O32 doesn't define an ABI bit for ELF, so every ELF file without > an ABI flag set should be compatible with O32. Not exactly. Most tools will _regard_ it as o32, even if it isn't. > Whereas mine is: > > - O32 doesn't define an ABI bit for ELF, so users dosn't have that > safety net if they use the wrong options. They need to remember > to use the appropriate command-line switches, like -mabi=32. ABI header flags were invented for remembering it. It would be nice if the linker had a chance to find out what the file actually is. > Fleshing that out a bit, I think: > > GAS has historically supported all sorts of wierd and wonderful > combinations that don't have any representation in the ELF header > flags. And for which no ABI flags will be set. I don't think that's > reason enough not to allow them. GAS should generate whatever code > the command line tells it to, whether or not those options can be > determined from the output file. One NO_ABI_FLAG as a catchall would be enough to let at least the GNU tools know what the file is _not_. [snip] > > AFAICS my patch doesn't break the limited 64bit support. > > Like you said in your previous mail, it means that $gp is now assumed to > be a 32-bit rather than 64-bit value. This is always assumed for everything loaded in 32bit address space. > There might be dynamic loaders > out there that handle the R_MIPS_64 extension, which could replace them > with genuine 64-bit (as opposed to sign-extended 32-bit) addresses. They can't, because R_MIPS_64 holds only 32bit in this case. [snip] > > Yes, it inflates the number of variants without need. > > ...I really don't see why maintaining the old variant is a problem. All > the main part of your patch did was change the definition of the > HAVE_32BIT_ADDRESSES macro, it didn't really seem to simplify the code > as such. It didn't increase complexity while providing all what I need for full 64bit support. That's the advantage over a 32BIT -- HALF_64BIT -- FULL_64BIT approach. [snip] > I still don't see why you need to do that, sorry! Sometimes these things > take a while to sink in. In what situation would the two be different? > Like you say, they should be inverses. Full 64bit support requires a 64bit object format to work, half 64bit support doesn't have one and has it's code in 32bit space. This means for e.g. "dli" a expansion to lui $a, %highest(sym) lui $b, %hi(sym) daddiu $a, %higher(sym) daddiu $b, %lo(sym) dsll32 $a, 0 daddu $a, $a, $b for 64bit addresses, while 32bit addresses should use lui $a, %hi(sym) addiu $a, %lo(sym) for performance and code size. The half 64bit version currently uses lui $a, %hi(sym) daddiu $a, %lo(sym) which does exactly the same but pretends to use 64bit addresses. I hope it got clearer now. Thiemo ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-07 8:11 ` Thiemo Seufer @ 2001-09-07 9:20 ` Richard Sandiford 2001-09-07 9:49 ` Thiemo Seufer 0 siblings, 1 reply; 62+ messages in thread From: Richard Sandiford @ 2001-09-07 9:20 UTC (permalink / raw) To: Thiemo Seufer; +Cc: binutils Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de> writes: > > - O32 doesn't define an ABI bit for ELF, so every ELF file without > > an ABI flag set should be compatible with O32. > > Not exactly. Most tools will _regard_ it as o32, even if it isn't. OK. Even so, my answer's the same. > Full 64bit support requires a 64bit object format to work, half > 64bit support doesn't have one and has it's code in 32bit space. > This means for e.g. "dli" a expansion to > > lui $a, %highest(sym) > lui $b, %hi(sym) > daddiu $a, %higher(sym) > daddiu $b, %lo(sym) > dsll32 $a, 0 > daddu $a, $a, $b > > for 64bit addresses, while 32bit addresses should use > > lui $a, %hi(sym) > addiu $a, %lo(sym) > > for performance and code size. The half 64bit version currently > uses > > lui $a, %hi(sym) > daddiu $a, %lo(sym) > > which does exactly the same but pretends to use 64bit addresses. > I hope it got clearer now. Yes, that makes things clearer, thanks. In that case I'd personally vote for your idea of making the new expansion depend on another macro. Not HAVE_64BIT_ADDRESSES, since that (if ever used) really ought to be an inverse of HAVE_32BIT_ADDRESSES. But HAVE_64BIT_OBJECT_FILE, or whatever. Anyway, I think I finally understand the issue. Everyone else involved probably understood them ages ago, so sorry folks. I think there is a policy decision to be made here, though, it isn't just your run-of-the mill "fix". Richard ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-07 9:20 ` Richard Sandiford @ 2001-09-07 9:49 ` Thiemo Seufer 0 siblings, 0 replies; 62+ messages in thread From: Thiemo Seufer @ 2001-09-07 9:49 UTC (permalink / raw) To: binutils Richard Sandiford wrote: [snip] > Yes, that makes things clearer, thanks. In that case I'd personally > vote for your idea of making the new expansion depend on another macro. > Not HAVE_64BIT_ADDRESSES, since that (if ever used) really ought to be For me, HAVE_64BIT_ADDRESSES sounds to enable 64bit adressing, including proper macro expansion. It would be a misnomer for 32bit expansion. > an inverse of HAVE_32BIT_ADDRESSES. But HAVE_64BIT_OBJECT_FILE, or > whatever. > > Anyway, I think I finally understand the issue. Everyone else involved > probably understood them ages ago, so sorry folks. I think there is a > policy decision to be made here, though, it isn't just your run-of-the > mill "fix". IMHO it's a fix as long as nobody can tell me how it _might_ make a difference in code execution. Thiemo ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-06 10:59 ` cgd 2001-09-06 11:07 ` H . J . Lu @ 2001-09-06 11:14 ` Thiemo Seufer 1 sibling, 0 replies; 62+ messages in thread From: Thiemo Seufer @ 2001-09-06 11:14 UTC (permalink / raw) To: binutils cgd@broadcom.com wrote: [snip] > "mips64-elf" tools have, historically, generated: > > * 32-bit ELF > > * mips3-compatible code (including use of full 64-bit GPRs). > > Unless you say -mlong64, pointers and longs will be 32-bit, but you'll > use full 64-bit GPRs for 'long long'. > > If you do say -mlong64, you'll get 64-bit pointers and longs, in your > 64-bit GPRs. > > All with a 32-bit ELF format. (And, using R_MIPS_64 to represent > pointers in the object files.) > > I don't really _know_ what ABI it uses. I had always thought of it as > "o64", which in my mind was "o32 naively extended for 64-bit GPRs," > but really i don't know that that's correct. Does this mean o64 doesn't allow 64bit addressing? Btw, is there _any_ description/pamphlet/whatever about what o64 is? > In fact, I don't really > _care_ what ABI it uses. We understand the calling conventions well > enough for embedded development use, which is where we're using it. What calling convention does it use? Thiemo ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-06 10:50 ` H . J . Lu 2001-09-06 10:59 ` cgd @ 2001-09-06 11:08 ` Thiemo Seufer 1 sibling, 0 replies; 62+ messages in thread From: Thiemo Seufer @ 2001-09-06 11:08 UTC (permalink / raw) To: binutils H . J . Lu wrote: [snip] > > > What is the 32bit address of `foo'? > > > > bit 31 may or may not be set, depending on what exactly you're > > compiling. > > Let me get this. Correct me if I am wrong. It seems that you want > to use 64bit registers in an o32 binary. Am I right? 1/2. They take o32 as a hull and fill it with 64bit code. There is no ABI conformance at all. Thiemo ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 12:41 ` cgd 2001-08-31 14:31 ` H . J . Lu @ 2001-08-31 18:22 ` Thiemo Seufer 2001-09-03 2:57 ` Richard Sandiford 1 sibling, 1 reply; 62+ messages in thread From: Thiemo Seufer @ 2001-08-31 18:22 UTC (permalink / raw) To: binutils cgd@broadcom.com wrote: [snip] > yes, i know that the pointer is going to be constrainted to being a > sign-extended 32-bit value, but neither the compiler or any assembly > code that uses it needs to know that (or should). As far as they're > concerned, pointers are 64-bit values and they're loaded with ld, etc. I see. Btw, my patch actually doesn't change this behaviour, the HAVE_32BIT_ADDRESSES macro cares about macro expansion, so it changes an address load via immediates from a "lui; daddiu" sequence to "lui; addiu", this makes no difference. An "ld" isn't changed. > yes, there's code that actually uses this. why? it's really nice to > have code that is linked into a 32-bit address space, but can have > 'usable' 64-bit pointers in C code. e.g. code that lives at the boot > vector, but wants to address data in xkphys... This is something similiar to the technique used for the current mips64-linux kernels. Thiemo ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 18:22 ` Thiemo Seufer @ 2001-09-03 2:57 ` Richard Sandiford 2001-09-03 15:00 ` Thiemo Seufer 0 siblings, 1 reply; 62+ messages in thread From: Richard Sandiford @ 2001-09-03 2:57 UTC (permalink / raw) To: binutils Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de> writes: > cgd@broadcom.com wrote: > [snip] > > yes, i know that the pointer is going to be constrainted to being a > > sign-extended 32-bit value, but neither the compiler or any assembly > > code that uses it needs to know that (or should). As far as they're > > concerned, pointers are 64-bit values and they're loaded with ld, etc. > > I see. Btw, my patch actually doesn't change this behaviour, the > HAVE_32BIT_ADDRESSES macro cares about macro expansion, so it > changes an address load via immediates from a "lui; daddiu" sequence > to "lui; addiu", this makes no difference. An "ld" isn't changed. But HAVE_32BIT_ADDRESSES controls all the address calcuations done by macros, not just those that are guaranteed to be 32-bit values. To take one example, if "foo" is in .sdata, won't: la $4,foo use addiu $4,$gp,foo after your patch? Is $gp guaranteed to be a 32-bit value when 64-bit pointers are being used? Richard ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-03 2:57 ` Richard Sandiford @ 2001-09-03 15:00 ` Thiemo Seufer 0 siblings, 0 replies; 62+ messages in thread From: Thiemo Seufer @ 2001-09-03 15:00 UTC (permalink / raw) To: binutils Richard Sandiford wrote: > Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de> writes: > > cgd@broadcom.com wrote: > > [snip] > > > yes, i know that the pointer is going to be constrainted to being a > > > sign-extended 32-bit value, but neither the compiler or any assembly > > > code that uses it needs to know that (or should). As far as they're > > > concerned, pointers are 64-bit values and they're loaded with ld, etc. > > > > I see. Btw, my patch actually doesn't change this behaviour, the > > HAVE_32BIT_ADDRESSES macro cares about macro expansion, so it > > changes an address load via immediates from a "lui; daddiu" sequence > > to "lui; addiu", this makes no difference. An "ld" isn't changed. > > But HAVE_32BIT_ADDRESSES controls all the address calcuations done by > macros, not just those that are guaranteed to be 32-bit values. To take > one example, if "foo" is in .sdata, won't: > la $4,foo > > use > > addiu $4,$gp,foo currently "la $4, foo" becomes with CNU as: 0: 3c040000 lui a0,0x0 0: R_MIPS_HI16 foo 4: 64840000 daddiu a0,a0,0 4: R_MIPS_LO16 foo GNU as with my patch: 0: 3c040000 lui a0,0x0 0: R_MIPS_HI16 foo 4: 24840000 addiu a0,a0,0 4: R_MIPS_LO16 foo this is the same than o32 and the n32 SGI as do. It doesn't make a difference, both are equivalent on a 64bit capable processor. With "la" and -KPIC, there is no difference at all, but with "dla" we have this: GNU as with -KPIC: c: df840000 ld a0,0(gp) c: R_MIPS_GOT16 foo GNU as with my patch and -KPIC: c: 8f840000 lw a0,0(gp) c: R_MIPS_GOT16 foo SGI as with -n32 -non_shared: 0: 8f840000 lw a0,0(gp) 0: R_MIPS_GOT_DISP foo For reference I also tried SGI as with -64: 0: df840000 ld a0,0(gp) 0: R_MIPS_GOT_DISP foo SGI as with -64 -non_shared: 0: 3c040000 lui a0,0x0 0: R_MIPS_HIGHEST foo 4: 64840000 daddiu a0,a0,0 4: R_MIPS_HIGHER foo 8: 00042438 dsll a0,a0,0x10 c: 64840000 daddiu a0,a0,0 c: R_MIPS_HI16 foo 10: 00042438 dsll a0,a0,0x10 14: 64840000 daddiu a0,a0,0 14: R_MIPS_LO16 foo If somebody uses gas to address memory in 64bit space with a $gp relative address model, this would fail with my patch (It's the small part where I replaced "dbl" by "HAVE_32BIT_ADDRESS"). Is such a use of gas realistic? > after your patch? Is $gp guaranteed to be a 32-bit value when 64-bit > pointers are being used? In this scenario, $gp is a sign-extended 32bit value. Thiemo ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 11:46 ` Thiemo Seufer ` (2 preceding siblings ...) [not found] ` <mailpost.999283589.5294@postal.sibyte.com> @ 2001-08-31 14:49 ` Andrew Cagney 2001-08-31 15:00 ` H . J . Lu 2001-08-31 18:25 ` Thiemo Seufer 3 siblings, 2 replies; 62+ messages in thread From: Andrew Cagney @ 2001-08-31 14:49 UTC (permalink / raw) To: Thiemo Seufer; +Cc: binutils > > I'm talking about: > > SYSTEM V APPLICATION BINARY INTERFACE > MIPS RISC Processor Supplement > 3rd Edition > > where no such relocation is defined. Keep in mind that there is often a gap between a standard and the real (aka embedded) world. I can't see how a non SysV MIPS ABI can be expected to comply with a SysV standard. Andrew ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 14:49 ` Andrew Cagney @ 2001-08-31 15:00 ` H . J . Lu 2001-08-31 16:30 ` Eric Christopher 2001-08-31 17:35 ` matthew green 2001-08-31 18:25 ` Thiemo Seufer 1 sibling, 2 replies; 62+ messages in thread From: H . J . Lu @ 2001-08-31 15:00 UTC (permalink / raw) To: Andrew Cagney; +Cc: Thiemo Seufer, binutils On Fri, Aug 31, 2001 at 05:49:22PM -0400, Andrew Cagney wrote: > > > > I'm talking about: > > > > SYSTEM V APPLICATION BINARY INTERFACE > > MIPS RISC Processor Supplement > > 3rd Edition > > > > where no such relocation is defined. > > Keep in mind that there is often a gap between a standard and the real > (aka embedded) world. I can't see how a non SysV MIPS ABI can be > expected to comply with a SysV standard. > If I am rightt, the main problem is Thiemo and I want to support a real MIPS ELF ABI, which mostly means dynamic binaries. As the most ELF ABI, the MIPS ABI doesn't really cover static binaries. You can do whatever you want with static binaries. It doesn't really matter if you follow an ABI or not since a static binary is a standalone binary. Let me ask, how many binutils developers are using the current binutils to generate mips dynamic binaries? H.J. ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 15:00 ` H . J . Lu @ 2001-08-31 16:30 ` Eric Christopher 2001-08-31 16:41 ` Andrew Cagney ` (2 more replies) 2001-08-31 17:35 ` matthew green 1 sibling, 3 replies; 62+ messages in thread From: Eric Christopher @ 2001-08-31 16:30 UTC (permalink / raw) To: H . J . Lu; +Cc: Andrew Cagney, Thiemo Seufer, binutils > If I am rightt, the main problem is Thiemo and I want to support a > real MIPS ELF ABI, which mostly means dynamic binaries. As the most > ELF ABI, the MIPS ABI doesn't really cover static binaries. You can > do whatever you want with static binaries. It doesn't really matter > if you follow an ABI or not since a static binary is a standalone > binary. Let me ask, how many binutils developers are using the > current binutils to generate mips dynamic binaries? > What do you mean by MIPS ABI? There are: o32 o64 n32 eabi meabi The last two are embedded. The first, eabi, was designed mostly by cygnus and is the abi for most embedded toolchains. The last is a new abi designed by MIPS that is very close to n32, but also used for embedded. What we should probably do for linux (since that seems to be what you really care about) is to do one of two things: a) take n32, this will ensure that we can deal with sgi programs b) take Sys V with the MIPS extensions this is also sane. I'm open to discussion and other ideas, but you need to be _much_ more specific about what you mean when discussing mips abis. -eric -- Look out behind you! ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 16:30 ` Eric Christopher @ 2001-08-31 16:41 ` Andrew Cagney 2001-08-31 16:46 ` H . J . Lu 2001-08-31 16:44 ` H . J . Lu 2001-08-31 18:49 ` Thiemo Seufer 2 siblings, 1 reply; 62+ messages in thread From: Andrew Cagney @ 2001-08-31 16:41 UTC (permalink / raw) To: Eric Christopher; +Cc: H . J . Lu, Thiemo Seufer, binutils > o32 > o64 > n32 > eabi > meabi And lets not forget that LE ABI that ran on DEC's MIPS machines (aka PMAX). Andrew ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 16:41 ` Andrew Cagney @ 2001-08-31 16:46 ` H . J . Lu 2001-08-31 17:45 ` matthew green 2001-09-02 19:25 ` J Grant 0 siblings, 2 replies; 62+ messages in thread From: H . J . Lu @ 2001-08-31 16:46 UTC (permalink / raw) To: Andrew Cagney; +Cc: Eric Christopher, Thiemo Seufer, binutils On Fri, Aug 31, 2001 at 07:41:27PM -0400, Andrew Cagney wrote: > > o32 > > o64 > > n32 > > eabi > > meabi > > And lets not forget that LE ABI that ran on DEC's MIPS machines (aka PMAX). > What is that? Is that ELF? Where can I find the spec for that? H.J. ^ permalink raw reply [flat|nested] 62+ messages in thread
* re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 16:46 ` H . J . Lu @ 2001-08-31 17:45 ` matthew green 2001-09-02 19:25 ` J Grant 1 sibling, 0 replies; 62+ messages in thread From: matthew green @ 2001-08-31 17:45 UTC (permalink / raw) To: H . J . Lu; +Cc: Eric Christopher, Thiemo Seufer, binutils, Andrew Cagney On Fri, Aug 31, 2001 at 07:41:27PM -0400, Andrew Cagney wrote: > > o32 > > o64 > > n32 > > eabi > > meabi > > And lets not forget that LE ABI that ran on DEC's MIPS machines (aka PMAX). > What is that? Is that ELF? Where can I find the spec for that? try: http://www.netbsd.org/Ports/pmax/ this is the oldest of the NetBSD/mips ports, but there are now i believe 7 NetBSD mips ports. .mrg. ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 16:46 ` H . J . Lu 2001-08-31 17:45 ` matthew green @ 2001-09-02 19:25 ` J Grant 1 sibling, 0 replies; 62+ messages in thread From: J Grant @ 2001-09-02 19:25 UTC (permalink / raw) To: H . J . Lu; +Cc: Andrew Cagney, Eric Christopher, Thiemo Seufer, binutils What happend to the n64 (new 64bit) ? is this not supported JG "H . J . Lu" wrote: > > On Fri, Aug 31, 2001 at 07:41:27PM -0400, Andrew Cagney wrote: > > > o32 > > > o64 > > > n32 > > > eabi > > > meabi > > > > And lets not forget that LE ABI that ran on DEC's MIPS machines (aka PMAX). > > > > What is that? Is that ELF? Where can I find the spec for that? > > H.J. ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 16:30 ` Eric Christopher 2001-08-31 16:41 ` Andrew Cagney @ 2001-08-31 16:44 ` H . J . Lu 2001-08-31 17:42 ` matthew green 2001-08-31 18:49 ` Thiemo Seufer 2 siblings, 1 reply; 62+ messages in thread From: H . J . Lu @ 2001-08-31 16:44 UTC (permalink / raw) To: Eric Christopher; +Cc: Andrew Cagney, Thiemo Seufer, binutils On Fri, Aug 31, 2001 at 04:29:33PM -0700, Eric Christopher wrote: > > If I am rightt, the main problem is Thiemo and I want to support a > > real MIPS ELF ABI, which mostly means dynamic binaries. As the most > > ELF ABI, the MIPS ABI doesn't really cover static binaries. You can > > do whatever you want with static binaries. It doesn't really matter > > if you follow an ABI or not since a static binary is a standalone > > binary. Let me ask, how many binutils developers are using the > > current binutils to generate mips dynamic binaries? > > > > What do you mean by MIPS ABI? There are: > > o32 > o64 > n32 > eabi > meabi > > The last two are embedded. The first, eabi, was designed mostly by For the embedded, I assume everything is static, you can do whatever you want. As for the dynamic binaries, you have to do by the book, at least, when you generate DSOs/executables. > cygnus and is the abi for most embedded toolchains. The last is a new > abi designed by MIPS that is very close to n32, but also used for > embedded. > > What we should probably do for linux (since that seems to be what you > really care about) is to do one of two things: > > a) take n32, this will ensure that we can deal with sgi programs > b) take Sys V with the MIPS extensions this is also sane. > n32 is a 32bit ABI for a kerrnel which supports 64bit registers. You can only use n32 under a 64bit mips kernel or a mips kernel which save/restore 64bit registers. I don't believe the 32bit Linux mips kernel saves/restores 64bit registers. That means 32bit Linux/mips has to use o32. Also I don't know if we want to support n32 in glibc. We don't support it for ia64 and I doubt we will support it for mips. If you take a close look at the mips linker codes, most of it is to deal with dynamic binaries, which was rarely tested before. I guess Linux/mips is the only platform on which the mips linker gets really tested, just like the i386 ELF linker/assembler. H.J. ^ permalink raw reply [flat|nested] 62+ messages in thread
* re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 16:44 ` H . J . Lu @ 2001-08-31 17:42 ` matthew green 2001-08-31 19:06 ` H . J . Lu 0 siblings, 1 reply; 62+ messages in thread From: matthew green @ 2001-08-31 17:42 UTC (permalink / raw) To: H . J . Lu; +Cc: Andrew Cagney, Thiemo Seufer, binutils, Eric Christopher If you take a close look at the mips linker codes, most of it is to deal with dynamic binaries, which was rarely tested before. I guess Linux/mips is the only platform on which the mips linker gets really tested, just like the i386 ELF linker/assembler. hmm? i don't recall exactly when i started using netbsd/pmax, but it was over 3 years ago. it was around the time they switched from ECOFF to ELF (after NetBSD 1.3? i forget). seems to have been working pretty well during this time. .mrg. ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 17:42 ` matthew green @ 2001-08-31 19:06 ` H . J . Lu 2001-08-31 19:11 ` matthew green 0 siblings, 1 reply; 62+ messages in thread From: H . J . Lu @ 2001-08-31 19:06 UTC (permalink / raw) To: matthew green; +Cc: Andrew Cagney, Thiemo Seufer, binutils, Eric Christopher On Sat, Sep 01, 2001 at 10:41:41AM +1000, matthew green wrote: > > If you take a close look at the mips linker codes, most of it is to > deal with dynamic binaries, which was rarely tested before. I guess > Linux/mips is the only platform on which the mips linker gets really > tested, just like the i386 ELF linker/assembler. > > > hmm? i don't recall exactly when i started using netbsd/pmax, but it > was over 3 years ago. it was around the time they switched from ECOFF > to ELF (after NetBSD 1.3? i forget). > > seems to have been working pretty well during this time. Not even close. Just check the recent ld/gas ChangeLog entries for mips/ELF. H.J. ^ permalink raw reply [flat|nested] 62+ messages in thread
* re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 19:06 ` H . J . Lu @ 2001-08-31 19:11 ` matthew green [not found] ` <mailpost.999310274.17560@postal.sibyte.com> 0 siblings, 1 reply; 62+ messages in thread From: matthew green @ 2001-08-31 19:11 UTC (permalink / raw) To: H . J . Lu; +Cc: Andrew Cagney, Thiemo Seufer, binutils, Eric Christopher > hmm? i don't recall exactly when i started using netbsd/pmax, but it > was over 3 years ago. it was around the time they switched from ECOFF > to ELF (after NetBSD 1.3? i forget). > > seems to have been working pretty well during this time. Not even close. Just check the recent ld/gas ChangeLog entries for mips/ELF. sure, there are bugs, but there's no ignoring the fact that these tools have been used by a whole lot of people for a number of years quite successfullly. it's simply true. .mrg. ^ permalink raw reply [flat|nested] 62+ messages in thread
[parent not found: <mailpost.999310274.17560@postal.sibyte.com>]
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas [not found] ` <mailpost.999310274.17560@postal.sibyte.com> @ 2001-09-03 23:18 ` cgd 2001-09-06 11:00 ` H . J . Lu 0 siblings, 1 reply; 62+ messages in thread From: cgd @ 2001-09-03 23:18 UTC (permalink / raw) To: mrg; +Cc: binutils, thorpej, simonb mrg@cygnus.com ("matthew green") writes: > sure, there are bugs, but there's no ignoring the fact that these > tools have been used by a whole lot of people for a number of years > quite successfullly. it's simply true. I don't believe the current versions will, even disregarding unintentional issues which have cropped up over the past couple of weeks or months. I'm using a version of binutils a couple of months old to generate (dynamically-linked) NetBSD/mips binaries, but alas there is an intentional change in the ABI of the binaries generated by binutils, which breaks compatibility with existing NetBSD/mips ELF binaries and the existing NetBSD/mips shared loader (which, AFAICT, would have worked with minimal configury tweaking, previously). To go back through my notes, it was caused by one or the combination of: 2000-10-13 Ulf Carlsson <ulfc@engr.sgi.com> From Ralf Baechle <ralf@gnu.org> * elf32-mips.c (mips_elf_create_dynamic_relocation): New argument local_p. Add symbol value only for non-R_MIPS_REL32 relocations against local symbols. (_bfd_mips_elf_finish_dynamic_sections): Undo patch from 2000-10-01. 2001-01-18 Maciej W. Rozycki <macro@ds2.pg.gda.pl> * elf32-mips.c (mips_elf_create_dynamic_relocation): Undo patch from 2000-10-13. Do not add the symbol's value for R_MIPS_REL32 relocations against dynsym symbols. but it's been a couple of months since I looked into it, and I don't have all of my notes and source trees handy to tell which it was. (I pointed it out to a few NetBSD folks back in early July.) cgd ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-03 23:18 ` cgd @ 2001-09-06 11:00 ` H . J . Lu 2001-09-06 11:38 ` cgd 0 siblings, 1 reply; 62+ messages in thread From: H . J . Lu @ 2001-09-06 11:00 UTC (permalink / raw) To: cgd; +Cc: mrg, binutils, thorpej, simonb On Mon, Sep 03, 2001 at 11:18:02PM -0700, cgd@broadcom.com wrote: > mrg@cygnus.com ("matthew green") writes: > > sure, there are bugs, but there's no ignoring the fact that these > > tools have been used by a whole lot of people for a number of years > > quite successfullly. it's simply true. > > I don't believe the current versions will, even disregarding > unintentional issues which have cropped up over the past couple of > weeks or months. > > I'm using a version of binutils a couple of months old to generate > (dynamically-linked) NetBSD/mips binaries, but alas there is an > intentional change in the ABI of the binaries generated by binutils, > which breaks compatibility with existing NetBSD/mips ELF binaries and > the existing NetBSD/mips shared loader (which, AFAICT, would have > worked with minimal configury tweaking, previously). > Here is the thing. "make check" in binutils doesn't do much on NetBSD/mips. It also used to be the case for Linux/mips until I turned on them for Linux/mips. I also added a few new mips testcases. Quite a few serious mips bugs have been identified/fixed since then. Without active participation from NetBSD/mips, we have no idea if the current toolchain works, which also include gcc and gdb, on NetBSD/mips or not. The only mips testsuite results for gcc I can find are Irix and Linux. It won't surprise me that the next release of gcc/binutils won't work on NetBSD/mips, out of box. H.J. ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-06 11:00 ` H . J . Lu @ 2001-09-06 11:38 ` cgd 2001-09-06 12:09 ` H . J . Lu 0 siblings, 1 reply; 62+ messages in thread From: cgd @ 2001-09-06 11:38 UTC (permalink / raw) To: H . J . Lu; +Cc: mrg, binutils, thorpej, simonb "H . J . Lu" <hjl@lucon.org> writes: > Here is the thing. "make check" in binutils doesn't do much on > NetBSD/mips. It also used to be the case for Linux/mips until I turned > on them for Linux/mips. I also added a few new mips testcases. Quite > a few serious mips bugs have been identified/fixed since then. Oh, I understand that. The problem becomes, what's a bug and what's a feature? 8-) Yes, something might be a bug w.r.t. an ABI standard that nobody started following until 6 months ago. But e.g. some of the changes to binutils will cause binary compatibility for NetBSD/mips binaries, which have been using the old MIPS ELF ABI implemented by binutils for ... 3+ years. I don't disagree that bugs need to be fixed, but some of the fixes will cause some groups real pain. (No, there's no real point there. 8-) > Without > active participation from NetBSD/mips, we have no idea if the current > toolchain works, which also include gcc and gdb, on NetBSD/mips or not. Agreed. I've advocated for ... years that NetBSD should do Better Things than it historically has, w.r.t. toolchain stuff. But i'm not really in a position to do them myself since for the most part I'm not paid to work on NetBSD and I have limited time outside of work for such hacking. It's getting better, but is a long way from good. > The only mips testsuite results for gcc I can find are Irix and Linux. > It won't surprise me that the next release of gcc/binutils won't work > on NetBSD/mips, out of box. GCC isn't relevant here, is it? I mean, binutils is supposed to be a usable compiler with gcc, without gcc, and also with random (not-current) versions of gcc. NetBSD is ... much less likely to upgrade to a new version of gcc than to a new version of binutils. Indeed, it's almost certain that the next release of binutils won't work on NetBSD/mips. Even if the trivial things were fixed (and they could be, and i plan to work on them to the extent that I can), there's still this non-trivial (to my eyes, at least) ABI change. The point of my message was mostly informational: i think the list should be aware that there are issues re: MIPS ABIs, current binutils, and compatibility with a system that's been using binutils to generate dynamically-linked MIPS ELF binaries for years. It's going to crop up again in the future, and I thought i'd put something down on record so that when it does people would have something to look at. 8-) chris ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-09-06 11:38 ` cgd @ 2001-09-06 12:09 ` H . J . Lu 0 siblings, 0 replies; 62+ messages in thread From: H . J . Lu @ 2001-09-06 12:09 UTC (permalink / raw) To: cgd; +Cc: mrg, binutils, thorpej, simonb On Thu, Sep 06, 2001 at 11:38:31AM -0700, cgd@broadcom.com wrote: > Yes, something might be a bug w.r.t. an ABI standard that nobody > started following until 6 months ago. But e.g. some of the changes to That is why I said the mips ELF implementation in binutils was only really tested on Linux/mips :-). > binutils will cause binary compatibility for NetBSD/mips binaries, > which have been using the old MIPS ELF ABI implemented by binutils for > ... 3+ years. > > I don't disagree that bugs need to be fixed, but some of the fixes > will cause some groups real pain. > Been there, done that. It happened quite a few times on some Linux platforms. Sorry, I can't help on that. > > The only mips testsuite results for gcc I can find are Irix and Linux. > > It won't surprise me that the next release of gcc/binutils won't work > > on NetBSD/mips, out of box. > > GCC isn't relevant here, is it? I mean, binutils is supposed to be a > usable compiler with gcc, without gcc, and also with random > (not-current) versions of gcc. NetBSD is ... much less likely to > upgrade to a new version of gcc than to a new version of binutils. It depends on how you see it. In my view, a toolchain should at least include binutils and gcc. They should be compatible with each other. > The point of my message was mostly informational: i think the list > should be aware that there are issues re: MIPS ABIs, current binutils, > and compatibility with a system that's been using binutils to generate > dynamically-linked MIPS ELF binaries for years. > Well, it is not an excuse not to have a good implementation of the SVR4 MIPS ABI. BTW, "make check" in binutils checks the SVR4 ELF ABI implementation on Linux/mips. Linux/mips also has its own testsuite for the SVR4 ELF ABI implementation in glibc. Does NetBSD/mips have similar tests? H.J. ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 16:30 ` Eric Christopher 2001-08-31 16:41 ` Andrew Cagney 2001-08-31 16:44 ` H . J . Lu @ 2001-08-31 18:49 ` Thiemo Seufer 2 siblings, 0 replies; 62+ messages in thread From: Thiemo Seufer @ 2001-08-31 18:49 UTC (permalink / raw) To: binutils Eric Christopher wrote: [snip] > What do you mean by MIPS ABI? There are: > > o32 > o64 > n32 > eabi > meabi 64 is missing here. [snip] > What we should probably do for linux (since that seems to be what you > really care about) is to do one of two things: mips-linux is very different from mips64-linux WRT. > a) take n32, this will ensure that we can deal with sgi programs > b) take Sys V with the MIPS extensions this is also sane. mips-linux supports 32bit CPU's, so o32 is the only one of these ABI's that is usable. mips64-linux has currently a o32 ABI, too, because there is no appropriate toolchain for something else. This is obviously not what's desireable. > I'm open to discussion and other ideas, but you need to be _much_ more > specific about what you mean when discussing mips abis. o64 is a low performance 64bit ABI which is AFAIK not even documented. Implementing the full n32 or 64 ABI as defined by SGI would e.g. introduce Quickstart, which is rather weird and obsoleted by libc prelinking. I don't know if (m)eabi can replace n32 on linux, what are the differences mtween these ABI's? Thiemo ^ permalink raw reply [flat|nested] 62+ messages in thread
* re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 15:00 ` H . J . Lu 2001-08-31 16:30 ` Eric Christopher @ 2001-08-31 17:35 ` matthew green 2001-08-31 19:05 ` H . J . Lu 1 sibling, 1 reply; 62+ messages in thread From: matthew green @ 2001-08-31 17:35 UTC (permalink / raw) To: H . J . Lu; +Cc: Thiemo Seufer, binutils, Andrew Cagney binary. Let me ask, how many binutils developers are using the current binutils to generate mips dynamic binaries? i have been for several years on netbsd/pmax. .mrg. ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 17:35 ` matthew green @ 2001-08-31 19:05 ` H . J . Lu 0 siblings, 0 replies; 62+ messages in thread From: H . J . Lu @ 2001-08-31 19:05 UTC (permalink / raw) To: matthew green; +Cc: Thiemo Seufer, binutils, Andrew Cagney On Sat, Sep 01, 2001 at 10:35:13AM +1000, matthew green wrote: > > binary. Let me ask, how many binutils developers are using the > current binutils to generate mips dynamic binaries? > > > i have been for several years on netbsd/pmax. I said `the current binutils'. As far as I know, the ELF mips linker/assembler were broken for dynamic binaries only a few weeks ago. I just fixed another linker bug yesterday. I doubt netbsd/pmax uses the current binutils from CVS trunk. H.J. ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 14:49 ` Andrew Cagney 2001-08-31 15:00 ` H . J . Lu @ 2001-08-31 18:25 ` Thiemo Seufer 2001-08-31 20:46 ` Ian Lance Taylor 1 sibling, 1 reply; 62+ messages in thread From: Thiemo Seufer @ 2001-08-31 18:25 UTC (permalink / raw) To: binutils Andrew Cagney wrote: > > > >I'm talking about: > > > >SYSTEM V APPLICATION BINARY INTERFACE > >MIPS RISC Processor Supplement > >3rd Edition > > > >where no such relocation is defined. > > Keep in mind that there is often a gap between a standard and the real > (aka embedded) world. The embedded world isn't everything. :-) > I can't see how a non SysV MIPS ABI can be > expected to comply with a SysV standard. AFAICS this use of R_MIPS_64 isn't covered by any ABI. Thiemo ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 18:25 ` Thiemo Seufer @ 2001-08-31 20:46 ` Ian Lance Taylor 2001-08-31 21:04 ` Thiemo Seufer 0 siblings, 1 reply; 62+ messages in thread From: Ian Lance Taylor @ 2001-08-31 20:46 UTC (permalink / raw) To: Thiemo Seufer; +Cc: binutils Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de> writes: > > I can't see how a non SysV MIPS ABI can be > > expected to comply with a SysV standard. > > AFAICS this use of R_MIPS_64 isn't covered by any ABI. To make my point in a different way, the GNU tools do a lot of things which aren't covered by any ABI. That doesn't make them wrong. For example, the i386 ELF backend supports 8-bit and 16-bit relocations. They are not covered by any ABI, but they are required to build 16-bit code used by PC bootstrap code. Ian ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 20:46 ` Ian Lance Taylor @ 2001-08-31 21:04 ` Thiemo Seufer 0 siblings, 0 replies; 62+ messages in thread From: Thiemo Seufer @ 2001-08-31 21:04 UTC (permalink / raw) To: binutils; +Cc: ica2_ts Ian Lance Taylor wrote: > Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de> writes: > > > > I can't see how a non SysV MIPS ABI can be > > > expected to comply with a SysV standard. > > > > AFAICS this use of R_MIPS_64 isn't covered by any ABI. > > To make my point in a different way, the GNU tools do a lot of things > which aren't covered by any ABI. That doesn't make them wrong. I agree. > For example, the i386 ELF backend supports 8-bit and 16-bit > relocations. They are not covered by any ABI, but they are required > to build 16-bit code used by PC bootstrap code. The problem with R_MIPS_64 is that it is part of ABI 64 and ABI N32, being unused in the latter. We now have a GNU extension which uses this relocation with different semantics. As long as this extension isn't used in n32 we are probably safe, otherwise it may break linking. The clean way would have been to invent a R_MIPS_GNU_64 relocation for this purpose. Well, OTOH there's no urgent need to change current behaviour. Thiemo ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 9:17 ` Thiemo Seufer 2001-08-31 9:53 ` Geoff Keating @ 2001-08-31 10:04 ` Richard Sandiford 2001-08-31 10:41 ` Thiemo Seufer 1 sibling, 1 reply; 62+ messages in thread From: Richard Sandiford @ 2001-08-31 10:04 UTC (permalink / raw) To: Thiemo Seufer; +Cc: binutils Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de> writes: > Richard Sandiford wrote: > > Besides, isn't the address size really decided by > > the ABI? > > Sure, and a ABI with 64bit addresses won't fit in a object format > restricted to 32bit. But the register size is already determined by the ABI. Isn't it more consistent to do the same with the address size? Richard ^ permalink raw reply [flat|nested] 62+ messages in thread
* Re: [PATCH] Fix distinction of 32/64bit addresses in MIPS gas 2001-08-31 10:04 ` Richard Sandiford @ 2001-08-31 10:41 ` Thiemo Seufer 0 siblings, 0 replies; 62+ messages in thread From: Thiemo Seufer @ 2001-08-31 10:41 UTC (permalink / raw) To: binutils Richard Sandiford wrote: > Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de> writes: > > Richard Sandiford wrote: > > > Besides, isn't the address size really decided by > > > the ABI? > > > > Sure, and a ABI with 64bit addresses won't fit in a object format > > restricted to 32bit. > > But the register size is already determined by the ABI. Isn't it more > consistent to do the same with the address size? That's what it does. The mips_64 variable is set if ABI 64 is specified. I don't know what to do with o64 or eabi64, there isn't much implemented besides the header flag settings. Thiemo ^ permalink raw reply [flat|nested] 62+ messages in thread
end of thread, other threads:[~2001-09-08 16:56 UTC | newest] Thread overview: 62+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2001-08-24 18:26 [PATCH] Fix distinction of 32/64bit addresses in MIPS gas Thiemo Seufer 2001-08-31 8:02 ` Richard Sandiford 2001-08-31 8:28 ` H . J . Lu 2001-08-31 9:17 ` Thiemo Seufer 2001-08-31 9:53 ` Geoff Keating 2001-08-31 10:31 ` Thiemo Seufer [not found] ` <mailpost.999279120.2469@postal.sibyte.com> 2001-08-31 10:37 ` cgd 2001-08-31 11:46 ` Thiemo Seufer 2001-08-31 11:49 ` Ian Lance Taylor 2001-08-31 11:50 ` Ian Lance Taylor [not found] ` <mailpost.999283589.5294@postal.sibyte.com> 2001-08-31 12:41 ` cgd 2001-08-31 14:31 ` H . J . Lu 2001-09-03 23:07 ` cgd 2001-09-06 10:50 ` H . J . Lu 2001-09-06 10:59 ` cgd 2001-09-06 11:07 ` H . J . Lu 2001-09-06 11:35 ` Thiemo Seufer 2001-09-06 11:39 ` cgd 2001-09-06 11:40 ` cgd 2001-09-08 12:03 ` Andrew Cagney 2001-09-08 16:38 ` Thiemo Seufer 2001-09-08 16:56 ` Thiemo Seufer 2001-09-06 11:57 ` Richard Sandiford 2001-09-06 20:53 ` Thiemo Seufer 2001-09-06 21:09 ` Thiemo Seufer 2001-09-06 21:12 ` Thiemo Seufer 2001-09-06 22:38 ` H . J . Lu 2001-09-06 23:11 ` Thiemo Seufer 2001-09-07 4:10 ` Richard Sandiford 2001-09-07 6:22 ` Thiemo Seufer 2001-09-07 7:02 ` Richard Sandiford 2001-09-07 8:11 ` Thiemo Seufer 2001-09-07 9:20 ` Richard Sandiford 2001-09-07 9:49 ` Thiemo Seufer 2001-09-06 11:14 ` Thiemo Seufer 2001-09-06 11:08 ` Thiemo Seufer 2001-08-31 18:22 ` Thiemo Seufer 2001-09-03 2:57 ` Richard Sandiford 2001-09-03 15:00 ` Thiemo Seufer 2001-08-31 14:49 ` Andrew Cagney 2001-08-31 15:00 ` H . J . Lu 2001-08-31 16:30 ` Eric Christopher 2001-08-31 16:41 ` Andrew Cagney 2001-08-31 16:46 ` H . J . Lu 2001-08-31 17:45 ` matthew green 2001-09-02 19:25 ` J Grant 2001-08-31 16:44 ` H . J . Lu 2001-08-31 17:42 ` matthew green 2001-08-31 19:06 ` H . J . Lu 2001-08-31 19:11 ` matthew green [not found] ` <mailpost.999310274.17560@postal.sibyte.com> 2001-09-03 23:18 ` cgd 2001-09-06 11:00 ` H . J . Lu 2001-09-06 11:38 ` cgd 2001-09-06 12:09 ` H . J . Lu 2001-08-31 18:49 ` Thiemo Seufer 2001-08-31 17:35 ` matthew green 2001-08-31 19:05 ` H . J . Lu 2001-08-31 18:25 ` Thiemo Seufer 2001-08-31 20:46 ` Ian Lance Taylor 2001-08-31 21:04 ` Thiemo Seufer 2001-08-31 10:04 ` Richard Sandiford 2001-08-31 10:41 ` Thiemo Seufer
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).