145afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 245afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.orgcall _foo 345afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type= X86_64_RELOC_BRANCH, r_length=2, r_extern=1, r_pcrel=1, r_symbolnum=_foo 445afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# E8 00 00 00 00 545afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 645afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.orgcall _foo+4 745afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type=X86_64_RELOC_BRANCH, r_length=2, r_extern=1, r_pcrel=1, r_symbolnum=_foo 845afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# E8 04 00 00 00 945afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 1045afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# TODO: movq _foo@GOTPCREL(%rip), %rax 1145afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type=X86_64_RELOC_GOT_LOAD, r_length=2, r_extern=1, r_pcrel=1, r_symbolnum=_foo 1245afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# 48 8B 05 00 00 00 00 1345afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 1445afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# TODO: pushq _foo@GOTPCREL(%rip) 1545afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type=X86_64_RELOC_GOT, r_length=2, r_extern=1, r_pcrel=1, r_symbolnum=_foo 1645afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# FF 35 00 00 00 00 1745afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 1845afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.orgmovl _foo(%rip), %eax 1945afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type=X86_64_RELOC_SIGNED, r_length=2, r_extern=1, r_pcrel=1, r_symbolnum=_foo 2045afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# 8B 05 00 00 00 00 2145afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 2245afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.orgmovl _foo+4(%rip), %eax 2345afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type= X86_64_RELOC_SIGNED, r_length=2, r_extern=1, r_pcrel=1, r_symbolnum=_foo 2445afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# 8B 05 04 00 00 00 2545afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 2645afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.orgmovb $0x12, _foo(%rip) 2745afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type= X86_64_RELOC_SIGNED, r_length=2, r_extern=1, r_pcrel=1, r_symbolnum=_foo 2845afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# C6 05 FF FF FF FF 12 2945afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 3045afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.orgmovl $0x12345678, _foo(%rip) 3145afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type= X86_64_RELOC_SIGNED, r_length=2, r_extern=1, r_pcrel=1, r_symbolnum=_foo 3245afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# C7 05 FC FF FF FF 78 56 34 12 3345afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 3445afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org.quad _foo 3545afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type=X86_64_RELOC_UNSIGNED,r_length=3, r_extern=1,r_pcrel=0, r_symbolnum=_foo 3645afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# 00 00 00 00 00 00 00 00 3745afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 3845afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org.quad _foo+4 3945afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type=X86_64_RELOC_UNSIGNED,r_length=3,r_extern=1,r_pcrel=0,r_symbolnum=_foo 4045afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# 04 00 00 00 00 00 00 00 4145afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 4245afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# TODO: .quad _foo - _bar 4345afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type=X86_64_RELOC_SUBTRACTOR,r_length=3,r_extern=1, r_pcrel=0,r_symbolnum=_bar 4445afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type=X86_64_RELOC_UNSIGNED,r_length=3,r_extern=1, r_pcrel=0,r_symbolnum=_foo 4545afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# 00 00 00 00 00 00 00 00 4645afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 4745afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# TODO: .quad _foo - _bar + 4 4845afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type=X86_64_RELOC_SUBTRACTOR,r_length=3, r_extern=1,r_pcrel=0,r_symbolnum=_bar 4945afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type=X86_64_RELOC_UNSIGNED,r_length=3, r_extern=1,r_pcrel=0,r_symbolnum=_foo 5045afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# 04 00 00 00 00 00 00 00 5145afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 5245afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# TODO: .long _foo - _bar 5345afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type=X86_64_RELOC_SUBTRACTOR,r_length=2,r_extern=1,r_pcrel=0,r_symbolnum=_bar 5445afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type=X86_64_RELOC_UNSIGNED,r_length=2,r_extern=1,r_pcrel=0,r_symbolnum=_foo 5545afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# 00 00 00 00 5645afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 5745afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.orglea L1(%rip), %rax 5845afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type=X86_64_RELOC_SIGNED, r_length=2, r_extern=1, r_pcrel=1, r_symbolnum=_prev 5945afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# 48 8d 05 12 00 00 00 6045afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# Assumes that _prev is the first nonlocal label 0x12 bytes before L1. 6145afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 6245afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.orglea L0(%rip), %rax 6345afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type= X86_64_RELOC_SIGNED, r_length=2, r_extern=0, r_pcrel=1, r_symbolnum=3 6445afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# 48 8d 05 56 00 00 00 6545afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# Assumes that L0 is in third section, and has an address of 0x00000056 6645afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# in .o file, and no previous nonlocal label. 6745afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 6845afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org.quad L1 6945afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type=X86_64_RELOC_UNSIGNED,r_length=3,r_extern=1,r_pcrel=0, r_symbolnum= _prev 7045afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# 12 00 00 00 00 00 00 00 7145afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# Assumes that _prev is the first nonlocal label 0x12 bytes before L1. 7245afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 7345afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org.quad L0 7445afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type=X86_64_RELOC_UNSIGNED,r_length=3, r_extern=0, r_pcrel=0, r_symbolnum= 3 7545afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# 56 00 00 00 00 00 00 00 7645afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# Assumes that L0 is in third section, and has address of 0x00000056 7745afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# in .o file, and no previous nonlocal label. 7845afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 7945afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# TODO: .quad _foo - . 8045afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type=X86_64_RELOC_SUBTRACTOR,r_length=3,r_extern=1,r_pcrel=0,r_symbolnum=_prev 8145afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type=X86_64_RELOC_UNSIGNED,r_length=3,r_extern=1,r_pcrel=0,r_symbolnum=_foo 8245afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# EE FF FF FF FF FF FF FF 8345afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# Assumes that _prev is the first nonlocal label 0x12 bytes 8445afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# before this .quad 8545afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 8645afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# TODO: .quad _foo - L1 8745afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type=X86_64_RELOC_SUBTRACTOR,r_length=3,r_extern=1,r_pcrel=0,r_symbolnum=_prev 8845afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# r_type=X86_64_RELOC_UNSIGNED,r_length=3,r_extern=1,r_pcrel=0,r_symbolnum=_foo 8945afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# EE FF FF FF FF FF FF FF 9045afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# Assumes that _prev is the first nonlocal label 0x12 bytes before L1. 9145afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 9245afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org.quad L1 - _prev 9345afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# No relocations. This is an assembly time constant. 9445afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# 12 00 00 00 00 00 00 00 9545afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org# Assumes that _prev is the first nonlocal label 0x12 bytes before L 9645afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org 9745afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org.data 9845afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org.org 0x56 9945afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.orgL0: 10045afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org_prev: 10145afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org.quad 0, 0 10245afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.org.byte 0, 0 10345afe016bed87b9c6946184709058b39ede3f77ajwong@chromium.orgL1: 104