Print r_type with the correct number of bits.
authorRafael Espindola <rafael.espindola@gmail.com>
Thu, 4 Aug 2011 14:39:30 +0000 (14:39 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Thu, 4 Aug 2011 14:39:30 +0000 (14:39 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136872 91177308-0d34-0410-b5e6-96231b3b80d8

test/CodeGen/ARM/2010-11-30-reloc-movt.ll
test/MC/ARM/elf-movt.s
test/MC/ARM/elf-reloc-01.ll
test/MC/ARM/elf-reloc-02.ll
test/MC/ARM/elf-reloc-03.ll
test/MC/ARM/elf-thumbfunc-reloc.ll
test/MC/ELF/basic-elf-32.s
test/MC/ELF/call-abs.s
test/MC/ELF/relocation-386.s
test/Scripts/elf-dump

index 8a0220690da9a8c793cd4cecc9a3f74e18d89929..99e1fbc590049d10e3c9211eb5000028a2d368bf 100644 (file)
@@ -24,17 +24,17 @@ entry:
 ; OBJ:            Relocation 0
 ; OBJ-NEXT:       'r_offset', 0x00000004
 ; OBJ-NEXT:       'r_sym', 0x00000007
-; OBJ-NEXT:        'r_type', 0x0000002b
+; OBJ-NEXT:        'r_type', 0x2b
 
 ; OBJ:          Relocation 1
 ; OBJ-NEXT:       'r_offset', 0x00000008
 ; OBJ-NEXT:       'r_sym'
-; OBJ-NEXT:        'r_type', 0x0000002c
+; OBJ-NEXT:        'r_type', 0x2c
 
 ; OBJ:          # Relocation 2
 ; OBJ-NEXT:       'r_offset', 0x0000000c
 ; OBJ-NEXT:       'r_sym', 0x00000008
-; OBJ-NEXT:       'r_type', 0x0000001c
+; OBJ-NEXT:       'r_type', 0x1c
 
 }
 
index 5c89ce3c3182239596e3f6c09d154130844aee54..02bb5a6907de596fff3c7accf6be5127d1f8267d 100644 (file)
@@ -30,10 +30,10 @@ barf:                                   @ @barf
 @ OBJ:              Relocation 0
 @ OBJ-NEXT:         'r_offset', 0x00000000
 @ OBJ-NEXT:         'r_sym'
-@ OBJ-NEXT:         'r_type', 0x0000002d
+@ OBJ-NEXT:         'r_type', 0x2d
 
 @ OBJ:              Relocation 1
 @ OBJ-NEXT:         'r_offset', 0x00000004
 @ OBJ-NEXT:         'r_sym'
-@ OBJ-NEXT:         'r_type', 0x0000002e
+@ OBJ-NEXT:         'r_type', 0x2e
 
index a17ef616dc1dabddb4adbea2ee82b93d53ca5801..de28afc0bcc7712bd30ec54a1570ca7e647630f9 100644 (file)
@@ -63,7 +63,7 @@ declare void @exit(i32) noreturn nounwind
 ;; OBJ:          Relocation 1
 ;; OBJ-NEXT:     'r_offset', 
 ;; OBJ-NEXT:     'r_sym', 0x00000002
-;; OBJ-NEXT:     'r_type', 0x0000002b
+;; OBJ-NEXT:     'r_type', 0x2b
 
 ;; OBJ:         Symbol 2
 ;; OBJ-NEXT:    '_MergedGlobals'
index 972c7fe4c4be9ef39fcec02c2460f43ef896874e..00bc1d6ea3880f169404e8211101d24b20764c9f 100644 (file)
@@ -44,7 +44,7 @@ declare void @exit(i32) noreturn nounwind
 ;; OBJ:        Relocation 0
 ;; OBJ-NEXT:    'r_offset', 
 ;; OBJ-NEXT:    'r_sym', 0x00000002
-;; OBJ-NEXT:    'r_type', 0x0000002b
+;; OBJ-NEXT:    'r_type', 0x2b
 
 ;; OBJ:          Symbol 2
 ;; OBJ-NEXT:    '.L.str'
index 3d1584f40d43d1e0f14a3772406fa82ce0ff96a4..4a9db427ebfa0ca5c6b831958b377b352996e1a1 100644 (file)
@@ -91,7 +91,7 @@ declare void @exit(i32) noreturn nounwind
 ;; OBJ:           Relocation 1
 ;; OBJ-NEXT:     'r_offset', 
 ;; OBJ-NEXT:     'r_sym', 0x0000000c
-;; OBJ-NEXT:     'r_type', 0x0000002b
+;; OBJ-NEXT:     'r_type', 0x2b
 
 ;; OBJ:      Symbol 12
 ;; OBJ-NEXT:    'vtable'
index 67ef1c78b87e4300c665b71bda39422e7109a1b6..48d24f366b835bbe9d6c18206304878c2965bd76 100644 (file)
@@ -29,7 +29,7 @@ entry:
 ; CHECK:           Relocation 0
 ; CHECK-NEXT:      'r_offset', 0x00000008
 ; CHECK-NEXT:      'r_sym', 0x00000007
-; CHECK-NEXT:      'r_type', 0x0000000a
+; CHECK-NEXT:      'r_type', 0x0a
 
 ; make sure foo is thumb function: bit 0 = 1
 ; CHECK:           Symbol 7
index 4435a7f7863f3438da22a8290536d1e7eb6b1241..6a28a46f1fc235f73f8f8cac6c92a8de5b5f23ee 100644 (file)
@@ -44,19 +44,19 @@ main:                                   # @main
 // CHECK:   ('_relocations', [
 // CHECK:     # Relocation 0
 // CHECK:     (('r_offset', 0x00000006)
-// CHECK:      ('r_type', 0x00000001)
+// CHECK:      ('r_type', 0x01)
 // CHECK:     ),
 // CHECK:     # Relocation 1
 // CHECK:     (('r_offset', 0x0000000b)
-// CHECK:      ('r_type', 0x00000002)
+// CHECK:      ('r_type', 0x02)
 // CHECK:     ),
 // CHECK:     # Relocation 2
 // CHECK:     (('r_offset', 0x00000012)
-// CHECK:      ('r_type', 0x00000001)
+// CHECK:      ('r_type', 0x01)
 // CHECK:     ),
 // CHECK:     # Relocation 3
 // CHECK:     (('r_offset', 0x00000017)
-// CHECK:      ('r_type', 0x00000002)
+// CHECK:      ('r_type', 0x02)
 // CHECK:     ),
 // CHECK:   ])
 
index cf7b3cc33930ee6d837fae5db0ab4ef5f542d3f6..7d2116377e9b76bc695a9f7f51381697540754ba 100644 (file)
@@ -19,6 +19,6 @@ f:                                      # @f
 // CHECK-NEXT:  # Relocation 0
 // CHECK-NEXT:  (('r_offset', 0x00000004)
 // CHECK-NEXT:   ('r_sym', 0x00000000)
-// CHECK-NEXT:   ('r_type', 0x00000002)
+// CHECK-NEXT:   ('r_type', 0x02)
 // CHECK-NEXT:  ),
 // CHECK-NEXT: ])
index cb8660dd866b3f579d9c003cc85a1baaf8cf4d3a..8665772ef4b668f919ec2f66be506398d9a35a9e 100644 (file)
@@ -6,17 +6,17 @@
 // CHECK:      # Relocation 0
 // CHECK-NEXT: (('r_offset', 0x00000002)
 // CHECK-NEXT:  ('r_sym', 0x00000001)
-// CHECK-NEXT:  ('r_type', 0x00000009)
+// CHECK-NEXT:  ('r_type', 0x09)
 // CHECK-NEXT: ),
 // CHECK-NEXT:  # Relocation 1
 // CHECK-NEXT: (('r_offset',
 // CHECK-NEXT:  ('r_sym',
-// CHECK-NEXT:  ('r_type', 0x00000004)
+// CHECK-NEXT:  ('r_type', 0x04)
 // CHECK-NEXT: ),
 // CHECK-NEXT:  # Relocation 2
 // CHECK-NEXT: (('r_offset',
 // CHECK-NEXT:  ('r_sym',
-// CHECK-NEXT:  ('r_type', 0x0000000a)
+// CHECK-NEXT:  ('r_type', 0x0a)
 // CHECK-NEXT: ),
 
 // Relocation 3 (bar3@GOTOFF) is done with symbol 7 (bss)
 // CHECK-NEXT:  # Relocation 4
 // CHECK-NEXT: (('r_offset',
 // CHECK-NEXT:  ('r_sym',
-// CHECK-NEXT:  ('r_type', 0x00000003
+// CHECK-NEXT:  ('r_type', 0x03
 // CHECK-NEXT: ),
 
 // Relocation 5 (foo@TLSGD) is of type R_386_TLS_GD
 // CHECK-NEXT: # Relocation 5
 // CHECK-NEXT: (('r_offset', 0x00000020)
 // CHECK-NEXT:  ('r_sym', 0x0000000d)
-// CHECK-NEXT:  ('r_type', 0x00000012)
+// CHECK-NEXT:  ('r_type', 0x12)
 // CHECK-NEXT: ),
 
 // Relocation 6 ($foo@TPOFF) is of type R_386_TLS_LE_32
 // CHECK-NEXT: # Relocation 6
 // CHECK-NEXT: (('r_offset', 0x00000025)
 // CHECK-NEXT:  ('r_sym', 0x0000000d)
-// CHECK-NEXT:  ('r_type', 0x00000022)
+// CHECK-NEXT:  ('r_type', 0x22)
 // CHECK-NEXT: ),
 
 // Relocation 7 (foo@INDNTPOFF) is of type R_386_TLS_IE
 // CHECK-NEXT: # Relocation 7
 // CHECK-NEXT: (('r_offset', 0x0000002b)
 // CHECK-NEXT:  ('r_sym', 0x0000000d)
-// CHECK-NEXT:  ('r_type', 0x0000000f)
+// CHECK-NEXT:  ('r_type', 0x0f)
 // CHECK-NEXT: ),
 
 // Relocation 8 (foo@NTPOFF) is of type R_386_TLS_LE
 // CHECK-NEXT: # Relocation 8
 // CHECK-NEXT: (('r_offset', 0x00000031)
 // CHECK-NEXT:  ('r_sym', 0x0000000d)
-// CHECK-NEXT:  ('r_type', 0x00000011)
+// CHECK-NEXT:  ('r_type', 0x11)
 // CHECK-NEXT: ),
 
 // Relocation 9 (foo@GOTNTPOFF) is of type R_386_TLS_GOTIE
 // CHECK-NEXT: # Relocation 9
 // CHECK-NEXT: (('r_offset', 0x00000037)
 // CHECK-NEXT:  ('r_sym', 0x0000000d)
-// CHECK-NEXT:  ('r_type', 0x00000010)
+// CHECK-NEXT:  ('r_type', 0x10)
 // CHECK-NEXT: ),
 
 // Relocation 10 (foo@TLSLDM) is of type R_386_TLS_LDM
 // CHECK-NEXT: # Relocation 10
 // CHECK-NEXT: (('r_offset', 0x0000003d)
 // CHECK-NEXT:  ('r_sym', 0x0000000d)
-// CHECK-NEXT:  ('r_type', 0x00000013)
+// CHECK-NEXT:  ('r_type', 0x13)
 // CHECK-NEXT: ),
 
 // Relocation 11 (foo@DTPOFF) is of type R_386_TLS_LDO_32
 // CHECK-NEXT: # Relocation 11
 // CHECK-NEXT: (('r_offset', 0x00000043)
 // CHECK-NEXT:  ('r_sym', 0x0000000d)
-// CHECK-NEXT:  ('r_type', 0x00000020)
+// CHECK-NEXT:  ('r_type', 0x20)
 // CHECK-NEXT: ),
 // Relocation 12 (calll 4096) is of type R_386_PC32
 // CHECK-NEXT: # Relocation 12
 // CHECK-NEXT: (('r_offset', 0x00000048)
 // CHECK-NEXT:  ('r_sym', 0x00000000)
-// CHECK-NEXT:  ('r_type', 0x00000002)
+// CHECK-NEXT:  ('r_type', 0x02)
 // CHECK-NEXT: ),
 // Relocation 13 (zed@GOT) is of type R_386_GOT32 and uses the symbol
 // CHECK-NEXT: # Relocation 13
 // CHECK-NEXT: (('r_offset', 0x0000004e)
 // CHECK-NEXT:  ('r_sym', 0x00000004)
-// CHECK-NEXT:  ('r_type', 0x00000003)
+// CHECK-NEXT:  ('r_type', 0x03)
 // CHECK-NEXT: ),
 // Relocation 14 (zed@GOTOFF) is of type R_386_GOTOFF and uses the symbol
 // CHECK-NEXT: # Relocation 14
 // CHECK-NEXT: (('r_offset', 0x00000054)
 // CHECK-NEXT:  ('r_sym', 0x00000004)
-// CHECK-NEXT:  ('r_type', 0x00000009)
+// CHECK-NEXT:  ('r_type', 0x09)
 // CHECK-NEXT: ),
 // Relocation 15 (zed@INDNTPOFF) is of type R_386_TLS_IE and uses the symbol
 // CHECK-NEXT: # Relocation 15
 // CHECK-NEXT: (('r_offset', 0x0000005a)
 // CHECK-NEXT:  ('r_sym', 0x00000004)
-// CHECK-NEXT:  ('r_type', 0x0000000f)
+// CHECK-NEXT:  ('r_type', 0x0f)
 // CHECK-NEXT: ),
 // Relocation 16 (zed@NTPOFF) is of type R_386_TLS_LE and uses the symbol
 // CHECK-NEXT: # Relocation 16
 // CHECK-NEXT: (('r_offset', 0x00000060)
 // CHECK-NEXT:  ('r_sym', 0x00000004)
-// CHECK-NEXT:  ('r_type', 0x00000011)
+// CHECK-NEXT:  ('r_type', 0x11)
 // CHECK-NEXT: ),
 // Relocation 17 (zed@GOTNTPOFF) is of type R_386_TLS_GOTIE and uses the symbol
 // CHECK-NEXT: # Relocation 17
 // CHECK-NEXT: (('r_offset', 0x00000066)
 // CHECK-NEXT:  ('r_sym', 0x00000004)
-// CHECK-NEXT:  ('r_type', 0x00000010)
+// CHECK-NEXT:  ('r_type', 0x10)
 // CHECK-NEXT: ),
 // Relocation 18 (zed@PLT) is of type R_386_PLT32 and uses the symbol
 // CHECK-NEXT: # Relocation 18
 // CHECK-NEXT: (('r_offset', 0x0000006b)
 // CHECK-NEXT:  ('r_sym', 0x00000004)
-// CHECK-NEXT:  ('r_type', 0x00000004)
+// CHECK-NEXT:  ('r_type', 0x04)
 // CHECK-NEXT: ),
 // Relocation 19 (zed@TLSGD) is of type R_386_TLS_GD and uses the symbol
 // CHECK-NEXT: # Relocation 19
 // CHECK-NEXT: (('r_offset', 0x00000071)
 // CHECK-NEXT:  ('r_sym', 0x00000004)
-// CHECK-NEXT:  ('r_type', 0x00000012)
+// CHECK-NEXT:  ('r_type', 0x12)
 // CHECK-NEXT: ),
 // Relocation 20 (zed@TLSLDM) is of type R_386_TLS_LDM and uses the symbol
 // CHECK-NEXT: # Relocation 20
 // CHECK-NEXT: (('r_offset', 0x00000077)
 // CHECK-NEXT:  ('r_sym', 0x00000004)
-// CHECK-NEXT:  ('r_type', 0x00000013)
+// CHECK-NEXT:  ('r_type', 0x13)
 // CHECK-NEXT: ),
 // Relocation 21 (zed@TPOFF) is of type R_386_TLS_LE_32 and uses the symbol
 // CHECK-NEXT:# Relocation 21
 // CHECK-NEXT: (('r_offset', 0x0000007d)
 // CHECK-NEXT:  ('r_sym', 0x00000004)
-// CHECK-NEXT:  ('r_type', 0x00000022)
+// CHECK-NEXT:  ('r_type', 0x22)
 // CHECK-NEXT: ),
 // Relocation 22 (zed@DTPOFF) is of type R_386_TLS_LDO_32 and uses the symbol
 // CHECK-NEXT: Relocation 22
 // CHECK-NEXT: (('r_offset', 0x00000083)
 // CHECK-NEXT:  ('r_sym', 0x00000004)
-// CHECK-NEXT:  ('r_type', 0x00000020)
+// CHECK-NEXT:  ('r_type', 0x20)
 // CHECK-NEXT: ),
 // Relocation 23 ($bar) is of type R_386_32 and uses the section
 // CHECK-NEXT: Relocation 23
 // CHECK-NEXT: (('r_offset',
 // CHECK-NEXT:  ('r_sym',
-// CHECK-NEXT:  ('r_type', 0x00000001)
+// CHECK-NEXT:  ('r_type', 0x01)
 // CHECK-NEXT: ),
 // Relocation 24 (foo@GOTTPOFF(%edx)) is of type R_386_TLS_IE_32 and uses the
 // symbol
 // CHECK-NEXT: Relocation 24
 // CHECK-NEXT: (('r_offset', 0x0000008e)
 // CHECK-NEXT:  ('r_sym', 0x0000000d)
-// CHECK-NEXT:  ('r_type', 0x00000021)
+// CHECK-NEXT:  ('r_type', 0x21)
 // CHECK-NEXT: ),
 
 // Section 4 is bss
index f116e3a0aa0e297147ca15c921d6abd6b79a9f05..36e06fbe42c1f3e94aa3e296e3891254a0f505fe 100755 (executable)
@@ -122,11 +122,13 @@ def dumpRel(f, section, dumprela = False):
         print "    (('r_offset', %s)" % common_dump.HexDump(f.readWord())
         r_info = f.readWord()
         if f.is64Bit:
-            print "     ('r_sym', %s)" % common_dump.HexDump((r_info >> 32))
-            print "     ('r_type', %s)" % common_dump.HexDump((r_info & 0xffffffff))
+            r_sym = (r_info >> 32, 32)
+            r_type = (r_info & 0xffffffff, 32)
         else:
-            print "     ('r_sym', %s)" % common_dump.HexDump((r_info >> 8))
-            print "     ('r_type', %s)" % common_dump.HexDump((r_info & 0xff))
+            r_sym = (r_info >> 8, 24)
+            r_type = (r_info & 0xff, 8)
+        print "     ('r_sym', %s)" % common_dump.HexDump(r_sym[0], 32)
+        print "     ('r_type', %s)" % common_dump.HexDump(r_type[0], r_type[1])
         if dumprela:
             val = f.readWord()
             if f.is64Bit: