Implemented bit shifts

This commit is contained in:
Eduard Urbach 2024-07-25 15:47:19 +02:00
parent a7d8d6ae20
commit f0a1b97f2d
Signed by: eduard
GPG key ID: 49226B848C78F6C8
7 changed files with 101 additions and 2 deletions

View file

@ -0,0 +1,17 @@
package x64
import (
"git.akyoto.dev/cli/q/src/build/cpu"
)
// ShiftLeftNumber shifts the register value by `bitCount` bits to the left.
func ShiftLeftNumber(code []byte, register cpu.Register, bitCount byte) []byte {
code = encode(code, AddressDirect, 0b100, register, 8, 0xC1)
return append(code, bitCount)
}
// ShiftRightSignedNumber shifts the signed register value by `bitCount` bits to the right.
func ShiftRightSignedNumber(code []byte, register cpu.Register, bitCount byte) []byte {
code = encode(code, AddressDirect, 0b111, register, 8, 0xC1)
return append(code, bitCount)
}