Improved branch compilation

This commit is contained in:
Eduard Urbach 2024-07-07 21:55:32 +02:00
parent 871749101e
commit 13161f5021
Signed by: eduard
GPG key ID: 49226B848C78F6C8
9 changed files with 160 additions and 113 deletions

View file

@ -57,7 +57,12 @@ func (a Assembler) Finalize() ([]byte, []byte) {
Position: Address(len(code) - size),
Size: uint8(size),
Resolve: func() Address {
destination := labels[label.Name]
destination, exists := labels[label.Name]
if !exists {
panic("unknown call label")
}
distance := destination - nextInstructionAddress
return Address(distance)
},
@ -100,7 +105,12 @@ func (a Assembler) Finalize() ([]byte, []byte) {
Position: Address(len(code) - size),
Size: uint8(size),
Resolve: func() Address {
destination := labels[label.Name]
destination, exists := labels[label.Name]
if !exists {
panic("unknown jump label")
}
distance := destination - nextInstructionAddress
return Address(distance)
},