Print all the bits in the addend.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136867 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Rafael Espindola 2011-08-04 13:00:24 +00:00
parent f42e9b2491
commit d7c9b63b58
26 changed files with 123 additions and 129 deletions

View File

@ -21,14 +21,14 @@ foo2:
// CHECK-NEXT: (('r_offset', 0x00000001)
// CHECK-NEXT: ('r_sym', 0x00000001)
// CHECK-NEXT: ('r_type', 0x00000004)
// CHECK-NEXT: ('r_addend', 0xfffffffc)
// CHECK-NEXT: ('r_addend', 0xfffffffffffffffc)
// CHECK-NEXT: ),
// CHECK: # Relocation 0x00000001
// CHECK-NEXT: (('r_offset', 0x00000005)
// CHECK-NEXT: ('r_sym', 0x00000006)
// CHECK-NEXT: ('r_type', 0x00000001)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK: # Symbol 0x00000001

View File

@ -45,22 +45,22 @@ main: # @main
// CHECK: # Relocation 0x00000000
// CHECK: (('r_offset', 0x00000005)
// CHECK: ('r_type', 0x0000000a)
// CHECK: ('r_addend', 0x00000000)
// CHECK: ('r_addend', 0x0000000000000000)
// CHECK: ),
// CHECK: # Relocation 0x00000001
// CHECK: (('r_offset', 0x0000000a)
// CHECK: ('r_type', 0x00000002)
// CHECK: ('r_addend', 0xfffffffc)
// CHECK: ('r_addend', 0xfffffffffffffffc)
// CHECK: ),
// CHECK: # Relocation 0x00000002
// CHECK: (('r_offset', 0x0000000f)
// CHECK: ('r_type', 0x0000000a)
// CHECK: ('r_addend', 0x00000006)
// CHECK: ('r_addend', 0x0000000000000006)
// CHECK: ),
// CHECK: # Relocation 0x00000003
// CHECK: (('r_offset', 0x00000014)
// CHECK: ('r_type', 0x00000002)
// CHECK: ('r_addend', 0xfffffffc)
// CHECK: ('r_addend', 0xfffffffffffffffc)
// CHECK: ),
// CHECK: ])

View File

@ -40,7 +40,7 @@ f:
// CHECK-NEXT: (('r_offset', 0x00000020)
// CHECK-NEXT: ('r_sym', 0x00000002)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: ])
// CHECK-NEXT: ),

View File

@ -39,7 +39,7 @@ f:
// CHECK-NEXT: (('r_offset', 0x00000020)
// CHECK-NEXT: ('r_sym', 0x00000002)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: ])
// CHECK-NEXT: ),

View File

@ -40,7 +40,7 @@ f:
// CHECK-NEXT: (('r_offset', 0x00000020)
// CHECK-NEXT: ('r_sym', 0x00000002)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: ])
// CHECK-NEXT: ),

View File

@ -35,7 +35,7 @@ f:
// CHECK-NEXT: (('r_offset', 0x00000020)
// CHECK-NEXT: ('r_sym', 0x00000002)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: ])
// CHECK-NEXT: ),

View File

@ -36,7 +36,7 @@ f:
// CHECK-NEXT: (('r_offset', 0x00000020)
// CHECK-NEXT: ('r_sym', 0x00000002)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: ])
// CHECK-NEXT: ),

View File

@ -36,7 +36,7 @@ f:
// CHECK-NEXT: (('r_offset', 0x00000020)
// CHECK-NEXT: ('r_sym', 0x00000002)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: ])
// CHECK-NEXT: ),

View File

@ -43,7 +43,7 @@ f:
// CHECK-NEXT: (('r_offset', 0x00000020)
// CHECK-NEXT: ('r_sym', 0x00000002)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: ])
// CHECK-NEXT: ),

View File

@ -35,7 +35,7 @@ f:
// CHECK-NEXT: (('r_offset', 0x00000020)
// CHECK-NEXT: ('r_sym', 0x00000002)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: ])
// CHECK-NEXT: ),

View File

@ -39,7 +39,7 @@ f:
// CHECK-NEXT: (('r_offset', 0x00000020)
// CHECK-NEXT: ('r_sym', 0x00000002)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: ])
// CHECK-NEXT: ),

View File

@ -36,7 +36,7 @@ f:
// CHECK-NEXT: (('r_offset', 0x00000020)
// CHECK-NEXT: ('r_sym', 0x00000002)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: ])
// CHECK-NEXT: ),

View File

@ -42,7 +42,7 @@ f:
// CHECK-NEXT: (('r_offset', 0x00000020)
// CHECK-NEXT: ('r_sym', 0x00000002)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: ])
// CHECK-NEXT: ),

View File

@ -242,433 +242,433 @@ f36:
// CHECK-NEXT: (('r_offset', 0x00000020)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000001
// CHECK-NEXT: (('r_offset', 0x00000029)
// CHECK-NEXT: ('r_sym', 0x00000028)
// CHECK-NEXT: ('r_type', 0x0000000a)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000002
// CHECK-NEXT: (('r_offset', 0x00000043)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000001)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000003
// CHECK-NEXT: (('r_offset', 0x0000005c)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000001)
// CHECK-NEXT: ('r_addend', 0x0000000000000001)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000004
// CHECK-NEXT: (('r_offset', 0x00000065)
// CHECK-NEXT: ('r_sym', 0x00000028)
// CHECK-NEXT: ('r_type', 0x0000000a)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000005
// CHECK-NEXT: (('r_offset', 0x00000074)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x0000000000000002)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000006
// CHECK-NEXT: (('r_offset', 0x0000007d)
// CHECK-NEXT: ('r_sym', 0x00000028)
// CHECK-NEXT: ('r_type', 0x0000000a)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000007
// CHECK-NEXT: (('r_offset', 0x00000097)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000001)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000008
// CHECK-NEXT: (('r_offset', 0x000000b0)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000003)
// CHECK-NEXT: ('r_addend', 0x0000000000000003)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000009
// CHECK-NEXT: (('r_offset', 0x000000b9)
// CHECK-NEXT: ('r_sym', 0x00000028)
// CHECK-NEXT: ('r_type', 0x0000000c)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000000a
// CHECK-NEXT: (('r_offset', 0x000000ce)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x0000000c)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000000b
// CHECK-NEXT: (('r_offset', 0x000000e0)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000004)
// CHECK-NEXT: ('r_addend', 0x0000000000000004)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000000c
// CHECK-NEXT: (('r_offset', 0x000000fe)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x0000000a)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000000d
// CHECK-NEXT: (('r_offset', 0x00000110)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000005)
// CHECK-NEXT: ('r_addend', 0x0000000000000005)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000000e
// CHECK-NEXT: (('r_offset', 0x0000012e)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000001)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000000f
// CHECK-NEXT: (('r_offset', 0x00000144)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000006)
// CHECK-NEXT: ('r_addend', 0x0000000000000006)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000010
// CHECK-NEXT: (('r_offset', 0x00000162)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x0000000c)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000011
// CHECK-NEXT: (('r_offset', 0x00000174)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000007)
// CHECK-NEXT: ('r_addend', 0x0000000000000007)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000012
// CHECK-NEXT: (('r_offset', 0x00000192)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x0000000a)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000013
// CHECK-NEXT: (('r_offset', 0x000001a4)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000008)
// CHECK-NEXT: ('r_addend', 0x0000000000000008)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000014
// CHECK-NEXT: (('r_offset', 0x000001c2)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000001)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000015
// CHECK-NEXT: (('r_offset', 0x000001d8)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000009)
// CHECK-NEXT: ('r_addend', 0x0000000000000009)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000016
// CHECK-NEXT: (('r_offset', 0x000001f6)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000001)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000017
// CHECK-NEXT: (('r_offset', 0x0000020c)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x0000000a)
// CHECK-NEXT: ('r_addend', 0x000000000000000a)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000018
// CHECK-NEXT: (('r_offset', 0x0000022a)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000018)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000019
// CHECK-NEXT: (('r_offset', 0x00000240)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x0000000b)
// CHECK-NEXT: ('r_addend', 0x000000000000000b)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000001a
// CHECK-NEXT: (('r_offset', 0x0000025e)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x0000000d)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000001b
// CHECK-NEXT: (('r_offset', 0x00000270)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x0000000c)
// CHECK-NEXT: ('r_addend', 0x000000000000000c)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000001c
// CHECK-NEXT: (('r_offset', 0x0000028e)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000001d
// CHECK-NEXT: (('r_offset', 0x000002a0)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x0000000d)
// CHECK-NEXT: ('r_addend', 0x000000000000000d)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000001e
// CHECK-NEXT: (('r_offset', 0x000002be)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000018)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000001f
// CHECK-NEXT: (('r_offset', 0x000002d4)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x0000000e)
// CHECK-NEXT: ('r_addend', 0x000000000000000e)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000020
// CHECK-NEXT: (('r_offset', 0x000002f2)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x0000000d)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000021
// CHECK-NEXT: (('r_offset', 0x00000304)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x0000000f)
// CHECK-NEXT: ('r_addend', 0x000000000000000f)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000022
// CHECK-NEXT: (('r_offset', 0x00000322)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000023
// CHECK-NEXT: (('r_offset', 0x00000334)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000010)
// CHECK-NEXT: ('r_addend', 0x0000000000000010)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000024
// CHECK-NEXT: (('r_offset', 0x00000352)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000018)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000025
// CHECK-NEXT: (('r_offset', 0x00000368)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000011)
// CHECK-NEXT: ('r_addend', 0x0000000000000011)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000026
// CHECK-NEXT: (('r_offset', 0x00000386)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000018)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000027
// CHECK-NEXT: (('r_offset', 0x0000039c)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000012)
// CHECK-NEXT: ('r_addend', 0x0000000000000012)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000028
// CHECK-NEXT: (('r_offset', 0x000003ba)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000001)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000029
// CHECK-NEXT: (('r_offset', 0x000003d0)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000013)
// CHECK-NEXT: ('r_addend', 0x0000000000000013)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000002a
// CHECK-NEXT: (('r_offset', 0x000003ee)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x0000000c)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000002b
// CHECK-NEXT: (('r_offset', 0x00000400)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000014)
// CHECK-NEXT: ('r_addend', 0x0000000000000014)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000002c
// CHECK-NEXT: (('r_offset', 0x0000041e)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x0000000a)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000002d
// CHECK-NEXT: (('r_offset', 0x00000430)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000015)
// CHECK-NEXT: ('r_addend', 0x0000000000000015)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000002e
// CHECK-NEXT: (('r_offset', 0x0000044e)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000001)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000002f
// CHECK-NEXT: (('r_offset', 0x00000464)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000016)
// CHECK-NEXT: ('r_addend', 0x0000000000000016)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000030
// CHECK-NEXT: (('r_offset', 0x00000482)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x0000000c)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000031
// CHECK-NEXT: (('r_offset', 0x00000494)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000017)
// CHECK-NEXT: ('r_addend', 0x0000000000000017)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000032
// CHECK-NEXT: (('r_offset', 0x000004b2)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x0000000a)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000033
// CHECK-NEXT: (('r_offset', 0x000004c4)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000018)
// CHECK-NEXT: ('r_addend', 0x0000000000000018)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000034
// CHECK-NEXT: (('r_offset', 0x000004e2)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000001)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000035
// CHECK-NEXT: (('r_offset', 0x000004f8)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000019)
// CHECK-NEXT: ('r_addend', 0x0000000000000019)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000036
// CHECK-NEXT: (('r_offset', 0x00000516)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000001)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000037
// CHECK-NEXT: (('r_offset', 0x0000052c)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x0000001a)
// CHECK-NEXT: ('r_addend', 0x000000000000001a)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000038
// CHECK-NEXT: (('r_offset', 0x0000054a)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000018)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000039
// CHECK-NEXT: (('r_offset', 0x00000560)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x0000001b)
// CHECK-NEXT: ('r_addend', 0x000000000000001b)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000003a
// CHECK-NEXT: (('r_offset', 0x0000057e)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x0000000d)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000003b
// CHECK-NEXT: (('r_offset', 0x00000590)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x0000001c)
// CHECK-NEXT: ('r_addend', 0x000000000000001c)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000003c
// CHECK-NEXT: (('r_offset', 0x000005ae)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000003d
// CHECK-NEXT: (('r_offset', 0x000005c0)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x0000001d)
// CHECK-NEXT: ('r_addend', 0x000000000000001d)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000003e
// CHECK-NEXT: (('r_offset', 0x000005de)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000018)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x0000003f
// CHECK-NEXT: (('r_offset', 0x000005f4)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x0000001e)
// CHECK-NEXT: ('r_addend', 0x000000000000001e)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000040
// CHECK-NEXT: (('r_offset', 0x00000612)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x0000000d)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000041
// CHECK-NEXT: (('r_offset', 0x00000624)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x0000001f)
// CHECK-NEXT: ('r_addend', 0x000000000000001f)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000042
// CHECK-NEXT: (('r_offset', 0x00000642)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000043
// CHECK-NEXT: (('r_offset', 0x00000654)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000020)
// CHECK-NEXT: ('r_addend', 0x0000000000000020)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000044
// CHECK-NEXT: (('r_offset', 0x00000672)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000018)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000045
// CHECK-NEXT: (('r_offset', 0x00000688)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000021)
// CHECK-NEXT: ('r_addend', 0x0000000000000021)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000046
// CHECK-NEXT: (('r_offset', 0x000006a6)
// CHECK-NEXT: ('r_sym', 0x00000029)
// CHECK-NEXT: ('r_type', 0x00000018)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000047
// CHECK-NEXT: (('r_offset', 0x000006bc)
// CHECK-NEXT: ('r_sym', 0x00000024)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000022)
// CHECK-NEXT: ('r_addend', 0x0000000000000022)
// CHECK-NEXT: ),
// CHECK-NEXT: ])
// CHECK-NEXT: ),

View File

@ -12,4 +12,4 @@ zed:
// CHECK-NEXT: (('r_offset', 0x00000005)
// CHECK-NEXT: ('r_sym', 0x00000006)
// CHECK-NEXT: ('r_type', 0x0000000b)
// CHECK-NEXT: ('r_addend', 0x00000001)
// CHECK-NEXT: ('r_addend', 0x0000000000000001)

View File

@ -68,7 +68,7 @@ foo:
// CHECK-NEXT: (('r_offset', 0x00000023)
// CHECK-NEXT: ('r_sym', 0x00000008)
// CHECK-NEXT: ('r_type', 0x0000000b)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: ])

View File

@ -5,7 +5,7 @@
// CHECK-NEXT: (('r_offset', 0x0000000c)
// CHECK-NEXT: ('r_sym', 0x00000005)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000008)
// CHECK-NEXT: ('r_addend', 0x0000000000000008)
// CHECK-NEXT: ),
// CHECK-NEXT: ])

View File

@ -21,13 +21,13 @@
// CHECK-NEXT: (('r_offset', 0x00000001)
// CHECK-NEXT: ('r_sym', 0x00000000)
// CHECK-NEXT: ('r_type', 0x0000000f)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000001
// CHECK-NEXT: (('r_offset', 0x00000003)
// CHECK-NEXT: ('r_sym', 0x00000000)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: ])
// CHECK-NEXT: ),

View File

@ -63,55 +63,55 @@ bar:
// CHECK-NEXT: (('r_offset', 0x0000002d)
// CHECK-NEXT: ('r_sym', 0x00000006)
// CHECK-NEXT: ('r_type', 0x00000016)
// CHECK-NEXT: ('r_addend', 0xfffffffc)
// CHECK-NEXT: ('r_addend', 0xfffffffffffffffc)
// CHECK: # Relocation 0x00000007
// CHECK-NEXT: (('r_offset', 0x00000034)
// CHECK-NEXT: ('r_sym', 0x00000006)
// CHECK-NEXT: ('r_type', 0x00000013)
// CHECK-NEXT: ('r_addend', 0xfffffffc)
// CHECK-NEXT: ('r_addend', 0xfffffffffffffffc)
// CHECK: # Relocation 0x00000008
// CHECK-NEXT: (('r_offset', 0x0000003b)
// CHECK-NEXT: ('r_sym', 0x00000006)
// CHECK-NEXT: ('r_type', 0x00000017)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK: # Relocation 0x00000009
// CHECK-NEXT: (('r_offset', 0x00000042)
// CHECK-NEXT: ('r_sym', 0x00000006)
// CHECK-NEXT: ('r_type', 0x00000014)
// CHECK-NEXT: ('r_addend', 0xfffffffc)
// CHECK-NEXT: ('r_addend', 0xfffffffffffffffc)
// CHECK: # Relocation 0x0000000a
// CHECK-NEXT: (('r_offset', 0x00000049)
// CHECK-NEXT: ('r_sym', 0x00000006)
// CHECK-NEXT: ('r_type', 0x00000015)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK: # Relocation 0x0000000b
// CHECK-NEXT: (('r_offset', 0x0000004e)
// CHECK-NEXT: ('r_sym', 0x00000002)
// CHECK-NEXT: ('r_type', 0x0000000b)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK: # Relocation 0x0000000c
// CHECK-NEXT: (('r_offset', 0x00000055)
// CHECK-NEXT: ('r_sym', 0x00000006)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0xfffffffc)
// CHECK-NEXT: ('r_addend', 0xfffffffffffffffc)
// CHECK: # Relocation 0x0000000d
// CHECK-NEXT: (('r_offset', 0x0000005c)
// CHECK-NEXT: ('r_sym', 0x00000006)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0x0000005c)
// CHECK-NEXT: ('r_addend', 0x000000000000005c)
// CHECK: # Relocation 0x0000000e
// CHECK-NEXT: (('r_offset', 0x00000063)
// CHECK-NEXT: ('r_sym', 0x00000002)
// CHECK-NEXT: ('r_type', 0x0000000b)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK: # Symbol 0x00000002
// CHECK: (('st_name', 0x00000000) # ''

View File

@ -33,7 +33,7 @@ defined3:
// CHECK-NEXT: (('r_offset', 0x00000000)
// CHECK-NEXT: ('r_sym', 0x00000002)
// CHECK-NEXT: ('r_type', 0x0000000a)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// Symbol 2 is section 1
// CHECK: # Symbol 0x00000002

View File

@ -26,31 +26,31 @@ global1:
// CHECK-NEXT: (('r_offset', 0x00000000)
// CHECK-NEXT: ('r_sym', 0x00000006)
// CHECK-NEXT: ('r_type', 0x0000000a)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000001
// CHECK-NEXT: (('r_offset', 0x00000004)
// CHECK-NEXT: ('r_sym', 0x0000000b)
// CHECK-NEXT: ('r_type', 0x0000000a)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000002
// CHECK-NEXT: (('r_offset', 0x00000008)
// CHECK-NEXT: ('r_sym', 0x00000006)
// CHECK-NEXT: ('r_type', 0x0000000a)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000003
// CHECK-NEXT: (('r_offset', 0x0000000c)
// CHECK-NEXT: ('r_sym', 0x00000006)
// CHECK-NEXT: ('r_type', 0x0000000a)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000004
// CHECK-NEXT: (('r_offset', 0x00000010)
// CHECK-NEXT: ('r_sym', 0x0000000c)
// CHECK-NEXT: ('r_type', 0x0000000a)
// CHECK-NEXT: ('r_addend', 0x00000000)
// CHECK-NEXT: ('r_addend', 0x0000000000000000)
// CHECK-NEXT: ),
// CHECK-NEXT:])

View File

@ -11,5 +11,5 @@ bar:
//CHECK-NEXT: (('r_offset', 0x00000001)
//CHECK-NEXT: ('r_sym', 0x00000005)
//CHECK-NEXT: ('r_type', 0x00000002)
//CHECK-NEXT: ('r_addend', 0xfffffffc)
//CHECK-NEXT: ('r_addend', 0xfffffffffffffffc)
//CHECK-NEXT: ),

View File

@ -11,13 +11,13 @@
// CHECK-NEXT: (('r_offset', 0x00000001)
// CHECK-NEXT: ('r_sym', 0x00000006)
// CHECK-NEXT: ('r_type', 0x00000004)
// CHECK-NEXT: ('r_addend', 0xfffffffc)
// CHECK-NEXT: ('r_addend', 0xfffffffffffffffc)
// CHECK-NEXT: ),
// CHECK-NEXT: # Relocation 0x00000001
// CHECK-NEXT: (('r_offset', 0x00000006)
// CHECK-NEXT: ('r_sym', 0x00000005)
// CHECK-NEXT: ('r_type', 0x00000002)
// CHECK-NEXT: ('r_addend', 0xfffffffc)
// CHECK-NEXT: ('r_addend', 0xfffffffffffffffc)
// CHECK-NEXT: ),
// CHECK: # Symbol 0x00000004

View File

@ -2,12 +2,12 @@
// Tests that relocation value fits in the provided size
// Original bug http://llvm.org/bugs/show_bug.cgi?id=10568
L: movq $(L + 2147483648),%rax
// CHECK: Relocation 0x00000000
// CHECK-NEXT: 'r_offset', 0x00000003
// CHECK-NEXT: 'r_sym'
// CHECK-NEXT: 'r_type', 0x0000000b
// CHECK-NEXT: 'r_addend', 0x80000000
// CHECK-NEXT: 'r_addend', 0x0000000080000000

View File

@ -40,7 +40,8 @@ def HexDump(val, numBits=32):
4. Do print 0x Why?
so that they can be easily distinguished using sed/rx
"""
assert 0 <= val < (1 << numBits)
val = val & (( 1 << numBits) - 1)
newFmt = "0x%0" + "%d" % (numBits / 4) + "x"
return newFmt % val

View File

@ -34,27 +34,15 @@ class Reader:
def read32(self):
return struct.unpack('><'[self.isLSB] + 'I', self.read(4))[0]
def read32S(self):
return struct.unpack('><'[self.isLSB] + 'i', self.read(4))[0]
def read64(self):
return struct.unpack('><'[self.isLSB] + 'Q', self.read(8))[0]
def read64S(self):
return struct.unpack('><'[self.isLSB] + 'q', self.read(8))[0]
def readWord(self):
if self.is64Bit:
return self.read64()
else:
return self.read32()
def readWordS(self):
if self.is64Bit:
return self.read64S()
else:
return self.read32S()
class StringTable:
def __init__(self, strings):
self.string_table = strings
@ -140,7 +128,12 @@ def dumpRel(f, section, dumprela = False):
print " ('r_sym', %s)" % common_dump.HexDump((r_info >> 8))
print " ('r_type', %s)" % common_dump.HexDump((r_info & 0xff))
if dumprela:
print " ('r_addend', %s)" % common_dump.HexDump(f.readWordS())
val = f.readWord()
if f.is64Bit:
numBits = 64
else:
numBits = 32
print " ('r_addend', %s)" % common_dump.HexDump(val, numBits)
print " ),"
def dumpELF(path, opts):