relocation-386.s revision 7c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9
1c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola// RUN: llvm-mc -filetype=obj -triple i386-pc-linux-gnu %s -o - | elf-dump | FileCheck  %s
2c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola
31683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// Test that we produce the correct relocation types and that the relocations
41683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// correctly point to the section or the symbol.
5c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola
6f7d5278fb32b84b6218a222346202ab3af17057cJason W Kim// CHECK:      # Relocation 0x00000000
7f7d5278fb32b84b6218a222346202ab3af17057cJason W Kim// CHECK-NEXT: (('r_offset', 0x00000002)
8f7d5278fb32b84b6218a222346202ab3af17057cJason W Kim// CHECK-NEXT:  ('r_sym', 0x00000001)
9f7d5278fb32b84b6218a222346202ab3af17057cJason W Kim// CHECK-NEXT:  ('r_type', 0x00000009)
109edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola// CHECK-NEXT: ),
11f7d5278fb32b84b6218a222346202ab3af17057cJason W Kim// CHECK-NEXT:  # Relocation 0x00000001
129edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola// CHECK-NEXT: (('r_offset',
139edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola// CHECK-NEXT:  ('r_sym',
14f7d5278fb32b84b6218a222346202ab3af17057cJason W Kim// CHECK-NEXT:  ('r_type', 0x00000004)
15aa85c216334a6adac7e0a154d357b370629dc1bcRafael Espindola// CHECK-NEXT: ),
16f7d5278fb32b84b6218a222346202ab3af17057cJason W Kim// CHECK-NEXT:  # Relocation 0x00000002
17aa85c216334a6adac7e0a154d357b370629dc1bcRafael Espindola// CHECK-NEXT: (('r_offset',
18aa85c216334a6adac7e0a154d357b370629dc1bcRafael Espindola// CHECK-NEXT:  ('r_sym',
19f7d5278fb32b84b6218a222346202ab3af17057cJason W Kim// CHECK-NEXT:  ('r_type', 0x0000000a)
20aa85c216334a6adac7e0a154d357b370629dc1bcRafael Espindola// CHECK-NEXT: ),
21c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola
221683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// Relocation 3 (bar3@GOTOFF) is done with symbol 7 (bss)
23f7d5278fb32b84b6218a222346202ab3af17057cJason W Kim// CHECK-NEXT:  # Relocation 0x00000003
24ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola// CHECK-NEXT: (('r_offset',
251683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000007
26ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola// CHECK-NEXT:  ('r_type',
27ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola// CHECK-NEXT: ),
28ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola
29eada30479399014c22c7b7edb008177c312eefeeRafael Espindola// Relocation 4 (bar2@GOT) is of type R_386_GOT32
30f7d5278fb32b84b6218a222346202ab3af17057cJason W Kim// CHECK-NEXT:  # Relocation 0x00000004
31eada30479399014c22c7b7edb008177c312eefeeRafael Espindola// CHECK-NEXT: (('r_offset',
32eada30479399014c22c7b7edb008177c312eefeeRafael Espindola// CHECK-NEXT:  ('r_sym',
33f7d5278fb32b84b6218a222346202ab3af17057cJason W Kim// CHECK-NEXT:  ('r_type', 0x00000003
34eada30479399014c22c7b7edb008177c312eefeeRafael Espindola// CHECK-NEXT: ),
35eada30479399014c22c7b7edb008177c312eefeeRafael Espindola
363cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// Relocation 5 (foo@TLSGD) is of type R_386_TLS_GD
373cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: # Relocation 0x00000005
383cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000020)
391683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x0000000d)
403cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT:  ('r_type', 0x00000012)
413cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: ),
423cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola
433cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// Relocation 6 ($foo@TPOFF) is of type R_386_TLS_LE_32
443cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: # Relocation 0x00000006
453cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000025)
461683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x0000000d)
473cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT:  ('r_type', 0x00000022)
483cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: ),
493cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola
503cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// Relocation 7 (foo@INDNTPOFF) is of type R_386_TLS_IE
513cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: # Relocation 0x00000007
523cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: (('r_offset', 0x0000002b)
531683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x0000000d)
543cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT:  ('r_type', 0x0000000f)
553cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: ),
563cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola
573cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// Relocation 8 (foo@NTPOFF) is of type R_386_TLS_LE
583cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: # Relocation 0x00000008
593cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000031)
601683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x0000000d)
613cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT:  ('r_type', 0x00000011)
62a0a2f8734cdfc19d44201b791a969bcdda96bb70Rafael Espindola// CHECK-NEXT: ),
63a0a2f8734cdfc19d44201b791a969bcdda96bb70Rafael Espindola
64a0a2f8734cdfc19d44201b791a969bcdda96bb70Rafael Espindola// Relocation 9 (foo@GOTNTPOFF) is of type R_386_TLS_GOTIE
65a0a2f8734cdfc19d44201b791a969bcdda96bb70Rafael Espindola// CHECK-NEXT: # Relocation 0x00000009
66a0a2f8734cdfc19d44201b791a969bcdda96bb70Rafael Espindola// CHECK-NEXT: (('r_offset', 0x00000037)
671683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x0000000d)
68a0a2f8734cdfc19d44201b791a969bcdda96bb70Rafael Espindola// CHECK-NEXT:  ('r_type', 0x00000010)
69a0a2f8734cdfc19d44201b791a969bcdda96bb70Rafael Espindola// CHECK-NEXT: ),
703cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola
71a264f72d3fb9dec1427480fcf17ef3c746ea723aRafael Espindola// Relocation 10 (foo@TLSLDM) is of type R_386_TLS_LDM
72a264f72d3fb9dec1427480fcf17ef3c746ea723aRafael Espindola// CHECK-NEXT: # Relocation 0x0000000a
73a264f72d3fb9dec1427480fcf17ef3c746ea723aRafael Espindola// CHECK-NEXT: (('r_offset', 0x0000003d)
741683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x0000000d)
75a264f72d3fb9dec1427480fcf17ef3c746ea723aRafael Espindola// CHECK-NEXT:  ('r_type', 0x00000013)
76a264f72d3fb9dec1427480fcf17ef3c746ea723aRafael Espindola// CHECK-NEXT: ),
770cf15d61b7e3bf53f5a99f58ada37b93bc039559Rafael Espindola
780cf15d61b7e3bf53f5a99f58ada37b93bc039559Rafael Espindola// Relocation 11 (foo@DTPOFF) is of type R_386_TLS_LDO_32
790cf15d61b7e3bf53f5a99f58ada37b93bc039559Rafael Espindola// CHECK-NEXT: # Relocation 0x0000000b
800cf15d61b7e3bf53f5a99f58ada37b93bc039559Rafael Espindola// CHECK-NEXT: (('r_offset', 0x00000043)
811683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x0000000d)
820cf15d61b7e3bf53f5a99f58ada37b93bc039559Rafael Espindola// CHECK-NEXT:  ('r_type', 0x00000020)
830cf15d61b7e3bf53f5a99f58ada37b93bc039559Rafael Espindola// CHECK-NEXT: ),
8412203cc7c3f7392d62556946a10b2f10205ea63dRafael Espindola// Relocation 12 (calll 4096) is of type R_386_PC32
8512203cc7c3f7392d62556946a10b2f10205ea63dRafael Espindola// CHECK-NEXT: # Relocation 0x0000000c
8612203cc7c3f7392d62556946a10b2f10205ea63dRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000048)
8712203cc7c3f7392d62556946a10b2f10205ea63dRafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000000)
8812203cc7c3f7392d62556946a10b2f10205ea63dRafael Espindola// CHECK-NEXT:  ('r_type', 0x00000002)
8912203cc7c3f7392d62556946a10b2f10205ea63dRafael Espindola// CHECK-NEXT: ),
9025958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 13 (zed@GOT) is of type R_386_GOT32 and uses the symbol
911683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// CHECK-NEXT: # Relocation 0x0000000d
921683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// CHECK-NEXT: (('r_offset', 0x0000004e)
931683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000004)
9425958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT:  ('r_type', 0x00000003)
9525958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ),
9625958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 14 (zed@GOTOFF) is of type R_386_GOTOFF and uses the symbol
9725958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: # Relocation 0x0000000e
9825958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000054)
9925958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000004)
10025958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT:  ('r_type', 0x00000009)
10125958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ),
10225958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 15 (zed@INDNTPOFF) is of type R_386_TLS_IE and uses the symbol
10325958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: # Relocation 0x0000000f
10425958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x0000005a)
10525958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000004)
10625958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT:  ('r_type', 0x0000000f)
10725958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ),
10825958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 16 (zed@NTPOFF) is of type R_386_TLS_LE and uses the symbol
10925958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: # Relocation 0x00000010
11025958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000060)
11125958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000004)
1121683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// CHECK-NEXT:  ('r_type', 0x00000011)
1131683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// CHECK-NEXT: ),
11425958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 17 (zed@GOTNTPOFF) is of type R_386_TLS_GOTIE and uses the symbol
11525958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: # Relocation 0x00000011
11625958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000066)
11725958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000004)
11825958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT:  ('r_type', 0x00000010)
11925958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ),
12025958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 18 (zed@PLT) is of type R_386_PLT32 and uses the symbol
12125958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: # Relocation 0x00000012
12225958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x0000006b)
12325958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000004)
12425958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT:  ('r_type', 0x00000004)
12525958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ),
12625958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 19 (zed@TLSGD) is of type R_386_TLS_GD and uses the symbol
12725958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: # Relocation 0x00000013
12825958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000071)
12925958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000004)
13025958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT:  ('r_type', 0x00000012)
13125958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ),
13225958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 20 (zed@TLSLDM) is of type R_386_TLS_LDM and uses the symbol
13325958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: # Relocation 0x00000014
13425958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000077)
13525958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000004)
13625958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT:  ('r_type', 0x00000013)
13725958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ),
13825958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 21 (zed@TPOFF) is of type R_386_TLS_LE_32 and uses the symbol
13925958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT:# Relocation 0x00000015
14025958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x0000007d)
14125958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000004)
14225958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT:  ('r_type', 0x00000022)
14325958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ),
14425958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 22 (zed@DTPOFF) is of type R_386_TLS_LDO_32 and uses the symbol
14525958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: Relocation 0x00000016
14625958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000083)
14725958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT:  ('r_sym', 0x00000004)
14825958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT:  ('r_type', 0x00000020)
14925958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ),
150a5ff979c114a658c69fddd065d702a13c40f6ae1Rafael Espindola// Relocation 23 ($bar) is of type R_386_32 and uses the section
151a5ff979c114a658c69fddd065d702a13c40f6ae1Rafael Espindola// CHECK-NEXT: Relocation 0x00000017
152a5ff979c114a658c69fddd065d702a13c40f6ae1Rafael Espindola// CHECK-NEXT: (('r_offset',
153a5ff979c114a658c69fddd065d702a13c40f6ae1Rafael Espindola// CHECK-NEXT:  ('r_sym',
154a5ff979c114a658c69fddd065d702a13c40f6ae1Rafael Espindola// CHECK-NEXT:  ('r_type', 0x00000001)
155a5ff979c114a658c69fddd065d702a13c40f6ae1Rafael Espindola// CHECK-NEXT: ),
1560cf15d61b7e3bf53f5a99f58ada37b93bc039559Rafael Espindola
1577c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// Section 4 is bss
1587c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK:      # Section 0x00000004
1597c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT: (('sh_name', 0x0000000d) # '.bss'
1607c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola
1617c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK:      # Symbol 0x00000001
1627c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT: (('st_name', 0x00000005) # '.Lfoo'
1637c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola
1647c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// Symbol 4 is zed
1657c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK:      # Symbol 0x00000004
1667c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT: (('st_name', 0x00000035) # 'zed'
1677c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT:  ('st_value', 0x00000000)
1687c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT:  ('st_size', 0x00000000)
1697c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT:  ('st_bind', 0x00000000)
1707c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT:  ('st_type', 0x00000006)
1717c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT:  ('st_other', 0x00000000)
1727c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT:  ('st_shndx', 0x00000005)
1737c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola
1747c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// Symbol 7 is section 4
1757c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK:      # Symbol 0x00000007
1767c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT: (('st_name', 0x00000000) # ''
1777c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT:  ('st_value', 0x00000000)
1787c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT:  ('st_size', 0x00000000)
1797c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT:  ('st_bind', 0x00000000)
1807c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT:  ('st_type', 0x00000003)
1817c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT:  ('st_other', 0x00000000)
1827c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT:  ('st_shndx', 0x00000004)
1837c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola
1847c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola
185c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola        .text
186c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindolabar:
187c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola	leal	.Lfoo@GOTOFF(%ebx), %eax
1889edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola
1899edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola        .global bar2
1909edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindolabar2:
1919edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola	calll	bar2@PLT
192aa85c216334a6adac7e0a154d357b370629dc1bcRafael Espindola	addl	$_GLOBAL_OFFSET_TABLE_, %ebx
193ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola	movb	bar3@GOTOFF(%ebx), %al
194ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola
195ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola	.type	bar3,@object
196ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola	.local	bar3
197ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola	.comm	bar3,1,1
1989edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola
199eada30479399014c22c7b7edb008177c312eefeeRafael Espindola        movl	bar2j@GOT(%eax), %eax
200eada30479399014c22c7b7edb008177c312eefeeRafael Espindola
2013cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola        leal foo@TLSGD(, %ebx,1), %eax
2023cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola        movl $foo@TPOFF, %edx
2033cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola        movl foo@INDNTPOFF, %ecx
2043cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola        addl foo@NTPOFF(%eax), %eax
205a0a2f8734cdfc19d44201b791a969bcdda96bb70Rafael Espindola        addl foo@GOTNTPOFF(%ebx), %ecx
206a264f72d3fb9dec1427480fcf17ef3c746ea723aRafael Espindola        leal foo@TLSLDM(%ebx), %eax
2070cf15d61b7e3bf53f5a99f58ada37b93bc039559Rafael Espindola        leal foo@DTPOFF(%eax), %edx
20812203cc7c3f7392d62556946a10b2f10205ea63dRafael Espindola        calll 4096
20925958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola        movl zed@GOT(%eax), %eax
21025958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola        movl zed@GOTOFF(%eax), %eax
21125958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola        movl zed@INDNTPOFF(%eax), %eax
2121683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola        movl zed@NTPOFF(%eax), %eax
21325958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola        movl zed@GOTNTPOFF(%eax), %eax
21425958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola        call zed@PLT
21525958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola        movl zed@TLSGD(%eax), %eax
21625958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola        movl zed@TLSLDM(%eax), %eax
21725958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola        movl zed@TPOFF(%eax), %eax
21825958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola        movl zed@DTPOFF(%eax), %eax
219a5ff979c114a658c69fddd065d702a13c40f6ae1Rafael Espindola        pushl $bar
2201683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola
2211683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola        .section        zedsec,"awT",@progbits
2221683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindolazed:
2231683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola        .long 0
2243cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola
2259edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola        .section	.rodata.str1.16,"aMS",@progbits,1
226c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola.Lfoo:
227c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola	.asciz	 "bool llvm::llvm_start_multithreaded()"
228