diff options
| -rw-r--r-- | pkg/ifuzz/powerpc/powerpc.go | 4 | ||||
| -rw-r--r-- | pkg/ifuzz/powerpc/pseudo.go | 14 |
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)) } |
