Implemented bitwise operations

This commit is contained in:
Eduard Urbach 2024-07-25 14:17:51 +02:00
parent f68c50247f
commit a7d8d6ae20
Signed by: eduard
GPG key ID: 49226B848C78F6C8
12 changed files with 287 additions and 5 deletions

15
src/build/arch/x64/Or.go Normal file
View file

@ -0,0 +1,15 @@
package x64
import (
"git.akyoto.dev/cli/q/src/build/cpu"
)
// OrRegisterNumber performs a bitwise OR using a register and a number.
func OrRegisterNumber(code []byte, destination cpu.Register, number int) []byte {
return encodeNum(code, AddressDirect, 0b001, destination, number, 0x83, 0x81)
}
// OrRegisterRegister performs a bitwise OR using two registers.
func OrRegisterRegister(code []byte, destination cpu.Register, operand cpu.Register) []byte {
return encode(code, AddressDirect, operand, destination, 8, 0x09)
}