relocation-386.s revision 3c68acd202d061c38e9b7744012094b4009d932a
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 6f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK: # Relocation 0 7f7d5278fb32b84b6218a222346202ab3af17057cJason W Kim// CHECK-NEXT: (('r_offset', 0x00000002) 8a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x000001) 9f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x09) 109edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola// CHECK-NEXT: ), 11f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 1 129edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola// CHECK-NEXT: (('r_offset', 139edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola// CHECK-NEXT: ('r_sym', 14f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x04) 15aa85c216334a6adac7e0a154d357b370629dc1bcRafael Espindola// CHECK-NEXT: ), 16f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 2 17aa85c216334a6adac7e0a154d357b370629dc1bcRafael Espindola// CHECK-NEXT: (('r_offset', 18aa85c216334a6adac7e0a154d357b370629dc1bcRafael Espindola// CHECK-NEXT: ('r_sym', 19f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x0a) 20aa85c216334a6adac7e0a154d357b370629dc1bcRafael Espindola// CHECK-NEXT: ), 21c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola 221683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// Relocation 3 (bar3@GOTOFF) is done with symbol 7 (bss) 23f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 3 24ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola// CHECK-NEXT: (('r_offset', 25a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x000007 26ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola// CHECK-NEXT: ('r_type', 27ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola// CHECK-NEXT: ), 28ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola 29eada30479399014c22c7b7edb008177c312eefeeRafael Espindola// Relocation 4 (bar2@GOT) is of type R_386_GOT32 30f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 4 31eada30479399014c22c7b7edb008177c312eefeeRafael Espindola// CHECK-NEXT: (('r_offset', 32eada30479399014c22c7b7edb008177c312eefeeRafael Espindola// CHECK-NEXT: ('r_sym', 33f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x03 34eada30479399014c22c7b7edb008177c312eefeeRafael Espindola// CHECK-NEXT: ), 35eada30479399014c22c7b7edb008177c312eefeeRafael Espindola 363cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// Relocation 5 (foo@TLSGD) is of type R_386_TLS_GD 37f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 5 383cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000020) 39a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x00000d) 40f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x12) 413cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: ), 423cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola 433cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// Relocation 6 ($foo@TPOFF) is of type R_386_TLS_LE_32 44f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 6 453cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000025) 46a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x00000d) 47f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x22) 483cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: ), 493cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola 503cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// Relocation 7 (foo@INDNTPOFF) is of type R_386_TLS_IE 51f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 7 523cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: (('r_offset', 0x0000002b) 53a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x00000d) 54f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x0f) 553cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: ), 563cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola 573cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// Relocation 8 (foo@NTPOFF) is of type R_386_TLS_LE 58f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 8 593cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000031) 60a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x00000d) 61f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x11) 62a0a2f8734cdfc19d44201b791a969bcdda96bb70Rafael Espindola// CHECK-NEXT: ), 63a0a2f8734cdfc19d44201b791a969bcdda96bb70Rafael Espindola 64a0a2f8734cdfc19d44201b791a969bcdda96bb70Rafael Espindola// Relocation 9 (foo@GOTNTPOFF) is of type R_386_TLS_GOTIE 65f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 9 66a0a2f8734cdfc19d44201b791a969bcdda96bb70Rafael Espindola// CHECK-NEXT: (('r_offset', 0x00000037) 67a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x00000d) 68f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x10) 69a0a2f8734cdfc19d44201b791a969bcdda96bb70Rafael Espindola// CHECK-NEXT: ), 703cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola 71a264f72d3fb9dec1427480fcf17ef3c746ea723aRafael Espindola// Relocation 10 (foo@TLSLDM) is of type R_386_TLS_LDM 72f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 10 73a264f72d3fb9dec1427480fcf17ef3c746ea723aRafael Espindola// CHECK-NEXT: (('r_offset', 0x0000003d) 74a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x00000d) 75f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x13) 76a264f72d3fb9dec1427480fcf17ef3c746ea723aRafael Espindola// CHECK-NEXT: ), 770cf15d61b7e3bf53f5a99f58ada37b93bc039559Rafael Espindola 780cf15d61b7e3bf53f5a99f58ada37b93bc039559Rafael Espindola// Relocation 11 (foo@DTPOFF) is of type R_386_TLS_LDO_32 79f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 11 800cf15d61b7e3bf53f5a99f58ada37b93bc039559Rafael Espindola// CHECK-NEXT: (('r_offset', 0x00000043) 81a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x00000d) 82f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x20) 830cf15d61b7e3bf53f5a99f58ada37b93bc039559Rafael Espindola// CHECK-NEXT: ), 8412203cc7c3f7392d62556946a10b2f10205ea63dRafael Espindola// Relocation 12 (calll 4096) is of type R_386_PC32 85f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 12 8612203cc7c3f7392d62556946a10b2f10205ea63dRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000048) 87a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x000000) 88f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x02) 8912203cc7c3f7392d62556946a10b2f10205ea63dRafael Espindola// CHECK-NEXT: ), 9025958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 13 (zed@GOT) is of type R_386_GOT32 and uses the symbol 91f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 13 921683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// CHECK-NEXT: (('r_offset', 0x0000004e) 93a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x000004) 94f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x03) 9525958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ), 9625958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 14 (zed@GOTOFF) is of type R_386_GOTOFF and uses the symbol 97f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 14 9825958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000054) 99a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x000004) 100f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x09) 10125958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ), 10225958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 15 (zed@INDNTPOFF) is of type R_386_TLS_IE and uses the symbol 103f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 15 10425958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x0000005a) 105a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x000004) 106f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x0f) 10725958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ), 10825958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 16 (zed@NTPOFF) is of type R_386_TLS_LE and uses the symbol 109f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 16 11025958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000060) 111a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x000004) 112f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x11) 1131683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola// CHECK-NEXT: ), 11425958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 17 (zed@GOTNTPOFF) is of type R_386_TLS_GOTIE and uses the symbol 115f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 17 11625958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000066) 117a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x000004) 118f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x10) 11925958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ), 12025958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 18 (zed@PLT) is of type R_386_PLT32 and uses the symbol 121f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 18 12225958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x0000006b) 123a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x000004) 124f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x04) 12525958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ), 12625958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 19 (zed@TLSGD) is of type R_386_TLS_GD and uses the symbol 127f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 19 12825958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000071) 129a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x000004) 130f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x12) 13125958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ), 13225958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 20 (zed@TLSLDM) is of type R_386_TLS_LDM and uses the symbol 133f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: # Relocation 20 13425958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000077) 135a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x000004) 136f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x13) 13725958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ), 13825958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 21 (zed@TPOFF) is of type R_386_TLS_LE_32 and uses the symbol 139f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT:# Relocation 21 14025958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x0000007d) 141a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x000004) 142f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x22) 14325958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ), 14425958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// Relocation 22 (zed@DTPOFF) is of type R_386_TLS_LDO_32 and uses the symbol 145f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: Relocation 22 14625958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: (('r_offset', 0x00000083) 147a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x000004) 148f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x20) 14925958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola// CHECK-NEXT: ), 150a5ff979c114a658c69fddd065d702a13c40f6ae1Rafael Espindola// Relocation 23 ($bar) is of type R_386_32 and uses the section 151f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: Relocation 23 152a5ff979c114a658c69fddd065d702a13c40f6ae1Rafael Espindola// CHECK-NEXT: (('r_offset', 153a5ff979c114a658c69fddd065d702a13c40f6ae1Rafael Espindola// CHECK-NEXT: ('r_sym', 154f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x01) 155a5ff979c114a658c69fddd065d702a13c40f6ae1Rafael Espindola// CHECK-NEXT: ), 156e0b87032f5ac8134b7585bdc4a0f2c77158b962dNick Lewycky// Relocation 24 (foo@GOTTPOFF(%edx)) is of type R_386_TLS_IE_32 and uses the 157e0b87032f5ac8134b7585bdc4a0f2c77158b962dNick Lewycky// symbol 158f7179de2a5c127d08e6d24e507abec516f2fc597Rafael Espindola// CHECK-NEXT: Relocation 24 159e0b87032f5ac8134b7585bdc4a0f2c77158b962dNick Lewycky// CHECK-NEXT: (('r_offset', 0x0000008e) 160a83f8ef9b4d727011ee43743810ef1f6ec12bb81Rafael Espindola// CHECK-NEXT: ('r_sym', 0x00000d) 161f81f6758f3188e1fd8be6b3707301959268dbbf0Rafael Espindola// CHECK-NEXT: ('r_type', 0x21) 162e0b87032f5ac8134b7585bdc4a0f2c77158b962dNick Lewycky// CHECK-NEXT: ), 1631d5969d839ddc4d0af93fd035aa13131e5c6fa82Rafael Espindola// Relocation 25 (_GLOBAL_OFFSET_TABLE_-bar2) is of type R_386_GOTPC. 1641d5969d839ddc4d0af93fd035aa13131e5c6fa82Rafael Espindola// CHECK-NEXT: Relocation 25 1651d5969d839ddc4d0af93fd035aa13131e5c6fa82Rafael Espindola// CHECK-NEXT: (('r_offset', 0x00000094) 1661d5969d839ddc4d0af93fd035aa13131e5c6fa82Rafael Espindola// CHECK-NEXT: ('r_sym', 0x00000b) 1671d5969d839ddc4d0af93fd035aa13131e5c6fa82Rafael Espindola// CHECK-NEXT: ('r_type', 0x0a) 1683c68acd202d061c38e9b7744012094b4009d932aRafael Espindola// CHECK-NEXT: ), 1693c68acd202d061c38e9b7744012094b4009d932aRafael Espindola// Relocation 26 (und_symbol-bar2) is of type R_386_PC32 1703c68acd202d061c38e9b7744012094b4009d932aRafael Espindola// CHECK-NEXT: Relocation 26 1713c68acd202d061c38e9b7744012094b4009d932aRafael Espindola// CHECK-NEXT: (('r_offset', 0x0000009a) 1723c68acd202d061c38e9b7744012094b4009d932aRafael Espindola// CHECK-NEXT: ('r_sym', 0x00000e) 1733c68acd202d061c38e9b7744012094b4009d932aRafael Espindola// CHECK-NEXT: ('r_type', 0x02) 1743c68acd202d061c38e9b7744012094b4009d932aRafael Espindola// CHECK-NEXT: ), 1750cf15d61b7e3bf53f5a99f58ada37b93bc039559Rafael Espindola 1767c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// Section 4 is bss 177014180d387a875f7e04fd3532eab24dd0794db08Rafael Espindola// CHECK: # Section 4 1789974b8b3cb49eb937cb148c4199e0d456186c3caRafael Espindola// CHECK-NEXT: (('sh_name', 0x0000000b) # '.bss' 1797c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola 18065ad8dc807174b53615181a8170befdf60b6771dRafael Espindola// CHECK: # Symbol 1 1817c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT: (('st_name', 0x00000005) # '.Lfoo' 1827c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola 1837c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// Symbol 4 is zed 18465ad8dc807174b53615181a8170befdf60b6771dRafael Espindola// CHECK: # Symbol 4 1857c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT: (('st_name', 0x00000035) # 'zed' 1867c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT: ('st_value', 0x00000000) 1877c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT: ('st_size', 0x00000000) 188d7c278326f333f41d8ec8d19f817a117e3f11190Rafael Espindola// CHECK-NEXT: ('st_bind', 0x0) 18971a8f5ca12e8536e6050cc7a09fa2a87ea629cfaRafael Espindola// CHECK-NEXT: ('st_type', 0x6) 19067ac0c0d630aa823f31632beecef520df1d7c48bRafael Espindola// CHECK-NEXT: ('st_other', 0x00) 191251a2bbfb00ceb254d7ac1d35ae975ad9e2145cfRafael Espindola// CHECK-NEXT: ('st_shndx', 0x0005) 1927c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola 1937c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// Symbol 7 is section 4 19465ad8dc807174b53615181a8170befdf60b6771dRafael Espindola// CHECK: # Symbol 7 1957c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT: (('st_name', 0x00000000) # '' 1967c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT: ('st_value', 0x00000000) 1977c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola// CHECK-NEXT: ('st_size', 0x00000000) 198d7c278326f333f41d8ec8d19f817a117e3f11190Rafael Espindola// CHECK-NEXT: ('st_bind', 0x0) 19971a8f5ca12e8536e6050cc7a09fa2a87ea629cfaRafael Espindola// CHECK-NEXT: ('st_type', 0x3) 20067ac0c0d630aa823f31632beecef520df1d7c48bRafael Espindola// CHECK-NEXT: ('st_other', 0x00) 201251a2bbfb00ceb254d7ac1d35ae975ad9e2145cfRafael Espindola// CHECK-NEXT: ('st_shndx', 0x0004) 2027c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola 2037c18fa87a4d4ed8b0cfe1ec65597c748c6d91ca9Rafael Espindola 204c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola .text 205c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindolabar: 206c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola leal .Lfoo@GOTOFF(%ebx), %eax 2079edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola 2089edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola .global bar2 2099edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindolabar2: 2109edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola calll bar2@PLT 211aa85c216334a6adac7e0a154d357b370629dc1bcRafael Espindola addl $_GLOBAL_OFFSET_TABLE_, %ebx 212ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola movb bar3@GOTOFF(%ebx), %al 213ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola 214ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola .type bar3,@object 215ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola .local bar3 216ce2d3c57758619e99a99104e1168a9558658fab0Rafael Espindola .comm bar3,1,1 2179edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola 218eada30479399014c22c7b7edb008177c312eefeeRafael Espindola movl bar2j@GOT(%eax), %eax 219eada30479399014c22c7b7edb008177c312eefeeRafael Espindola 2203cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola leal foo@TLSGD(, %ebx,1), %eax 2213cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola movl $foo@TPOFF, %edx 2223cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola movl foo@INDNTPOFF, %ecx 2233cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola addl foo@NTPOFF(%eax), %eax 224a0a2f8734cdfc19d44201b791a969bcdda96bb70Rafael Espindola addl foo@GOTNTPOFF(%ebx), %ecx 225a264f72d3fb9dec1427480fcf17ef3c746ea723aRafael Espindola leal foo@TLSLDM(%ebx), %eax 2260cf15d61b7e3bf53f5a99f58ada37b93bc039559Rafael Espindola leal foo@DTPOFF(%eax), %edx 22712203cc7c3f7392d62556946a10b2f10205ea63dRafael Espindola calll 4096 22825958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola movl zed@GOT(%eax), %eax 22925958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola movl zed@GOTOFF(%eax), %eax 23025958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola movl zed@INDNTPOFF(%eax), %eax 2311683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola movl zed@NTPOFF(%eax), %eax 23225958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola movl zed@GOTNTPOFF(%eax), %eax 23325958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola call zed@PLT 23425958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola movl zed@TLSGD(%eax), %eax 23525958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola movl zed@TLSLDM(%eax), %eax 23625958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola movl zed@TPOFF(%eax), %eax 23725958730dffe0a16f9c251a1fa317799b8419a1fRafael Espindola movl zed@DTPOFF(%eax), %eax 238a5ff979c114a658c69fddd065d702a13c40f6ae1Rafael Espindola pushl $bar 239e0b87032f5ac8134b7585bdc4a0f2c77158b962dNick Lewycky addl foo@GOTTPOFF(%edx), %eax 2401d5969d839ddc4d0af93fd035aa13131e5c6fa82Rafael Espindola subl _GLOBAL_OFFSET_TABLE_-bar2, %ebx 2413c68acd202d061c38e9b7744012094b4009d932aRafael Espindola leal und_symbol-bar2(%edx),%ecx 2421683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola 2431683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola .section zedsec,"awT",@progbits 2441683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindolazed: 2451683fcc82397681a64a35884edc9c62c49f2f179Rafael Espindola .long 0 2463cede2d0b2b6cc0a06f55da7c2f8e4263ec0091eRafael Espindola 2479edab3a9e15c40c1c9bf70df81c6afdab1cd02c2Rafael Espindola .section .rodata.str1.16,"aMS",@progbits,1 248c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola.Lfoo: 249c97f80efc80030c7544a9903c79d2dccd197a0ffRafael Espindola .asciz "bool llvm::llvm_start_multithreaded()" 250