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