aboutsummaryrefslogtreecommitdiffstats
path: root/pkg
diff options
context:
space:
mode:
authorAlexander Potapenko <glider@google.com>2024-04-26 10:14:47 +0200
committerDmitry Vyukov <dvyukov@google.com>2024-04-26 08:45:11 +0000
commit083cc3ae024d337ff648f0bb26d5c8730fd569c7 (patch)
tree60e8603a12dbe6ab203f2aa9bf3457dac854e995 /pkg
parent3f914d6b3c38d9db5351af800f102f3ec2970128 (diff)
pkg/ifuzz/arm64: explicitly use uint32 for immediates
This should fix compile-time errors with GOARCH=386
Diffstat (limited to 'pkg')
-rw-r--r--pkg/ifuzz/arm64/pseudo.go23
1 files changed, 12 insertions, 11 deletions
diff --git a/pkg/ifuzz/arm64/pseudo.go b/pkg/ifuzz/arm64/pseudo.go
index a99842515..b906fefad 100644
--- a/pkg/ifuzz/arm64/pseudo.go
+++ b/pkg/ifuzz/arm64/pseudo.go
@@ -36,31 +36,32 @@ func makeGen(cfg *iset.Config, r *rand.Rand) *generator {
}
func (gen *generator) smcccHvc() {
- cmd := (1 << 31) | (gen.r.Intn(2) << 30) | ((gen.r.Intn(8) & 0x3F) << 24) | (gen.r.Intn(0x10000) & 0xFFFF)
+ cmd := (uint32(1) << 31) | (uint32(gen.r.Intn(2)) << 30) |
+ (uint32(gen.r.Intn(8)&0x3F) << 24) | (uint32(gen.r.Intn(0x10000)) & 0xFFFF)
gen.movRegImm32(0, cmd)
- gen.movRegImm16(1, gen.r.Intn(16))
- gen.movRegImm16(2, gen.r.Intn(16))
- gen.movRegImm16(3, gen.r.Intn(16))
- gen.movRegImm16(4, gen.r.Intn(16))
+ gen.movRegImm16(1, uint32(gen.r.Intn(16)))
+ gen.movRegImm16(2, uint32(gen.r.Intn(16)))
+ gen.movRegImm16(3, uint32(gen.r.Intn(16)))
+ gen.movRegImm16(4, uint32(gen.r.Intn(16)))
gen.byte(0x02, 0x00, 0x00, 0xd4)
}
-func (gen *generator) movRegImm32(reg, imm int) {
+func (gen *generator) movRegImm32(reg, imm uint32) {
gen.movRegImm16(reg, imm)
// Encoding `movk reg, imm16, LSL #16`.
upper := (imm >> 16) & 0xffff
opcode := uint32(0xf2a00000)
- opcode |= uint32(upper) << 5
- opcode |= uint32(reg & 0xf)
+ opcode |= upper << 5
+ opcode |= reg & 0xf
gen.imm32(opcode)
}
-func (gen *generator) movRegImm16(reg, imm int) {
+func (gen *generator) movRegImm16(reg, imm uint32) {
// Encoding `mov reg, imm16`.
imm = imm & 0xffff
opcode := uint32(0xd2800000)
- opcode |= uint32(imm) << 5
- opcode |= uint32(reg & 0xf)
+ opcode |= imm << 5
+ opcode |= reg & 0xf
gen.imm32(opcode)
}