diff --git a/gas/ChangeLog b/gas/ChangeLog index 4c43c77da6..1dbb3dc4c2 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,10 @@ +2011-10-18 Jie Zhang + Julian Brown + + * config/tc-arm.c (parse_shifter_operand): Fix handling of explicit + rotation. + (encode_arm_shifter_operand): Likewise. + 2011-10-13 James Greenhalgh * config/tc-arm.c (check_ldr_r15_aligned): New. diff --git a/gas/config/tc-arm.c b/gas/config/tc-arm.c index 8189c51710..38711644ec 100644 --- a/gas/config/tc-arm.c +++ b/gas/config/tc-arm.c @@ -4884,10 +4884,9 @@ parse_shifter_operand (char **str, int i) return FAIL; } - /* Convert to decoded value. md_apply_fix will put it back. */ - inst.reloc.exp.X_add_number - = (((inst.reloc.exp.X_add_number << (32 - value)) - | (inst.reloc.exp.X_add_number >> value)) & 0xffffffff); + /* Encode as specified. */ + inst.operands[i].imm = inst.reloc.exp.X_add_number | value << 7; + return SUCCESS; } inst.reloc.type = BFD_RELOC_ARM_IMMEDIATE; @@ -7018,7 +7017,11 @@ encode_arm_shifter_operand (int i) encode_arm_shift (i); } else - inst.instruction |= INST_IMMEDIATE; + { + inst.instruction |= INST_IMMEDIATE; + if (inst.reloc.type != BFD_RELOC_ARM_IMMEDIATE) + inst.instruction |= inst.operands[i].imm; + } } /* Subroutine of encode_arm_addr_mode_2 and encode_arm_addr_mode_3. */ diff --git a/gas/testsuite/ChangeLog b/gas/testsuite/ChangeLog index a16295246c..5de442f6d8 100644 --- a/gas/testsuite/ChangeLog +++ b/gas/testsuite/ChangeLog @@ -1,3 +1,10 @@ +2011-10-18 Jie Zhang + Julian Brown + + * gas/arm/adrl.d: Adjust. + * gas/arm/immed2.d: New test. + * gas/arm/immed2.s: New test. + 2011-10-13 James Greenhalgh * gas/arm/ldr-bad.s: New testcase. diff --git a/gas/testsuite/gas/arm/adrl.d b/gas/testsuite/gas/arm/adrl.d index 3261311c92..6276e8d2f3 100644 --- a/gas/testsuite/gas/arm/adrl.d +++ b/gas/testsuite/gas/arm/adrl.d @@ -8,9 +8,9 @@ Disassembly of section .text: ... 0+2000 <.*> e24f0008 sub r0, pc, #8 -0+2004 <.*> e2400c20 sub r0, r0, #8192 ; 0x2000 +0+2004 <.*> e2400c20 sub r0, r0, #32, 24 ; 0x2000 0+2008 <.*> e28f0020 add r0, pc, #32 -0+200c <.*> e2800c20 add r0, r0, #8192 ; 0x2000 +0+200c <.*> e2800c20 add r0, r0, #32, 24 ; 0x2000 0+2010 <.*> e24f0018 sub r0, pc, #24 0+2014 <.*> e1a00000 nop ; \(mov r0, r0\) 0+2018 <.*> e28f0008 add r0, pc, #8 @@ -18,7 +18,7 @@ Disassembly of section .text: 0+2020 <.*> 028f0000 addeq r0, pc, #0 0+2024 <.*> e1a00000 nop ; \(mov r0, r0\) 0+2028 <.*> e24f0030 sub r0, pc, #48 ; 0x30 -0+202c <.*> e2400c20 sub r0, r0, #8192 ; 0x2000 +0+202c <.*> e2400c20 sub r0, r0, #32, 24 ; 0x2000 0+2030 <.*> e28f0c21 add r0, pc, #8448 ; 0x2100 0+2034 <.*> e1a00000 nop ; \(mov r0, r0\) ... diff --git a/gas/testsuite/gas/arm/immed2.d b/gas/testsuite/gas/arm/immed2.d new file mode 100644 index 0000000000..49fa895be5 --- /dev/null +++ b/gas/testsuite/gas/arm/immed2.d @@ -0,0 +1,8 @@ +# name: modified immediate constants +# as: +# objdump: -dr --prefix-addresses --show-raw-insn + +.*: +file format .*arm.* + +Disassembly of section .text: +0+0000 <[^>]+> b351029c ? cmplt r1, #156, 4 ; 0xc0000009 diff --git a/gas/testsuite/gas/arm/immed2.s b/gas/testsuite/gas/arm/immed2.s new file mode 100644 index 0000000000..0365236cff --- /dev/null +++ b/gas/testsuite/gas/arm/immed2.s @@ -0,0 +1,4 @@ +@ Tests for modified immediate constants with specified rotate + .text +bar: + cmplt r1, #0x9c, 4 diff --git a/ld/testsuite/ChangeLog b/ld/testsuite/ChangeLog index 69df1ad0a4..6bf48c5b97 100644 --- a/ld/testsuite/ChangeLog +++ b/ld/testsuite/ChangeLog @@ -1,3 +1,25 @@ +2011-10-18 Jie Zhang + Julian Brown + + * ld-arm/cortex-a8-fix-b-plt.d: Adjust. + * ld-arm/cortex-a8-fix-bcc-plt.d: Adjust. + * ld-arm/cortex-a8-fix-bl-plt.d: Adjust. + * ld-arm/cortex-a8-fix-bl-rel-plt.d: Adjust. + * ld-arm/cortex-a8-fix-blx-plt.d: Adjust. + * ld-arm/ifunc-1.dd: Adjust. + * ld-arm/ifunc-2.dd: Adjust. + * ld-arm/ifunc-3.dd: Adjust. + * ld-arm/ifunc-4.dd: Adjust. + * ld-arm/ifunc-5.dd: Adjust. + * ld-arm/ifunc-6.dd: Adjust. + * ld-arm/ifunc-7.dd: Adjust. + * ld-arm/ifunc-8.dd: Adjust. + * ld-arm/ifunc-9.dd: Adjust. + * ld-arm/ifunc-10.dd: Adjust. + * ld-arm/ifunc-14.dd: Adjust. + * ld-arm/ifunc-15.dd: Adjust. + * ld-arm/ifunc-16.dd: Adjust. + 2011-10-14 Hans-Peter Nilsson * ld-cris/pic-gc-72.d: Adjust for dropping unused undefined diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-b-plt.d b/ld/testsuite/ld-arm/cortex-a8-fix-b-plt.d index 59efecb5b4..4f1078d644 100644 --- a/ld/testsuite/ld-arm/cortex-a8-fix-b-plt.d +++ b/ld/testsuite/ld-arm/cortex-a8-fix-b-plt.d @@ -12,8 +12,8 @@ Disassembly of section \.plt: 8010: 00000ffc \.word 0x00000ffc 8014: 4778 bx pc 8016: 46c0 nop ; \(mov r8, r8\) - 8018: e28fc600 add ip, pc, #0 - 801c: e28cca00 add ip, ip, #0 + 8018: e28fc600 add ip, pc, #0, 12 + 801c: e28cca00 add ip, ip, #0, 20 8020: e5bcfff8 ldr pc, \[ip, #4088\]! ; 0xff8 Disassembly of section \.text: diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.d b/ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.d index 78620082f5..1e0cab2d33 100644 --- a/ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.d +++ b/ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.d @@ -12,7 +12,7 @@ Disassembly of section \.plt: 8010: 00001004 \.word 0x00001004 8014: 4778 bx pc 8016: 46c0 nop ; \(mov r8, r8\) - 8018: e28fc600 add ip, pc, #0 + 8018: e28fc600 add ip, pc, #0, 12 801c: e28cca01 add ip, ip, #4096 ; 0x1000 8020: e5bcf000 ldr pc, \[ip, #0\]! diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-bl-plt.d b/ld/testsuite/ld-arm/cortex-a8-fix-bl-plt.d index 17cb9ac76f..ebb480f0f6 100644 --- a/ld/testsuite/ld-arm/cortex-a8-fix-bl-plt.d +++ b/ld/testsuite/ld-arm/cortex-a8-fix-bl-plt.d @@ -10,8 +10,8 @@ Disassembly of section \.plt: 8008: e08fe00e add lr, pc, lr 800c: e5bef008 ldr pc, \[lr, #8\]! 8010: 00000ffc \.word 0x00000ffc - 8014: e28fc600 add ip, pc, #0 - 8018: e28cca00 add ip, ip, #0 + 8014: e28fc600 add ip, pc, #0, 12 + 8018: e28cca00 add ip, ip, #0, 20 801c: e5bcfffc ldr pc, \[ip, #4092\]! ; 0xffc Disassembly of section \.text: diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-plt.d b/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-plt.d index e885a17a2b..f8a9c24295 100644 --- a/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-plt.d +++ b/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-plt.d @@ -10,8 +10,8 @@ Disassembly of section \.plt: 8e08: e08fe00e add lr, pc, lr 8e0c: e5bef008 ldr pc, \[lr, #8\]! 8e10: 0000827c \.word 0x0000827c - 8e14: e28fc600 add ip, pc, #0 - 8e18: e28cca08 add ip, ip, #32768 ; 0x8000 + 8e14: e28fc600 add ip, pc, #0, 12 + 8e18: e28cca08 add ip, ip, #8, 20 ; 0x8000 8e1c: e5bcf27c ldr pc, \[ip, #636\]! ; 0x27c Disassembly of section \.text: diff --git a/ld/testsuite/ld-arm/cortex-a8-fix-blx-plt.d b/ld/testsuite/ld-arm/cortex-a8-fix-blx-plt.d index 17cb9ac76f..ebb480f0f6 100644 --- a/ld/testsuite/ld-arm/cortex-a8-fix-blx-plt.d +++ b/ld/testsuite/ld-arm/cortex-a8-fix-blx-plt.d @@ -10,8 +10,8 @@ Disassembly of section \.plt: 8008: e08fe00e add lr, pc, lr 800c: e5bef008 ldr pc, \[lr, #8\]! 8010: 00000ffc \.word 0x00000ffc - 8014: e28fc600 add ip, pc, #0 - 8018: e28cca00 add ip, ip, #0 + 8014: e28fc600 add ip, pc, #0, 12 + 8018: e28cca00 add ip, ip, #0, 20 801c: e5bcfffc ldr pc, \[ip, #4092\]! ; 0xffc Disassembly of section \.text: diff --git a/ld/testsuite/ld-arm/ifunc-1.dd b/ld/testsuite/ld-arm/ifunc-1.dd index de6d813ade..14b14829c3 100644 --- a/ld/testsuite/ld-arm/ifunc-1.dd +++ b/ld/testsuite/ld-arm/ifunc-1.dd @@ -8,17 +8,17 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ f1's .iplt entry #------------------------------------------------------------------------------ - 9000: e28fc600 add ip, pc, #0 - 9004: e28cca08 add ip, ip, #32768 ; 0x8000 + 9000: e28fc600 add ip, pc, #0, 12 + 9004: e28cca08 add ip, ip, #8, 20 ; 0x8000 9008: e5bcf004 ldr pc, \[ip, #4\]! 0000900c : - 900c: e28fc600 add ip, pc, #0 + 900c: e28fc600 add ip, pc, #0, 12 9010: e28cca07 add ip, ip, #28672 ; 0x7000 9014: e5bcfffc ldr pc, \[ip, #4092\]! ; 0xffc 00009018 : - 9018: e28fc600 add ip, pc, #0 + 9018: e28fc600 add ip, pc, #0, 12 901c: e28cca07 add ip, ip, #28672 ; 0x7000 9020: e5bcfff4 ldr pc, \[ip, #4084\]! ; 0xff4 diff --git a/ld/testsuite/ld-arm/ifunc-10.dd b/ld/testsuite/ld-arm/ifunc-10.dd index f9bfd09bcd..105b09b9c6 100644 --- a/ld/testsuite/ld-arm/ifunc-10.dd +++ b/ld/testsuite/ld-arm/ifunc-10.dd @@ -21,13 +21,13 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ atf2's .plt entry #------------------------------------------------------------------------------ - 9018: e28fc600 add ip, pc, #0 + 9018: e28fc600 add ip, pc, #0, 12 901c: e28cca07 add ip, ip, #28672 ; 0x7000 9020: e5bcffec ldr pc, \[ip, #4076\]! ; 0xfec #------------------------------------------------------------------------------ #------ aaf4's .plt entry #------------------------------------------------------------------------------ - 9024: e28fc600 add ip, pc, #0 + 9024: e28fc600 add ip, pc, #0, 12 9028: e28cca07 add ip, ip, #28672 ; 0x7000 902c: e5bcffe4 ldr pc, \[ip, #4068\]! ; 0xfe4 #------------------------------------------------------------------------------ @@ -38,7 +38,7 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ ttf2's .plt entry #------------------------------------------------------------------------------ - 9034: e28fc600 add ip, pc, #0 + 9034: e28fc600 add ip, pc, #0, 12 9038: e28cca07 add ip, ip, #28672 ; 0x7000 903c: e5bcffd8 ldr pc, \[ip, #4056\]! ; 0xfd8 #------------------------------------------------------------------------------ @@ -49,19 +49,19 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ tbf2's .plt entry #------------------------------------------------------------------------------ - 9044: e28fc600 add ip, pc, #0 + 9044: e28fc600 add ip, pc, #0, 12 9048: e28cca07 add ip, ip, #28672 ; 0x7000 904c: e5bcffcc ldr pc, \[ip, #4044\]! ; 0xfcc #------------------------------------------------------------------------------ #------ taf2's .plt entry #------------------------------------------------------------------------------ - 9050: e28fc600 add ip, pc, #0 + 9050: e28fc600 add ip, pc, #0, 12 9054: e28cca07 add ip, ip, #28672 ; 0x7000 9058: e5bcffc4 ldr pc, \[ip, #4036\]! ; 0xfc4 #------------------------------------------------------------------------------ #------ aaf2's .plt entry #------------------------------------------------------------------------------ - 905c: e28fc600 add ip, pc, #0 + 905c: e28fc600 add ip, pc, #0, 12 9060: e28cca07 add ip, ip, #28672 ; 0x7000 9064: e5bcffbc ldr pc, \[ip, #4028\]! ; 0xfbc #------------------------------------------------------------------------------ @@ -72,7 +72,7 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ abf4's .plt entry #------------------------------------------------------------------------------ - 906c: e28fc600 add ip, pc, #0 + 906c: e28fc600 add ip, pc, #0, 12 9070: e28cca07 add ip, ip, #28672 ; 0x7000 9074: e5bcffb0 ldr pc, \[ip, #4016\]! ; 0xfb0 #------------------------------------------------------------------------------ @@ -83,7 +83,7 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ tbf4's .plt entry #------------------------------------------------------------------------------ - 907c: e28fc600 add ip, pc, #0 + 907c: e28fc600 add ip, pc, #0, 12 9080: e28cca07 add ip, ip, #28672 ; 0x7000 9084: e5bcffa4 ldr pc, \[ip, #4004\]! ; 0xfa4 #------------------------------------------------------------------------------ @@ -94,7 +94,7 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ ttf4's .plt entry #------------------------------------------------------------------------------ - 908c: e28fc600 add ip, pc, #0 + 908c: e28fc600 add ip, pc, #0, 12 9090: e28cca07 add ip, ip, #28672 ; 0x7000 9094: e5bcff98 ldr pc, \[ip, #3992\]! ; 0xf98 #------------------------------------------------------------------------------ @@ -105,13 +105,13 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ atf4's .plt entry #------------------------------------------------------------------------------ - 909c: e28fc600 add ip, pc, #0 + 909c: e28fc600 add ip, pc, #0, 12 90a0: e28cca07 add ip, ip, #28672 ; 0x7000 90a4: e5bcff8c ldr pc, \[ip, #3980\]! ; 0xf8c #------------------------------------------------------------------------------ #------ taf4's .plt entry #------------------------------------------------------------------------------ - 90a8: e28fc600 add ip, pc, #0 + 90a8: e28fc600 add ip, pc, #0, 12 90ac: e28cca07 add ip, ip, #28672 ; 0x7000 90b0: e5bcff84 ldr pc, \[ip, #3972\]! ; 0xf84 #------------------------------------------------------------------------------ @@ -122,7 +122,7 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ abf2's .plt entry #------------------------------------------------------------------------------ - 90b8: e28fc600 add ip, pc, #0 + 90b8: e28fc600 add ip, pc, #0, 12 90bc: e28cca07 add ip, ip, #28672 ; 0x7000 90c0: e5bcff78 ldr pc, \[ip, #3960\]! ; 0xf78 @@ -132,7 +132,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ aaf1's .iplt entry #------------------------------------------------------------------------------ - 90c4: e28fc600 add ip, pc, #0 + 90c4: e28fc600 add ip, pc, #0, 12 90c8: e28cca07 add ip, ip, #28672 ; 0x7000 90cc: e5bcff70 ldr pc, \[ip, #3952\]! ; 0xf70 #------------------------------------------------------------------------------ @@ -143,7 +143,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ atf1's .iplt entry #------------------------------------------------------------------------------ - 90d4: e28fc600 add ip, pc, #0 + 90d4: e28fc600 add ip, pc, #0, 12 90d8: e28cca07 add ip, ip, #28672 ; 0x7000 90dc: e5bcff64 ldr pc, \[ip, #3940\]! ; 0xf64 #------------------------------------------------------------------------------ @@ -154,13 +154,13 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ abf1's .iplt entry #------------------------------------------------------------------------------ - 90e4: e28fc600 add ip, pc, #0 + 90e4: e28fc600 add ip, pc, #0, 12 90e8: e28cca07 add ip, ip, #28672 ; 0x7000 90ec: e5bcff58 ldr pc, \[ip, #3928\]! ; 0xf58 #------------------------------------------------------------------------------ #------ taf1's .iplt entry #------------------------------------------------------------------------------ - 90f0: e28fc600 add ip, pc, #0 + 90f0: e28fc600 add ip, pc, #0, 12 90f4: e28cca07 add ip, ip, #28672 ; 0x7000 90f8: e5bcff50 ldr pc, \[ip, #3920\]! ; 0xf50 #------------------------------------------------------------------------------ @@ -171,7 +171,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ ttf1's .iplt entry #------------------------------------------------------------------------------ - 9100: e28fc600 add ip, pc, #0 + 9100: e28fc600 add ip, pc, #0, 12 9104: e28cca07 add ip, ip, #28672 ; 0x7000 9108: e5bcff44 ldr pc, \[ip, #3908\]! ; 0xf44 #------------------------------------------------------------------------------ @@ -182,7 +182,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ tbf1's .iplt entry #------------------------------------------------------------------------------ - 9110: e28fc600 add ip, pc, #0 + 9110: e28fc600 add ip, pc, #0, 12 9114: e28cca07 add ip, ip, #28672 ; 0x7000 9118: e5bcff38 ldr pc, \[ip, #3896\]! ; 0xf38 #------------------------------------------------------------------------------ @@ -192,7 +192,7 @@ Disassembly of section \.iplt: 911e: 46c0 nop ; \(mov r8, r8\) 00009120 : - 9120: e28fc600 add ip, pc, #0 + 9120: e28fc600 add ip, pc, #0, 12 9124: e28cca07 add ip, ip, #28672 ; 0x7000 9128: e5bcff2c ldr pc, \[ip, #3884\]! ; 0xf2c #------------------------------------------------------------------------------ @@ -202,7 +202,7 @@ Disassembly of section \.iplt: 912e: 46c0 nop ; \(mov r8, r8\) 00009130 : - 9130: e28fc600 add ip, pc, #0 + 9130: e28fc600 add ip, pc, #0, 12 9134: e28cca07 add ip, ip, #28672 ; 0x7000 9138: e5bcff20 ldr pc, \[ip, #3872\]! ; 0xf20 #------------------------------------------------------------------------------ @@ -212,7 +212,7 @@ Disassembly of section \.iplt: 913e: 46c0 nop ; \(mov r8, r8\) 00009140 : - 9140: e28fc600 add ip, pc, #0 + 9140: e28fc600 add ip, pc, #0, 12 9144: e28cca07 add ip, ip, #28672 ; 0x7000 9148: e5bcff14 ldr pc, \[ip, #3860\]! ; 0xf14 #------------------------------------------------------------------------------ @@ -222,17 +222,17 @@ Disassembly of section \.iplt: 914e: 46c0 nop ; \(mov r8, r8\) 00009150 : - 9150: e28fc600 add ip, pc, #0 + 9150: e28fc600 add ip, pc, #0, 12 9154: e28cca07 add ip, ip, #28672 ; 0x7000 9158: e5bcff08 ldr pc, \[ip, #3848\]! ; 0xf08 0000915c : - 915c: e28fc600 add ip, pc, #0 + 915c: e28fc600 add ip, pc, #0, 12 9160: e28cca07 add ip, ip, #28672 ; 0x7000 9164: e5bcff00 ldr pc, \[ip, #3840\]! ; 0xf00 00009168 : - 9168: e28fc600 add ip, pc, #0 + 9168: e28fc600 add ip, pc, #0, 12 916c: e28cca07 add ip, ip, #28672 ; 0x7000 9170: e5bcfef8 ldr pc, \[ip, #3832\]! ; 0xef8 diff --git a/ld/testsuite/ld-arm/ifunc-14.dd b/ld/testsuite/ld-arm/ifunc-14.dd index 8df338a545..861f687733 100644 --- a/ld/testsuite/ld-arm/ifunc-14.dd +++ b/ld/testsuite/ld-arm/ifunc-14.dd @@ -16,13 +16,13 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ f2t's .plt entry #------------------------------------------------------------------------------ - 9014: e28fc600 add ip, pc, #0 + 9014: e28fc600 add ip, pc, #0, 12 9018: e28cca07 add ip, ip, #28672 ; 0x7000 901c: e5bcfff0 ldr pc, \[ip, #4080\]! ; 0xff0 #------------------------------------------------------------------------------ #------ f2's .plt entry #------------------------------------------------------------------------------ - 9020: e28fc600 add ip, pc, #0 + 9020: e28fc600 add ip, pc, #0, 12 9024: e28cca07 add ip, ip, #28672 ; 0x7000 9028: e5bcffe8 ldr pc, \[ip, #4072\]! ; 0xfe8 @@ -32,23 +32,23 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ f1's .iplt entry #------------------------------------------------------------------------------ - 902c: e28fc600 add ip, pc, #0 + 902c: e28fc600 add ip, pc, #0, 12 9030: e28cca07 add ip, ip, #28672 ; 0x7000 9034: e5bcffe0 ldr pc, \[ip, #4064\]! ; 0xfe0 #------------------------------------------------------------------------------ #------ f1t's .iplt entry #------------------------------------------------------------------------------ - 9038: e28fc600 add ip, pc, #0 + 9038: e28fc600 add ip, pc, #0, 12 903c: e28cca07 add ip, ip, #28672 ; 0x7000 9040: e5bcffd8 ldr pc, \[ip, #4056\]! ; 0xfd8 00009044 : - 9044: e28fc600 add ip, pc, #0 + 9044: e28fc600 add ip, pc, #0, 12 9048: e28cca07 add ip, ip, #28672 ; 0x7000 904c: e5bcffd0 ldr pc, \[ip, #4048\]! ; 0xfd0 00009050 : - 9050: e28fc600 add ip, pc, #0 + 9050: e28fc600 add ip, pc, #0, 12 9054: e28cca07 add ip, ip, #28672 ; 0x7000 9058: e5bcffc8 ldr pc, \[ip, #4040\]! ; 0xfc8 diff --git a/ld/testsuite/ld-arm/ifunc-15.dd b/ld/testsuite/ld-arm/ifunc-15.dd index 886d35512d..d7648410cc 100644 --- a/ld/testsuite/ld-arm/ifunc-15.dd +++ b/ld/testsuite/ld-arm/ifunc-15.dd @@ -16,13 +16,13 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ f2t's .plt entry #------------------------------------------------------------------------------ - 9014: e28fc600 add ip, pc, #0 + 9014: e28fc600 add ip, pc, #0, 12 9018: e28cca07 add ip, ip, #28672 ; 0x7000 901c: e5bcfff0 ldr pc, \[ip, #4080\]! ; 0xff0 #------------------------------------------------------------------------------ #------ f2's .plt entry #------------------------------------------------------------------------------ - 9020: e28fc600 add ip, pc, #0 + 9020: e28fc600 add ip, pc, #0, 12 9024: e28cca07 add ip, ip, #28672 ; 0x7000 9028: e5bcffe8 ldr pc, \[ip, #4072\]! ; 0xfe8 @@ -32,23 +32,23 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ f1's .iplt entry #------------------------------------------------------------------------------ - 902c: e28fc600 add ip, pc, #0 + 902c: e28fc600 add ip, pc, #0, 12 9030: e28cca07 add ip, ip, #28672 ; 0x7000 9034: e5bcffe0 ldr pc, \[ip, #4064\]! ; 0xfe0 #------------------------------------------------------------------------------ #------ f1t's .iplt entry #------------------------------------------------------------------------------ - 9038: e28fc600 add ip, pc, #0 + 9038: e28fc600 add ip, pc, #0, 12 903c: e28cca07 add ip, ip, #28672 ; 0x7000 9040: e5bcffd8 ldr pc, \[ip, #4056\]! ; 0xfd8 00009044 : - 9044: e28fc600 add ip, pc, #0 + 9044: e28fc600 add ip, pc, #0, 12 9048: e28cca07 add ip, ip, #28672 ; 0x7000 904c: e5bcffd0 ldr pc, \[ip, #4048\]! ; 0xfd0 00009050 : - 9050: e28fc600 add ip, pc, #0 + 9050: e28fc600 add ip, pc, #0, 12 9054: e28cca07 add ip, ip, #28672 ; 0x7000 9058: e5bcffc8 ldr pc, \[ip, #4040\]! ; 0xfc8 diff --git a/ld/testsuite/ld-arm/ifunc-16.dd b/ld/testsuite/ld-arm/ifunc-16.dd index d3b39bd7a8..16c2a9739c 100644 --- a/ld/testsuite/ld-arm/ifunc-16.dd +++ b/ld/testsuite/ld-arm/ifunc-16.dd @@ -8,33 +8,33 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ f1's .iplt entry #------------------------------------------------------------------------------ - 9000: e28fc600 add ip, pc, #0 - 9004: e28cca08 add ip, ip, #32768 ; 0x8000 + 9000: e28fc600 add ip, pc, #0, 12 + 9004: e28cca08 add ip, ip, #8, 20 ; 0x8000 9008: e5bcf004 ldr pc, \[ip, #4\]! #------------------------------------------------------------------------------ #------ f1t's .iplt entry #------------------------------------------------------------------------------ - 900c: e28fc600 add ip, pc, #0 + 900c: e28fc600 add ip, pc, #0, 12 9010: e28cca07 add ip, ip, #28672 ; 0x7000 9014: e5bcfffc ldr pc, \[ip, #4092\]! ; 0xffc 00009018 : - 9018: e28fc600 add ip, pc, #0 + 9018: e28fc600 add ip, pc, #0, 12 901c: e28cca07 add ip, ip, #28672 ; 0x7000 9020: e5bcfff4 ldr pc, \[ip, #4084\]! ; 0xff4 00009024 : - 9024: e28fc600 add ip, pc, #0 + 9024: e28fc600 add ip, pc, #0, 12 9028: e28cca07 add ip, ip, #28672 ; 0x7000 902c: e5bcffec ldr pc, \[ip, #4076\]! ; 0xfec 00009030 : - 9030: e28fc600 add ip, pc, #0 + 9030: e28fc600 add ip, pc, #0, 12 9034: e28cca07 add ip, ip, #28672 ; 0x7000 9038: e5bcffe4 ldr pc, \[ip, #4068\]! ; 0xfe4 0000903c : - 903c: e28fc600 add ip, pc, #0 + 903c: e28fc600 add ip, pc, #0, 12 9040: e28cca07 add ip, ip, #28672 ; 0x7000 9044: e5bcffdc ldr pc, \[ip, #4060\]! ; 0xfdc diff --git a/ld/testsuite/ld-arm/ifunc-2.dd b/ld/testsuite/ld-arm/ifunc-2.dd index 994069ceee..f6d57faef9 100644 --- a/ld/testsuite/ld-arm/ifunc-2.dd +++ b/ld/testsuite/ld-arm/ifunc-2.dd @@ -8,13 +8,13 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ f1's .iplt entry #------------------------------------------------------------------------------ - 9000: e28fc600 add ip, pc, #0 - 9004: e28cca08 add ip, ip, #32768 ; 0x8000 + 9000: e28fc600 add ip, pc, #0, 12 + 9004: e28cca08 add ip, ip, #8, 20 ; 0x8000 9008: e5bcf004 ldr pc, \[ip, #4\]! #------------------------------------------------------------------------------ #------ f2's .iplt entry #------------------------------------------------------------------------------ - 900c: e28fc600 add ip, pc, #0 + 900c: e28fc600 add ip, pc, #0, 12 9010: e28cca07 add ip, ip, #28672 ; 0x7000 9014: e5bcfffc ldr pc, \[ip, #4092\]! ; 0xffc #------------------------------------------------------------------------------ @@ -25,7 +25,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ f3's .iplt entry #------------------------------------------------------------------------------ - 901c: e28fc600 add ip, pc, #0 + 901c: e28fc600 add ip, pc, #0, 12 9020: e28cca07 add ip, ip, #28672 ; 0x7000 9024: e5bcfff0 ldr pc, \[ip, #4080\]! ; 0xff0 #------------------------------------------------------------------------------ @@ -36,7 +36,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ f4's .iplt entry #------------------------------------------------------------------------------ - 902c: e28fc600 add ip, pc, #0 + 902c: e28fc600 add ip, pc, #0, 12 9030: e28cca07 add ip, ip, #28672 ; 0x7000 9034: e5bcffe4 ldr pc, \[ip, #4068\]! ; 0xfe4 #------------------------------------------------------------------------------ @@ -46,12 +46,12 @@ Disassembly of section \.iplt: 903a: 46c0 nop ; \(mov r8, r8\) 0000903c : - 903c: e28fc600 add ip, pc, #0 + 903c: e28fc600 add ip, pc, #0, 12 9040: e28cca07 add ip, ip, #28672 ; 0x7000 9044: e5bcffd8 ldr pc, \[ip, #4056\]! ; 0xfd8 00009048 : - 9048: e28fc600 add ip, pc, #0 + 9048: e28fc600 add ip, pc, #0, 12 904c: e28cca07 add ip, ip, #28672 ; 0x7000 9050: e5bcffd0 ldr pc, \[ip, #4048\]! ; 0xfd0 #------------------------------------------------------------------------------ @@ -61,12 +61,12 @@ Disassembly of section \.iplt: 9056: 46c0 nop ; \(mov r8, r8\) 00009058 : - 9058: e28fc600 add ip, pc, #0 + 9058: e28fc600 add ip, pc, #0, 12 905c: e28cca07 add ip, ip, #28672 ; 0x7000 9060: e5bcffc4 ldr pc, \[ip, #4036\]! ; 0xfc4 00009064 : - 9064: e28fc600 add ip, pc, #0 + 9064: e28fc600 add ip, pc, #0, 12 9068: e28cca07 add ip, ip, #28672 ; 0x7000 906c: e5bcffbc ldr pc, \[ip, #4028\]! ; 0xfbc diff --git a/ld/testsuite/ld-arm/ifunc-3.dd b/ld/testsuite/ld-arm/ifunc-3.dd index 824d516ecc..a1fb37a8e9 100644 --- a/ld/testsuite/ld-arm/ifunc-3.dd +++ b/ld/testsuite/ld-arm/ifunc-3.dd @@ -16,7 +16,7 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ f2's .plt entry #------------------------------------------------------------------------------ - 9014: e28fc600 add ip, pc, #0 + 9014: e28fc600 add ip, pc, #0, 12 9018: e28cca07 add ip, ip, #28672 ; 0x7000 901c: e5bcfff0 ldr pc, \[ip, #4080\]! ; 0xff0 @@ -26,19 +26,19 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ f1's .iplt entry #------------------------------------------------------------------------------ - 9020: e28fc600 add ip, pc, #0 + 9020: e28fc600 add ip, pc, #0, 12 9024: e28cca07 add ip, ip, #28672 ; 0x7000 9028: e5bcffe8 ldr pc, \[ip, #4072\]! ; 0xfe8 #------------------------------------------------------------------------------ #------ f3's .iplt entry #------------------------------------------------------------------------------ - 902c: e28fc600 add ip, pc, #0 + 902c: e28fc600 add ip, pc, #0, 12 9030: e28cca07 add ip, ip, #28672 ; 0x7000 9034: e5bcffe0 ldr pc, \[ip, #4064\]! ; 0xfe0 #------------------------------------------------------------------------------ #------ f4's .iplt entry #------------------------------------------------------------------------------ - 9038: e28fc600 add ip, pc, #0 + 9038: e28fc600 add ip, pc, #0, 12 903c: e28cca07 add ip, ip, #28672 ; 0x7000 9040: e5bcffd8 ldr pc, \[ip, #4056\]! ; 0xfd8 diff --git a/ld/testsuite/ld-arm/ifunc-4.dd b/ld/testsuite/ld-arm/ifunc-4.dd index afac39780a..f5a4d9190b 100644 --- a/ld/testsuite/ld-arm/ifunc-4.dd +++ b/ld/testsuite/ld-arm/ifunc-4.dd @@ -21,7 +21,7 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ atf2's .plt entry #------------------------------------------------------------------------------ - 9018: e28fc600 add ip, pc, #0 + 9018: e28fc600 add ip, pc, #0, 12 901c: e28cca07 add ip, ip, #28672 ; 0x7000 9020: e5bcffec ldr pc, \[ip, #4076\]! ; 0xfec #------------------------------------------------------------------------------ @@ -32,7 +32,7 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ ttf2's .plt entry #------------------------------------------------------------------------------ - 9028: e28fc600 add ip, pc, #0 + 9028: e28fc600 add ip, pc, #0, 12 902c: e28cca07 add ip, ip, #28672 ; 0x7000 9030: e5bcffe0 ldr pc, \[ip, #4064\]! ; 0xfe0 #------------------------------------------------------------------------------ @@ -43,19 +43,19 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ tbf2's .plt entry #------------------------------------------------------------------------------ - 9038: e28fc600 add ip, pc, #0 + 9038: e28fc600 add ip, pc, #0, 12 903c: e28cca07 add ip, ip, #28672 ; 0x7000 9040: e5bcffd4 ldr pc, \[ip, #4052\]! ; 0xfd4 #------------------------------------------------------------------------------ #------ taf2's .plt entry #------------------------------------------------------------------------------ - 9044: e28fc600 add ip, pc, #0 + 9044: e28fc600 add ip, pc, #0, 12 9048: e28cca07 add ip, ip, #28672 ; 0x7000 904c: e5bcffcc ldr pc, \[ip, #4044\]! ; 0xfcc #------------------------------------------------------------------------------ #------ aaf2's .plt entry #------------------------------------------------------------------------------ - 9050: e28fc600 add ip, pc, #0 + 9050: e28fc600 add ip, pc, #0, 12 9054: e28cca07 add ip, ip, #28672 ; 0x7000 9058: e5bcffc4 ldr pc, \[ip, #4036\]! ; 0xfc4 #------------------------------------------------------------------------------ @@ -66,7 +66,7 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ abf2's .plt entry #------------------------------------------------------------------------------ - 9060: e28fc600 add ip, pc, #0 + 9060: e28fc600 add ip, pc, #0, 12 9064: e28cca07 add ip, ip, #28672 ; 0x7000 9068: e5bcffb8 ldr pc, \[ip, #4024\]! ; 0xfb8 @@ -76,7 +76,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ aaf1's .iplt entry #------------------------------------------------------------------------------ - 906c: e28fc600 add ip, pc, #0 + 906c: e28fc600 add ip, pc, #0, 12 9070: e28cca07 add ip, ip, #28672 ; 0x7000 9074: e5bcffb0 ldr pc, \[ip, #4016\]! ; 0xfb0 #------------------------------------------------------------------------------ @@ -87,7 +87,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ atf1's .iplt entry #------------------------------------------------------------------------------ - 907c: e28fc600 add ip, pc, #0 + 907c: e28fc600 add ip, pc, #0, 12 9080: e28cca07 add ip, ip, #28672 ; 0x7000 9084: e5bcffa4 ldr pc, \[ip, #4004\]! ; 0xfa4 #------------------------------------------------------------------------------ @@ -98,13 +98,13 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ abf1's .iplt entry #------------------------------------------------------------------------------ - 908c: e28fc600 add ip, pc, #0 + 908c: e28fc600 add ip, pc, #0, 12 9090: e28cca07 add ip, ip, #28672 ; 0x7000 9094: e5bcff98 ldr pc, \[ip, #3992\]! ; 0xf98 #------------------------------------------------------------------------------ #------ taf1's .iplt entry #------------------------------------------------------------------------------ - 9098: e28fc600 add ip, pc, #0 + 9098: e28fc600 add ip, pc, #0, 12 909c: e28cca07 add ip, ip, #28672 ; 0x7000 90a0: e5bcff90 ldr pc, \[ip, #3984\]! ; 0xf90 #------------------------------------------------------------------------------ @@ -115,7 +115,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ ttf1's .iplt entry #------------------------------------------------------------------------------ - 90a8: e28fc600 add ip, pc, #0 + 90a8: e28fc600 add ip, pc, #0, 12 90ac: e28cca07 add ip, ip, #28672 ; 0x7000 90b0: e5bcff84 ldr pc, \[ip, #3972\]! ; 0xf84 #------------------------------------------------------------------------------ @@ -126,13 +126,13 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ tbf1's .iplt entry #------------------------------------------------------------------------------ - 90b8: e28fc600 add ip, pc, #0 + 90b8: e28fc600 add ip, pc, #0, 12 90bc: e28cca07 add ip, ip, #28672 ; 0x7000 90c0: e5bcff78 ldr pc, \[ip, #3960\]! ; 0xf78 #------------------------------------------------------------------------------ #------ aaf4's .iplt entry #------------------------------------------------------------------------------ - 90c4: e28fc600 add ip, pc, #0 + 90c4: e28fc600 add ip, pc, #0, 12 90c8: e28cca07 add ip, ip, #28672 ; 0x7000 90cc: e5bcff70 ldr pc, \[ip, #3952\]! ; 0xf70 #------------------------------------------------------------------------------ @@ -143,7 +143,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ atf3's .iplt entry #------------------------------------------------------------------------------ - 90d4: e28fc600 add ip, pc, #0 + 90d4: e28fc600 add ip, pc, #0, 12 90d8: e28cca07 add ip, ip, #28672 ; 0x7000 90dc: e5bcff64 ldr pc, \[ip, #3940\]! ; 0xf64 #------------------------------------------------------------------------------ @@ -154,7 +154,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ abf3's .iplt entry #------------------------------------------------------------------------------ - 90e4: e28fc600 add ip, pc, #0 + 90e4: e28fc600 add ip, pc, #0, 12 90e8: e28cca07 add ip, ip, #28672 ; 0x7000 90ec: e5bcff58 ldr pc, \[ip, #3928\]! ; 0xf58 #------------------------------------------------------------------------------ @@ -165,7 +165,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ ttf3's .iplt entry #------------------------------------------------------------------------------ - 90f4: e28fc600 add ip, pc, #0 + 90f4: e28fc600 add ip, pc, #0, 12 90f8: e28cca07 add ip, ip, #28672 ; 0x7000 90fc: e5bcff4c ldr pc, \[ip, #3916\]! ; 0xf4c #------------------------------------------------------------------------------ @@ -176,13 +176,13 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ tbf3's .iplt entry #------------------------------------------------------------------------------ - 9104: e28fc600 add ip, pc, #0 + 9104: e28fc600 add ip, pc, #0, 12 9108: e28cca07 add ip, ip, #28672 ; 0x7000 910c: e5bcff40 ldr pc, \[ip, #3904\]! ; 0xf40 #------------------------------------------------------------------------------ #------ taf3's .iplt entry #------------------------------------------------------------------------------ - 9110: e28fc600 add ip, pc, #0 + 9110: e28fc600 add ip, pc, #0, 12 9114: e28cca07 add ip, ip, #28672 ; 0x7000 9118: e5bcff38 ldr pc, \[ip, #3896\]! ; 0xf38 #------------------------------------------------------------------------------ @@ -193,7 +193,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ abf4's .iplt entry #------------------------------------------------------------------------------ - 9120: e28fc600 add ip, pc, #0 + 9120: e28fc600 add ip, pc, #0, 12 9124: e28cca07 add ip, ip, #28672 ; 0x7000 9128: e5bcff2c ldr pc, \[ip, #3884\]! ; 0xf2c #------------------------------------------------------------------------------ @@ -204,7 +204,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ tbf4's .iplt entry #------------------------------------------------------------------------------ - 9130: e28fc600 add ip, pc, #0 + 9130: e28fc600 add ip, pc, #0, 12 9134: e28cca07 add ip, ip, #28672 ; 0x7000 9138: e5bcff20 ldr pc, \[ip, #3872\]! ; 0xf20 #------------------------------------------------------------------------------ @@ -215,13 +215,13 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ ttf4's .iplt entry #------------------------------------------------------------------------------ - 9140: e28fc600 add ip, pc, #0 + 9140: e28fc600 add ip, pc, #0, 12 9144: e28cca07 add ip, ip, #28672 ; 0x7000 9148: e5bcff14 ldr pc, \[ip, #3860\]! ; 0xf14 #------------------------------------------------------------------------------ #------ aaf3's .iplt entry #------------------------------------------------------------------------------ - 914c: e28fc600 add ip, pc, #0 + 914c: e28fc600 add ip, pc, #0, 12 9150: e28cca07 add ip, ip, #28672 ; 0x7000 9154: e5bcff0c ldr pc, \[ip, #3852\]! ; 0xf0c #------------------------------------------------------------------------------ @@ -232,13 +232,13 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ atf4's .iplt entry #------------------------------------------------------------------------------ - 915c: e28fc600 add ip, pc, #0 + 915c: e28fc600 add ip, pc, #0, 12 9160: e28cca07 add ip, ip, #28672 ; 0x7000 9164: e5bcff00 ldr pc, \[ip, #3840\]! ; 0xf00 #------------------------------------------------------------------------------ #------ taf4's .iplt entry #------------------------------------------------------------------------------ - 9168: e28fc600 add ip, pc, #0 + 9168: e28fc600 add ip, pc, #0, 12 916c: e28cca07 add ip, ip, #28672 ; 0x7000 9170: e5bcfef8 ldr pc, \[ip, #3832\]! ; 0xef8 diff --git a/ld/testsuite/ld-arm/ifunc-5.dd b/ld/testsuite/ld-arm/ifunc-5.dd index 0fe8255c98..b0bf5979a8 100644 --- a/ld/testsuite/ld-arm/ifunc-5.dd +++ b/ld/testsuite/ld-arm/ifunc-5.dd @@ -8,19 +8,19 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ f1's .iplt entry #------------------------------------------------------------------------------ - 9000: e28fc600 add ip, pc, #0 - 9004: e28cca08 add ip, ip, #32768 ; 0x8000 + 9000: e28fc600 add ip, pc, #0, 12 + 9004: e28cca08 add ip, ip, #8, 20 ; 0x8000 9008: e5bcf004 ldr pc, \[ip, #4\]! #------------------------------------------------------------------------------ #------ f3's .iplt entry #------------------------------------------------------------------------------ - 900c: e28fc600 add ip, pc, #0 + 900c: e28fc600 add ip, pc, #0, 12 9010: e28cca07 add ip, ip, #28672 ; 0x7000 9014: e5bcfffc ldr pc, \[ip, #4092\]! ; 0xffc #------------------------------------------------------------------------------ #------ f2's .iplt entry #------------------------------------------------------------------------------ - 9018: e28fc600 add ip, pc, #0 + 9018: e28fc600 add ip, pc, #0, 12 901c: e28cca07 add ip, ip, #28672 ; 0x7000 9020: e5bcfff4 ldr pc, \[ip, #4084\]! ; 0xff4 diff --git a/ld/testsuite/ld-arm/ifunc-6.dd b/ld/testsuite/ld-arm/ifunc-6.dd index c78c8d4d56..3c9cbd5351 100644 --- a/ld/testsuite/ld-arm/ifunc-6.dd +++ b/ld/testsuite/ld-arm/ifunc-6.dd @@ -13,13 +13,13 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ f3's .iplt entry #------------------------------------------------------------------------------ - 9004: e28fc600 add ip, pc, #0 - 9008: e28cca08 add ip, ip, #32768 ; 0x8000 + 9004: e28fc600 add ip, pc, #0, 12 + 9008: e28cca08 add ip, ip, #8, 20 ; 0x8000 900c: e5bcf000 ldr pc, \[ip, #0\]! #------------------------------------------------------------------------------ #------ f2's .iplt entry #------------------------------------------------------------------------------ - 9010: e28fc600 add ip, pc, #0 + 9010: e28fc600 add ip, pc, #0, 12 9014: e28cca07 add ip, ip, #28672 ; 0x7000 9018: e5bcfff8 ldr pc, \[ip, #4088\]! ; 0xff8 #------------------------------------------------------------------------------ @@ -30,13 +30,13 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ f4's .iplt entry #------------------------------------------------------------------------------ - 9020: e28fc600 add ip, pc, #0 + 9020: e28fc600 add ip, pc, #0, 12 9024: e28cca07 add ip, ip, #28672 ; 0x7000 9028: e5bcffec ldr pc, \[ip, #4076\]! ; 0xfec #------------------------------------------------------------------------------ #------ f1's .iplt entry #------------------------------------------------------------------------------ - 902c: e28fc600 add ip, pc, #0 + 902c: e28fc600 add ip, pc, #0, 12 9030: e28cca07 add ip, ip, #28672 ; 0x7000 9034: e5bcffe4 ldr pc, \[ip, #4068\]! ; 0xfe4 diff --git a/ld/testsuite/ld-arm/ifunc-7.dd b/ld/testsuite/ld-arm/ifunc-7.dd index 5db88fb133..e9a9681464 100644 --- a/ld/testsuite/ld-arm/ifunc-7.dd +++ b/ld/testsuite/ld-arm/ifunc-7.dd @@ -16,13 +16,13 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ f2's .plt entry #------------------------------------------------------------------------------ - 9014: e28fc600 add ip, pc, #0 + 9014: e28fc600 add ip, pc, #0, 12 9018: e28cca07 add ip, ip, #28672 ; 0x7000 901c: e5bcfff0 ldr pc, \[ip, #4080\]! ; 0xff0 #------------------------------------------------------------------------------ #------ f4's .plt entry #------------------------------------------------------------------------------ - 9020: e28fc600 add ip, pc, #0 + 9020: e28fc600 add ip, pc, #0, 12 9024: e28cca07 add ip, ip, #28672 ; 0x7000 9028: e5bcffe8 ldr pc, \[ip, #4072\]! ; 0xfe8 @@ -32,13 +32,13 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ f1's .iplt entry #------------------------------------------------------------------------------ - 902c: e28fc600 add ip, pc, #0 + 902c: e28fc600 add ip, pc, #0, 12 9030: e28cca07 add ip, ip, #28672 ; 0x7000 9034: e5bcffe0 ldr pc, \[ip, #4064\]! ; 0xfe0 #------------------------------------------------------------------------------ #------ f3's .iplt entry #------------------------------------------------------------------------------ - 9038: e28fc600 add ip, pc, #0 + 9038: e28fc600 add ip, pc, #0, 12 903c: e28cca07 add ip, ip, #28672 ; 0x7000 9040: e5bcffd8 ldr pc, \[ip, #4056\]! ; 0xfd8 diff --git a/ld/testsuite/ld-arm/ifunc-8.dd b/ld/testsuite/ld-arm/ifunc-8.dd index f14ab34f69..5b255e2e5f 100644 --- a/ld/testsuite/ld-arm/ifunc-8.dd +++ b/ld/testsuite/ld-arm/ifunc-8.dd @@ -21,13 +21,13 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ atf2's .plt entry #------------------------------------------------------------------------------ - 9018: e28fc600 add ip, pc, #0 + 9018: e28fc600 add ip, pc, #0, 12 901c: e28cca07 add ip, ip, #28672 ; 0x7000 9020: e5bcffec ldr pc, \[ip, #4076\]! ; 0xfec #------------------------------------------------------------------------------ #------ aaf4's .plt entry #------------------------------------------------------------------------------ - 9024: e28fc600 add ip, pc, #0 + 9024: e28fc600 add ip, pc, #0, 12 9028: e28cca07 add ip, ip, #28672 ; 0x7000 902c: e5bcffe4 ldr pc, \[ip, #4068\]! ; 0xfe4 #------------------------------------------------------------------------------ @@ -38,7 +38,7 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ ttf2's .plt entry #------------------------------------------------------------------------------ - 9034: e28fc600 add ip, pc, #0 + 9034: e28fc600 add ip, pc, #0, 12 9038: e28cca07 add ip, ip, #28672 ; 0x7000 903c: e5bcffd8 ldr pc, \[ip, #4056\]! ; 0xfd8 #------------------------------------------------------------------------------ @@ -49,19 +49,19 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ tbf2's .plt entry #------------------------------------------------------------------------------ - 9044: e28fc600 add ip, pc, #0 + 9044: e28fc600 add ip, pc, #0, 12 9048: e28cca07 add ip, ip, #28672 ; 0x7000 904c: e5bcffcc ldr pc, \[ip, #4044\]! ; 0xfcc #------------------------------------------------------------------------------ #------ taf2's .plt entry #------------------------------------------------------------------------------ - 9050: e28fc600 add ip, pc, #0 + 9050: e28fc600 add ip, pc, #0, 12 9054: e28cca07 add ip, ip, #28672 ; 0x7000 9058: e5bcffc4 ldr pc, \[ip, #4036\]! ; 0xfc4 #------------------------------------------------------------------------------ #------ aaf2's .plt entry #------------------------------------------------------------------------------ - 905c: e28fc600 add ip, pc, #0 + 905c: e28fc600 add ip, pc, #0, 12 9060: e28cca07 add ip, ip, #28672 ; 0x7000 9064: e5bcffbc ldr pc, \[ip, #4028\]! ; 0xfbc #------------------------------------------------------------------------------ @@ -72,7 +72,7 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ abf4's .plt entry #------------------------------------------------------------------------------ - 906c: e28fc600 add ip, pc, #0 + 906c: e28fc600 add ip, pc, #0, 12 9070: e28cca07 add ip, ip, #28672 ; 0x7000 9074: e5bcffb0 ldr pc, \[ip, #4016\]! ; 0xfb0 #------------------------------------------------------------------------------ @@ -83,7 +83,7 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ tbf4's .plt entry #------------------------------------------------------------------------------ - 907c: e28fc600 add ip, pc, #0 + 907c: e28fc600 add ip, pc, #0, 12 9080: e28cca07 add ip, ip, #28672 ; 0x7000 9084: e5bcffa4 ldr pc, \[ip, #4004\]! ; 0xfa4 #------------------------------------------------------------------------------ @@ -94,7 +94,7 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ ttf4's .plt entry #------------------------------------------------------------------------------ - 908c: e28fc600 add ip, pc, #0 + 908c: e28fc600 add ip, pc, #0, 12 9090: e28cca07 add ip, ip, #28672 ; 0x7000 9094: e5bcff98 ldr pc, \[ip, #3992\]! ; 0xf98 #------------------------------------------------------------------------------ @@ -105,13 +105,13 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ atf4's .plt entry #------------------------------------------------------------------------------ - 909c: e28fc600 add ip, pc, #0 + 909c: e28fc600 add ip, pc, #0, 12 90a0: e28cca07 add ip, ip, #28672 ; 0x7000 90a4: e5bcff8c ldr pc, \[ip, #3980\]! ; 0xf8c #------------------------------------------------------------------------------ #------ taf4's .plt entry #------------------------------------------------------------------------------ - 90a8: e28fc600 add ip, pc, #0 + 90a8: e28fc600 add ip, pc, #0, 12 90ac: e28cca07 add ip, ip, #28672 ; 0x7000 90b0: e5bcff84 ldr pc, \[ip, #3972\]! ; 0xf84 #------------------------------------------------------------------------------ @@ -122,7 +122,7 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ abf2's .plt entry #------------------------------------------------------------------------------ - 90b8: e28fc600 add ip, pc, #0 + 90b8: e28fc600 add ip, pc, #0, 12 90bc: e28cca07 add ip, ip, #28672 ; 0x7000 90c0: e5bcff78 ldr pc, \[ip, #3960\]! ; 0xf78 @@ -132,7 +132,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ aaf1's .iplt entry #------------------------------------------------------------------------------ - 90c4: e28fc600 add ip, pc, #0 + 90c4: e28fc600 add ip, pc, #0, 12 90c8: e28cca07 add ip, ip, #28672 ; 0x7000 90cc: e5bcff70 ldr pc, \[ip, #3952\]! ; 0xf70 #------------------------------------------------------------------------------ @@ -143,7 +143,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ atf1's .iplt entry #------------------------------------------------------------------------------ - 90d4: e28fc600 add ip, pc, #0 + 90d4: e28fc600 add ip, pc, #0, 12 90d8: e28cca07 add ip, ip, #28672 ; 0x7000 90dc: e5bcff64 ldr pc, \[ip, #3940\]! ; 0xf64 #------------------------------------------------------------------------------ @@ -154,13 +154,13 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ abf1's .iplt entry #------------------------------------------------------------------------------ - 90e4: e28fc600 add ip, pc, #0 + 90e4: e28fc600 add ip, pc, #0, 12 90e8: e28cca07 add ip, ip, #28672 ; 0x7000 90ec: e5bcff58 ldr pc, \[ip, #3928\]! ; 0xf58 #------------------------------------------------------------------------------ #------ taf1's .iplt entry #------------------------------------------------------------------------------ - 90f0: e28fc600 add ip, pc, #0 + 90f0: e28fc600 add ip, pc, #0, 12 90f4: e28cca07 add ip, ip, #28672 ; 0x7000 90f8: e5bcff50 ldr pc, \[ip, #3920\]! ; 0xf50 #------------------------------------------------------------------------------ @@ -171,7 +171,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ ttf1's .iplt entry #------------------------------------------------------------------------------ - 9100: e28fc600 add ip, pc, #0 + 9100: e28fc600 add ip, pc, #0, 12 9104: e28cca07 add ip, ip, #28672 ; 0x7000 9108: e5bcff44 ldr pc, \[ip, #3908\]! ; 0xf44 #------------------------------------------------------------------------------ @@ -182,7 +182,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ tbf1's .iplt entry #------------------------------------------------------------------------------ - 9110: e28fc600 add ip, pc, #0 + 9110: e28fc600 add ip, pc, #0, 12 9114: e28cca07 add ip, ip, #28672 ; 0x7000 9118: e5bcff38 ldr pc, \[ip, #3896\]! ; 0xf38 #------------------------------------------------------------------------------ @@ -193,7 +193,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ atf3's .iplt entry #------------------------------------------------------------------------------ - 9120: e28fc600 add ip, pc, #0 + 9120: e28fc600 add ip, pc, #0, 12 9124: e28cca07 add ip, ip, #28672 ; 0x7000 9128: e5bcff2c ldr pc, \[ip, #3884\]! ; 0xf2c #------------------------------------------------------------------------------ @@ -204,7 +204,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ abf3's .iplt entry #------------------------------------------------------------------------------ - 9130: e28fc600 add ip, pc, #0 + 9130: e28fc600 add ip, pc, #0, 12 9134: e28cca07 add ip, ip, #28672 ; 0x7000 9138: e5bcff20 ldr pc, \[ip, #3872\]! ; 0xf20 #------------------------------------------------------------------------------ @@ -215,7 +215,7 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ ttf3's .iplt entry #------------------------------------------------------------------------------ - 9140: e28fc600 add ip, pc, #0 + 9140: e28fc600 add ip, pc, #0, 12 9144: e28cca07 add ip, ip, #28672 ; 0x7000 9148: e5bcff14 ldr pc, \[ip, #3860\]! ; 0xf14 #------------------------------------------------------------------------------ @@ -226,19 +226,19 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ tbf3's .iplt entry #------------------------------------------------------------------------------ - 9150: e28fc600 add ip, pc, #0 + 9150: e28fc600 add ip, pc, #0, 12 9154: e28cca07 add ip, ip, #28672 ; 0x7000 9158: e5bcff08 ldr pc, \[ip, #3848\]! ; 0xf08 #------------------------------------------------------------------------------ #------ taf3's .iplt entry #------------------------------------------------------------------------------ - 915c: e28fc600 add ip, pc, #0 + 915c: e28fc600 add ip, pc, #0, 12 9160: e28cca07 add ip, ip, #28672 ; 0x7000 9164: e5bcff00 ldr pc, \[ip, #3840\]! ; 0xf00 #------------------------------------------------------------------------------ #------ aaf3's .iplt entry #------------------------------------------------------------------------------ - 9168: e28fc600 add ip, pc, #0 + 9168: e28fc600 add ip, pc, #0, 12 916c: e28cca07 add ip, ip, #28672 ; 0x7000 9170: e5bcfef8 ldr pc, \[ip, #3832\]! ; 0xef8 diff --git a/ld/testsuite/ld-arm/ifunc-9.dd b/ld/testsuite/ld-arm/ifunc-9.dd index be8f3d04f4..36139d9c4b 100644 --- a/ld/testsuite/ld-arm/ifunc-9.dd +++ b/ld/testsuite/ld-arm/ifunc-9.dd @@ -16,7 +16,7 @@ Disassembly of section \.plt: #------------------------------------------------------------------------------ #------ f2's .plt entry #------------------------------------------------------------------------------ - 9014: e28fc600 add ip, pc, #0 + 9014: e28fc600 add ip, pc, #0, 12 9018: e28cca07 add ip, ip, #28672 ; 0x7000 901c: e5bcfff0 ldr pc, \[ip, #4080\]! ; 0xff0 @@ -26,12 +26,12 @@ Disassembly of section \.iplt: #------------------------------------------------------------------------------ #------ f1's .iplt entry #------------------------------------------------------------------------------ - 9020: e28fc600 add ip, pc, #0 + 9020: e28fc600 add ip, pc, #0, 12 9024: e28cca07 add ip, ip, #28672 ; 0x7000 9028: e5bcffe8 ldr pc, \[ip, #4072\]! ; 0xfe8 0000902c : - 902c: e28fc600 add ip, pc, #0 + 902c: e28fc600 add ip, pc, #0, 12 9030: e28cca07 add ip, ip, #28672 ; 0x7000 9034: e5bcffe0 ldr pc, \[ip, #4064\]! ; 0xfe0 diff --git a/opcodes/ChangeLog b/opcodes/ChangeLog index 42dcc60700..e14b99fd38 100644 --- a/opcodes/ChangeLog +++ b/opcodes/ChangeLog @@ -1,3 +1,8 @@ +2011-10-18 Jie Zhang + Julian Brown + + * arm-dis.c (print_insn_arm): Explicitly specify rotation if needed. + 2011-10-10 Nick Clifton * po/es.po: Updated Spanish translation. diff --git a/opcodes/arm-dis.c b/opcodes/arm-dis.c index fafa7f6853..03062ad4d9 100644 --- a/opcodes/arm-dis.c +++ b/opcodes/arm-dis.c @@ -3140,13 +3140,23 @@ print_insn_arm (bfd_vma pc, struct disassemble_info *info, long given) case 'o': if ((given & 0x02000000) != 0) { - int rotate = (given & 0xf00) >> 7; - int immed = (given & 0xff); + unsigned int rotate = (given & 0xf00) >> 7; + unsigned int immed = (given & 0xff); + unsigned int a, i; - immed = (((immed << (32 - rotate)) - | (immed >> rotate)) & 0xffffffff); - func (stream, "#%d", immed); - value_in_comment = immed; + a = (((immed << (32 - rotate)) + | (immed >> rotate)) & 0xffffffff); + /* If there is another encoding with smaller rotate, + the rotate should be specified directly. */ + for (i = 0; i < 32; i += 2) + if ((a << i | a >> (32 - i)) <= 0xff) + break; + + if (i != rotate) + func (stream, "#%d, %d", immed, rotate); + else + func (stream, "#%d", a); + value_in_comment = a; } else arm_decode_shift (given, func, stream, TRUE);