aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--pkg/ifuzz/powerpc/powerpc.go4
-rw-r--r--pkg/ifuzz/powerpc/pseudo.go14
2 files changed, 14 insertions, 4 deletions
diff --git a/pkg/ifuzz/powerpc/powerpc.go b/pkg/ifuzz/powerpc/powerpc.go
index d87f073b6..2704ae33b 100644
--- a/pkg/ifuzz/powerpc/powerpc.go
+++ b/pkg/ifuzz/powerpc/powerpc.go
@@ -173,3 +173,7 @@ func (imap insnSetMap) ld64(reg uint, v uint64) []byte {
return ret
}
+
+func (imap insnSetMap) sc(lev uint) []byte {
+ return imap["sc"].enc(map[string]uint{"LEV": lev})
+}
diff --git a/pkg/ifuzz/powerpc/pseudo.go b/pkg/ifuzz/powerpc/pseudo.go
index 7529a16fc..91b705b02 100644
--- a/pkg/ifuzz/powerpc/pseudo.go
+++ b/pkg/ifuzz/powerpc/pseudo.go
@@ -9,6 +9,11 @@ import (
"github.com/google/syzkaller/pkg/ifuzz/iset"
)
+const (
+ // Valid hcall humbers at the momemt are: 4..0x450.
+ MaxHcall = 0x450 // MAX_HCALL
+)
+
// nolint:dupl
func (insnset *InsnSet) initPseudo() {
insnset.Insns = append(insnset.Insns, &Insn{
@@ -63,11 +68,12 @@ func (gen *generator) byte(v []byte) {
}
func (gen *generator) sc(lev uint) {
+ imap := gen.imap
+
n := gen.r.Intn(9)
- // Valid hcall humbers at the momemt are: 4..0x450
- gen.byte(gen.imap.ld64(3, uint64(gen.r.Intn(4+(0x450-4)/4))))
+ gen.byte(imap.ld64(3, uint64(gen.r.Intn(4+(MaxHcall-4)/4))))
for i := 4; i < n+4; i++ {
- gen.byte(gen.imap.ld64(uint(i), gen.r.Uint64()))
+ gen.byte(imap.ld64(uint(i), gen.r.Uint64()))
}
- gen.byte(gen.imap["sc"].enc(map[string]uint{"LEV": lev}))
+ gen.byte(imap.sc(lev))
}