This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
[PATCH, ARM] Fix assembly & disassembly of ARM immediates with explicit rotations
- From: Julian Brown <julian at codesourcery dot com>
- To: binutils at sourceware dot org
- Date: Thu, 13 Oct 2011 19:12:00 +0100
- Subject: [PATCH, ARM] Fix assembly & disassembly of ARM immediates with explicit rotations
Hi,
This patch (originally by Jie Zhang) fixes assembly and disassembly of
immediates with explicit rotations, and tweaks the expected output of
several tests which use non-canonical immediate representations to
match the revised disassembled output.
Disassembly only uses explicit-rotation syntax if the immediate in
question uses a non-canonical form, i.e. if it does not use a minimal
rotation amount. PLT entries (in particular) use a non-canonical form
of immediate, hence the changes in test output (changing the form of
the PLT entries themselves is, I think, unwise).
OK to apply?
Thanks,
Julian
ChangeLog
Jie Zhang <jie@codesourcery.com>
Julian Brown <julian@codesourcery.com>
gas/
* config/tc-arm.c (parse_shifter_operand): Fix handling
of explicit rotation.
(encode_arm_shifter_operand): Likewise.
gas/testsuite/
* gas/arm/adrl.d: Adjust.
* gas/arm/immed2.d: New test.
* gas/arm/immed2.s: New test.
ld/testsuite/
* 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.
opcodes/
* arm-dis.c (print_insn_arm): Explicitly specify rotation
if needed.
Index: gas/config/tc-arm.c
===================================================================
RCS file: /cvs/src/src/gas/config/tc-arm.c,v
retrieving revision 1.501
diff -u -p -r1.501 tc-arm.c
--- gas/config/tc-arm.c 13 Oct 2011 08:15:15 -0000 1.501
+++ gas/config/tc-arm.c 13 Oct 2011 17:20:42 -0000
@@ -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. */
Index: gas/testsuite/gas/arm/adrl.d
===================================================================
RCS file: /cvs/src/src/gas/testsuite/gas/arm/adrl.d,v
retrieving revision 1.7
diff -u -p -r1.7 adrl.d
--- gas/testsuite/gas/arm/adrl.d 30 Jun 2009 11:57:05 -0000 1.7
+++ gas/testsuite/gas/arm/adrl.d 13 Oct 2011 17:20:42 -0000
@@ -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\)
...
Index: gas/testsuite/gas/arm/immed2.d
===================================================================
RCS file: gas/testsuite/gas/arm/immed2.d
diff -N gas/testsuite/gas/arm/immed2.d
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/arm/immed2.d 13 Oct 2011 17:20:42 -0000
@@ -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
Index: gas/testsuite/gas/arm/immed2.s
===================================================================
RCS file: gas/testsuite/gas/arm/immed2.s
diff -N gas/testsuite/gas/arm/immed2.s
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ gas/testsuite/gas/arm/immed2.s 13 Oct 2011 17:20:42 -0000
@@ -0,0 +1,4 @@
+@ Tests for modified immediate constants with specified rotate
+ .text
+bar:
+ cmplt r1, #0x9c, 4
Index: ld/testsuite/ld-arm/cortex-a8-fix-b-plt.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/cortex-a8-fix-b-plt.d,v
retrieving revision 1.1
diff -u -p -r1.1 cortex-a8-fix-b-plt.d
--- ld/testsuite/ld-arm/cortex-a8-fix-b-plt.d 6 May 2011 10:21:32 -0000 1.1
+++ ld/testsuite/ld-arm/cortex-a8-fix-b-plt.d 13 Oct 2011 17:20:42 -0000
@@ -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:
Index: ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.d,v
retrieving revision 1.2
diff -u -p -r1.2 cortex-a8-fix-bcc-plt.d
--- ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.d 2 Jun 2011 15:32:09 -0000 1.2
+++ ld/testsuite/ld-arm/cortex-a8-fix-bcc-plt.d 13 Oct 2011 17:20:42 -0000
@@ -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\]!
Index: ld/testsuite/ld-arm/cortex-a8-fix-bl-plt.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/cortex-a8-fix-bl-plt.d,v
retrieving revision 1.1
diff -u -p -r1.1 cortex-a8-fix-bl-plt.d
--- ld/testsuite/ld-arm/cortex-a8-fix-bl-plt.d 6 May 2011 10:21:32 -0000 1.1
+++ ld/testsuite/ld-arm/cortex-a8-fix-bl-plt.d 13 Oct 2011 17:20:42 -0000
@@ -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:
Index: ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-plt.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-plt.d,v
retrieving revision 1.1
diff -u -p -r1.1 cortex-a8-fix-bl-rel-plt.d
--- ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-plt.d 7 May 2010 18:24:48 -0000 1.1
+++ ld/testsuite/ld-arm/cortex-a8-fix-bl-rel-plt.d 13 Oct 2011 17:20:42 -0000
@@ -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:
Index: ld/testsuite/ld-arm/cortex-a8-fix-blx-plt.d
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/cortex-a8-fix-blx-plt.d,v
retrieving revision 1.1
diff -u -p -r1.1 cortex-a8-fix-blx-plt.d
--- ld/testsuite/ld-arm/cortex-a8-fix-blx-plt.d 6 May 2011 10:21:32 -0000 1.1
+++ ld/testsuite/ld-arm/cortex-a8-fix-blx-plt.d 13 Oct 2011 17:20:42 -0000
@@ -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:
Index: ld/testsuite/ld-arm/ifunc-1.dd
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/ifunc-1.dd,v
retrieving revision 1.1
diff -u -p -r1.1 ifunc-1.dd
--- ld/testsuite/ld-arm/ifunc-1.dd 14 Mar 2011 16:04:14 -0000 1.1
+++ ld/testsuite/ld-arm/ifunc-1.dd 13 Oct 2011 17:20:42 -0000
@@ -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 <f3>:
- 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 <f2>:
- 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
Index: ld/testsuite/ld-arm/ifunc-10.dd
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/ifunc-10.dd,v
retrieving revision 1.2
diff -u -p -r1.2 ifunc-10.dd
--- ld/testsuite/ld-arm/ifunc-10.dd 2 Jun 2011 15:32:10 -0000 1.2
+++ ld/testsuite/ld-arm/ifunc-10.dd 13 Oct 2011 17:20:42 -0000
@@ -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 <atf3>:
- 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 <abf3>:
- 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 <ttf3>:
- 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 <tbf3>:
- 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 <taf3>:
- 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 <aaf3>:
- 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
Index: ld/testsuite/ld-arm/ifunc-14.dd
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/ifunc-14.dd,v
retrieving revision 1.1
diff -u -p -r1.1 ifunc-14.dd
--- ld/testsuite/ld-arm/ifunc-14.dd 14 Mar 2011 16:04:14 -0000 1.1
+++ ld/testsuite/ld-arm/ifunc-14.dd 13 Oct 2011 17:20:42 -0000
@@ -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 <f3>:
- 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 <f3t>:
- 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
Index: ld/testsuite/ld-arm/ifunc-15.dd
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/ifunc-15.dd,v
retrieving revision 1.1
diff -u -p -r1.1 ifunc-15.dd
--- ld/testsuite/ld-arm/ifunc-15.dd 14 Mar 2011 16:04:14 -0000 1.1
+++ ld/testsuite/ld-arm/ifunc-15.dd 13 Oct 2011 17:20:42 -0000
@@ -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 <f3>:
- 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 <f3t>:
- 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
Index: ld/testsuite/ld-arm/ifunc-16.dd
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/ifunc-16.dd,v
retrieving revision 1.1
diff -u -p -r1.1 ifunc-16.dd
--- ld/testsuite/ld-arm/ifunc-16.dd 14 Mar 2011 16:04:14 -0000 1.1
+++ ld/testsuite/ld-arm/ifunc-16.dd 13 Oct 2011 17:20:42 -0000
@@ -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 <f2t>:
- 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 <f3>:
- 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 <f2>:
- 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 <f3t>:
- 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
Index: ld/testsuite/ld-arm/ifunc-2.dd
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/ifunc-2.dd,v
retrieving revision 1.1
diff -u -p -r1.1 ifunc-2.dd
--- ld/testsuite/ld-arm/ifunc-2.dd 14 Mar 2011 16:04:14 -0000 1.1
+++ ld/testsuite/ld-arm/ifunc-2.dd 13 Oct 2011 17:20:42 -0000
@@ -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 <f7>:
- 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 <f5>:
- 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 <f8>:
- 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 <f6>:
- 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
Index: ld/testsuite/ld-arm/ifunc-3.dd
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/ifunc-3.dd,v
retrieving revision 1.2
diff -u -p -r1.2 ifunc-3.dd
--- ld/testsuite/ld-arm/ifunc-3.dd 2 Jun 2011 15:32:10 -0000 1.2
+++ ld/testsuite/ld-arm/ifunc-3.dd 13 Oct 2011 17:20:42 -0000
@@ -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
Index: ld/testsuite/ld-arm/ifunc-4.dd
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/ifunc-4.dd,v
retrieving revision 1.2
diff -u -p -r1.2 ifunc-4.dd
--- ld/testsuite/ld-arm/ifunc-4.dd 2 Jun 2011 15:32:10 -0000 1.2
+++ ld/testsuite/ld-arm/ifunc-4.dd 13 Oct 2011 17:20:42 -0000
@@ -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
Index: ld/testsuite/ld-arm/ifunc-5.dd
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/ifunc-5.dd,v
retrieving revision 1.2
diff -u -p -r1.2 ifunc-5.dd
--- ld/testsuite/ld-arm/ifunc-5.dd 2 Jun 2011 15:32:10 -0000 1.2
+++ ld/testsuite/ld-arm/ifunc-5.dd 13 Oct 2011 17:20:42 -0000
@@ -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
Index: ld/testsuite/ld-arm/ifunc-6.dd
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/ifunc-6.dd,v
retrieving revision 1.2
diff -u -p -r1.2 ifunc-6.dd
--- ld/testsuite/ld-arm/ifunc-6.dd 2 Jun 2011 15:32:10 -0000 1.2
+++ ld/testsuite/ld-arm/ifunc-6.dd 13 Oct 2011 17:20:42 -0000
@@ -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
Index: ld/testsuite/ld-arm/ifunc-7.dd
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/ifunc-7.dd,v
retrieving revision 1.2
diff -u -p -r1.2 ifunc-7.dd
--- ld/testsuite/ld-arm/ifunc-7.dd 2 Jun 2011 15:32:10 -0000 1.2
+++ ld/testsuite/ld-arm/ifunc-7.dd 13 Oct 2011 17:20:42 -0000
@@ -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
Index: ld/testsuite/ld-arm/ifunc-8.dd
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/ifunc-8.dd,v
retrieving revision 1.2
diff -u -p -r1.2 ifunc-8.dd
--- ld/testsuite/ld-arm/ifunc-8.dd 2 Jun 2011 15:32:10 -0000 1.2
+++ ld/testsuite/ld-arm/ifunc-8.dd 13 Oct 2011 17:20:42 -0000
@@ -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
Index: ld/testsuite/ld-arm/ifunc-9.dd
===================================================================
RCS file: /cvs/src/src/ld/testsuite/ld-arm/ifunc-9.dd,v
retrieving revision 1.1
diff -u -p -r1.1 ifunc-9.dd
--- ld/testsuite/ld-arm/ifunc-9.dd 14 Mar 2011 16:04:14 -0000 1.1
+++ ld/testsuite/ld-arm/ifunc-9.dd 13 Oct 2011 17:20:42 -0000
@@ -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 <f3>:
- 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
Index: opcodes/arm-dis.c
===================================================================
RCS file: /cvs/src/src/opcodes/arm-dis.c,v
retrieving revision 1.148
diff -u -p -r1.148 arm-dis.c
--- opcodes/arm-dis.c 12 Jul 2011 08:45:45 -0000 1.148
+++ opcodes/arm-dis.c 13 Oct 2011 17:20:42 -0000
@@ -3140,13 +3140,23 @@ print_insn_arm (bfd_vma pc, struct disas
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;
+
+ 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;
- immed = (((immed << (32 - rotate))
- | (immed >> rotate)) & 0xffffffff);
- func (stream, "#%d", immed);
- value_in_comment = immed;
+ 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);