diff options
| author | Dmitry Vyukov <dvyukov@google.com> | 2020-11-20 19:28:53 +0100 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2020-11-21 08:46:20 +0100 |
| commit | 418476ecb925e5d58ba9c22928a4e37dc30909df (patch) | |
| tree | 702468b5ca1b0df89a83d861b18eaff9ae2237c5 /pkg/ifuzz/x86 | |
| parent | e1dea42221c13dabdf9d4938428f1ef91863b813 (diff) | |
pkg/ifuzz/iset: rename ifuzzimpl to iset
ifuzzimpl is too lenghty and too clumsy on my taste
(nm/vmimpl worked better b/c it's shorter and used less).
I've tried to come up with something shorter and nicer.
We could use "insn" as a common name for "instruction" in ifuzz,
but it's a commonly used name already so would cause lots of conflicts.
"iset" is somewhat descriptive, short and nice.
Diffstat (limited to 'pkg/ifuzz/x86')
| -rw-r--r-- | pkg/ifuzz/x86/decode.go | 16 | ||||
| -rw-r--r-- | pkg/ifuzz/x86/encode.go | 18 | ||||
| -rw-r--r-- | pkg/ifuzz/x86/gen/gen.go | 16 | ||||
| -rw-r--r-- | pkg/ifuzz/x86/pseudo.go | 84 | ||||
| -rw-r--r-- | pkg/ifuzz/x86/x86.go | 24 |
5 files changed, 79 insertions, 79 deletions
diff --git a/pkg/ifuzz/x86/decode.go b/pkg/ifuzz/x86/decode.go index a40643a6b..1306f40db 100644 --- a/pkg/ifuzz/x86/decode.go +++ b/pkg/ifuzz/x86/decode.go @@ -6,26 +6,26 @@ package x86 import ( "fmt" - "github.com/google/syzkaller/pkg/ifuzz/ifuzzimpl" + "github.com/google/syzkaller/pkg/ifuzz/iset" ) // Decode decodes instruction length for the given mode. // It can have falsely decode incorrect instructions, // but should not fail to decode correct instructions. // nolint: gocyclo, nestif, gocognit, funlen -func (insnset *InsnSet) Decode(mode ifuzzimpl.Mode, text []byte) (int, error) { +func (insnset *InsnSet) Decode(mode iset.Mode, text []byte) (int, error) { if len(text) == 0 { return 0, fmt.Errorf("zero-length instruction") } prefixes := prefixes32 var operSize, immSize, dispSize, addrSize int switch mode { - case ifuzzimpl.ModeLong64: + case iset.ModeLong64: operSize, immSize, dispSize, addrSize = 4, 4, 4, 8 prefixes = prefixes64 - case ifuzzimpl.ModeProt32: + case iset.ModeProt32: operSize, immSize, dispSize, addrSize = 4, 4, 4, 4 - case ifuzzimpl.ModeProt16, ifuzzimpl.ModeReal16: + case iset.ModeProt16, iset.ModeReal16: operSize, immSize, dispSize, addrSize = 2, 2, 2, 2 default: panic("bad mode") @@ -36,7 +36,7 @@ func (insnset *InsnSet) Decode(mode ifuzzimpl.Mode, text []byte) (int, error) { if len(text) > 1 { // There are only 2 32-bit instructions that look like VEX-prefixed but are actually not: LDS, LES. // They always reference memory (mod!=3), but all VEX instructions have "mod=3" where LDS/LES would have mod. - if (text[0] == 0xc4 || text[0] == 0xc5) && (mode == ifuzzimpl.ModeLong64 || text[1]&0xc0 == 0xc0) { + if (text[0] == 0xc4 || text[0] == 0xc5) && (mode == iset.ModeLong64 || text[1]&0xc0 == 0xc0) { vex = true } // There is only one instruction that looks like XOP-prefixed but is actually not: POP. @@ -208,7 +208,7 @@ nextInsn: return 0, fmt.Errorf("unknown instruction") } -var XedDecode func(mode ifuzzimpl.Mode, text []byte) (int, error) +var XedDecode func(mode iset.Mode, text []byte) (int, error) var ( prefixes32 = map[byte]bool{ @@ -226,7 +226,7 @@ var ( } ) -func (insnset *InsnSet) DecodeExt(mode ifuzzimpl.Mode, text []byte) (int, error) { +func (insnset *InsnSet) DecodeExt(mode iset.Mode, text []byte) (int, error) { if XedDecode != nil && text != nil && len(text) > 0 { return XedDecode(mode, text) } diff --git a/pkg/ifuzz/x86/encode.go b/pkg/ifuzz/x86/encode.go index 9203d51c3..59b9a294a 100644 --- a/pkg/ifuzz/x86/encode.go +++ b/pkg/ifuzz/x86/encode.go @@ -10,11 +10,11 @@ package x86 import ( "math/rand" - "github.com/google/syzkaller/pkg/ifuzz/ifuzzimpl" + "github.com/google/syzkaller/pkg/ifuzz/iset" ) // nolint: gocyclo, nestif, gocognit, funlen -func (insn *Insn) Encode(cfg *ifuzzimpl.Config, r *rand.Rand) []byte { +func (insn *Insn) Encode(cfg *iset.Config, r *rand.Rand) []byte { if !cfg.IsCompatible(insn) { panic("instruction is not suitable for this mode") } @@ -24,11 +24,11 @@ func (insn *Insn) Encode(cfg *ifuzzimpl.Config, r *rand.Rand) []byte { var operSize, immSize, dispSize, addrSize int switch cfg.Mode { - case ifuzzimpl.ModeLong64: + case iset.ModeLong64: operSize, immSize, dispSize, addrSize = 4, 4, 4, 8 - case ifuzzimpl.ModeProt32: + case iset.ModeProt32: operSize, immSize, dispSize, addrSize = 4, 4, 4, 4 - case ifuzzimpl.ModeProt16, ifuzzimpl.ModeReal16: + case iset.ModeProt16, iset.ModeReal16: operSize, immSize, dispSize, addrSize = 2, 2, 2, 2 default: panic("bad mode") @@ -54,7 +54,7 @@ func (insn *Insn) Encode(cfg *ifuzzimpl.Config, r *rand.Rand) []byte { if !insn.No66Prefix { prefixes = append(prefixes, 0x66) // operand size } - if cfg.Mode == ifuzzimpl.ModeLong64 || !insn.Mem32 { + if cfg.Mode == iset.ModeLong64 || !insn.Mem32 { prefixes = append(prefixes, 0x67) // address size } if !insn.NoRepPrefix { @@ -71,7 +71,7 @@ func (insn *Insn) Encode(cfg *ifuzzimpl.Config, r *rand.Rand) []byte { // REX var rex byte - if cfg.Mode == ifuzzimpl.ModeLong64 && r.Intn(2) == 0 { + if cfg.Mode == iset.ModeLong64 && r.Intn(2) == 0 { // bit 0 - B // bit 1 - X // bit 2 - R @@ -119,7 +119,7 @@ func (insn *Insn) Encode(cfg *ifuzzimpl.Config, r *rand.Rand) []byte { code = append(code, insn.Vex) vexR = byte(1) vexX = byte(1) - if cfg.Mode == ifuzzimpl.ModeLong64 { + if cfg.Mode == iset.ModeLong64 { vexR = byte(r.Intn(2)) vexX = byte(r.Intn(2)) } @@ -147,7 +147,7 @@ func (insn *Insn) Encode(cfg *ifuzzimpl.Config, r *rand.Rand) []byte { code = append(code, vexR<<7|vexX<<6|vexB<<5|insn.VexMap) code = append(code, W<<7|vvvv<<3|L<<2|pp) // TODO: short encoding - if cfg.Mode != ifuzzimpl.ModeLong64 { + if cfg.Mode != iset.ModeLong64 { vvvv |= 8 } } diff --git a/pkg/ifuzz/x86/gen/gen.go b/pkg/ifuzz/x86/gen/gen.go index 3622ba248..284ea9033 100644 --- a/pkg/ifuzz/x86/gen/gen.go +++ b/pkg/ifuzz/x86/gen/gen.go @@ -13,7 +13,7 @@ import ( "strconv" "strings" - "github.com/google/syzkaller/pkg/ifuzz/ifuzzimpl" + "github.com/google/syzkaller/pkg/ifuzz/iset" "github.com/google/syzkaller/pkg/ifuzz/x86" "github.com/google/syzkaller/pkg/serializer" ) @@ -102,7 +102,7 @@ func main() { insn.Extension = vals[0] switch insn.Extension { case "FMA", "AVX2", "AVX", "F16C", "BMI2", "BMI", "XOP", "FMA4", "AVXAES", "BMI1", "AVX2GATHER": - insn.Mode = 1<<ifuzzimpl.ModeLong64 | 1<<ifuzzimpl.ModeProt32 + insn.Mode = 1<<iset.ModeLong64 | 1<<iset.ModeProt32 } insn.Avx2Gather = insn.Extension == "AVX2GATHER" case "PATTERN": @@ -201,7 +201,7 @@ func parsePattern(insn *x86.Insn, vals []string) error { return errSkip("") } if insn.Mode == 0 { - insn.Mode = 1<<ifuzzimpl.ModeLast - 1 + insn.Mode = 1<<iset.ModeLast - 1 } insn.Mod = -100 insn.Reg = -100 @@ -314,7 +314,7 @@ func parsePattern(insn *x86.Insn, vals []string) error { // VOP/VEX case v == "XOPV": insn.Vex = 0x8f - insn.Mode &^= 1 << ifuzzimpl.ModeReal16 + insn.Mode &^= 1 << iset.ModeReal16 case v == "EVV": insn.Vex = 0xc4 case v == "VV1": @@ -355,13 +355,13 @@ func parsePattern(insn *x86.Insn, vals []string) error { // Modes. case v == "mode64": - insn.Mode &= 1 << ifuzzimpl.ModeLong64 + insn.Mode &= 1 << iset.ModeLong64 case v == "not64": - insn.Mode &^= 1 << ifuzzimpl.ModeLong64 + insn.Mode &^= 1 << iset.ModeLong64 case v == "mode32": - insn.Mode &= 1 << ifuzzimpl.ModeProt32 + insn.Mode &= 1 << iset.ModeProt32 case v == "mode16": - insn.Mode &= 1<<ifuzzimpl.ModeProt16 | 1<<ifuzzimpl.ModeReal16 + insn.Mode &= 1<<iset.ModeProt16 | 1<<iset.ModeReal16 case v == "eamode64", v == "eamode32", v == "eamode16", diff --git a/pkg/ifuzz/x86/pseudo.go b/pkg/ifuzz/x86/pseudo.go index e11ace0cc..9e6f31204 100644 --- a/pkg/ifuzz/x86/pseudo.go +++ b/pkg/ifuzz/x86/pseudo.go @@ -6,16 +6,16 @@ package x86 import ( "math/rand" - "github.com/google/syzkaller/pkg/ifuzz/ifuzzimpl" + "github.com/google/syzkaller/pkg/ifuzz/iset" ) var pseudo = []*Insn{ { Name: "PSEUDO_RDMSR", - Mode: 1<<ifuzzimpl.ModeLast - 1, + Mode: 1<<iset.ModeLast - 1, Priv: true, Pseudo: true, - generator: func(cfg *ifuzzimpl.Config, r *rand.Rand) []byte { + generator: func(cfg *iset.Config, r *rand.Rand) []byte { gen := makeGen(cfg, r) msr := msrs[r.Intn(len(msrs))] gen.mov32(regECX, msr) @@ -25,10 +25,10 @@ var pseudo = []*Insn{ }, { Name: "PSEUDO_WRMSR", - Mode: 1<<ifuzzimpl.ModeLast - 1, + Mode: 1<<iset.ModeLast - 1, Priv: true, Pseudo: true, - generator: func(cfg *ifuzzimpl.Config, r *rand.Rand) []byte { + generator: func(cfg *iset.Config, r *rand.Rand) []byte { gen := makeGen(cfg, r) msr := msrs[r.Intn(len(msrs))] v := generateInt(cfg, r, 8) @@ -41,10 +41,10 @@ var pseudo = []*Insn{ }, { Name: "PSEUDO_PCI_READ", - Mode: 1<<ifuzzimpl.ModeLast - 1, + Mode: 1<<iset.ModeLast - 1, Priv: true, Pseudo: true, - generator: func(cfg *ifuzzimpl.Config, r *rand.Rand) []byte { + generator: func(cfg *iset.Config, r *rand.Rand) []byte { gen := makeGen(cfg, r) addr, port, size := pciAddrPort(r) gen.out32(0xcf8, addr) @@ -54,10 +54,10 @@ var pseudo = []*Insn{ }, { Name: "PSEUDO_PCI_WRITE", - Mode: 1<<ifuzzimpl.ModeLast - 1, + Mode: 1<<iset.ModeLast - 1, Priv: true, Pseudo: true, - generator: func(cfg *ifuzzimpl.Config, r *rand.Rand) []byte { + generator: func(cfg *iset.Config, r *rand.Rand) []byte { gen := makeGen(cfg, r) addr, port, size := pciAddrPort(r) val := generateInt(cfg, r, 4) @@ -68,10 +68,10 @@ var pseudo = []*Insn{ }, { Name: "PSEUDO_PORT_READ", - Mode: 1<<ifuzzimpl.ModeLast - 1, + Mode: 1<<iset.ModeLast - 1, Priv: true, Pseudo: true, - generator: func(cfg *ifuzzimpl.Config, r *rand.Rand) []byte { + generator: func(cfg *iset.Config, r *rand.Rand) []byte { gen := makeGen(cfg, r) port := ports[r.Intn(len(ports))] gen.in(port, r.Intn(3)) @@ -80,10 +80,10 @@ var pseudo = []*Insn{ }, { Name: "PSEUDO_PORT_WRITE", - Mode: 1<<ifuzzimpl.ModeLast - 1, + Mode: 1<<iset.ModeLast - 1, Priv: true, Pseudo: true, - generator: func(cfg *ifuzzimpl.Config, r *rand.Rand) []byte { + generator: func(cfg *iset.Config, r *rand.Rand) []byte { gen := makeGen(cfg, r) port := ports[r.Intn(len(ports))] val := generateInt(cfg, r, 4) @@ -93,10 +93,10 @@ var pseudo = []*Insn{ }, { Name: "PSEUDO_XOR_CR", - Mode: 1<<ifuzzimpl.ModeLast - 1, + Mode: 1<<iset.ModeLast - 1, Priv: true, Pseudo: true, - generator: func(cfg *ifuzzimpl.Config, r *rand.Rand) []byte { + generator: func(cfg *iset.Config, r *rand.Rand) []byte { gen := makeGen(cfg, r) cr := controlRegisters[r.Intn(len(controlRegisters))] var v uint32 @@ -114,10 +114,10 @@ var pseudo = []*Insn{ }, { Name: "PSEUDO_XOR_EFER", - Mode: 1<<ifuzzimpl.ModeLast - 1, + Mode: 1<<iset.ModeLast - 1, Priv: true, Pseudo: true, - generator: func(cfg *ifuzzimpl.Config, r *rand.Rand) []byte { + generator: func(cfg *iset.Config, r *rand.Rand) []byte { gen := makeGen(cfg, r) gen.mov32(regECX, eferMSR) gen.byte(0x0f, 0x32) // rdmsr @@ -129,16 +129,16 @@ var pseudo = []*Insn{ }, { Name: "PSEUDO_SET_BREAK", - Mode: 1<<ifuzzimpl.ModeLast - 1, + Mode: 1<<iset.ModeLast - 1, Priv: true, Pseudo: true, - generator: func(cfg *ifuzzimpl.Config, r *rand.Rand) []byte { + generator: func(cfg *iset.Config, r *rand.Rand) []byte { gen := makeGen(cfg, r) br := uint8(r.Intn(4)) loc := uint32(r.Intn(4)) typ := uint32(r.Intn(16)) addr := generateInt(cfg, r, 8) - if cfg.Mode == ifuzzimpl.ModeLong64 { + if cfg.Mode == iset.ModeLong64 { gen.mov64(regRAX, addr) } else { gen.mov32(regEAX, uint32(addr)) @@ -152,13 +152,13 @@ var pseudo = []*Insn{ }, { Name: "PSEUDO_LOAD_SEG", - Mode: 1<<ifuzzimpl.ModeLast - 1, + Mode: 1<<iset.ModeLast - 1, Priv: true, Pseudo: true, - generator: func(cfg *ifuzzimpl.Config, r *rand.Rand) []byte { + generator: func(cfg *iset.Config, r *rand.Rand) []byte { gen := makeGen(cfg, r) sel := randSelector(r) - if cfg.Mode == ifuzzimpl.ModeReal16 { + if cfg.Mode == iset.ModeReal16 { sel = uint16(generateInt(cfg, r, 8)) >> 4 } reg := uint8(r.Intn(6)) @@ -169,14 +169,14 @@ var pseudo = []*Insn{ }, { Name: "PSEUDO_FAR_JMP", - Mode: 1<<ifuzzimpl.ModeLong64 | 1<<ifuzzimpl.ModeProt32 | 1<<ifuzzimpl.ModeProt16, + Mode: 1<<iset.ModeLong64 | 1<<iset.ModeProt32 | 1<<iset.ModeProt16, Priv: true, Pseudo: true, - generator: func(cfg *ifuzzimpl.Config, r *rand.Rand) []byte { + generator: func(cfg *iset.Config, r *rand.Rand) []byte { gen := makeGen(cfg, r) sel := randSelector(r) off := generateInt(cfg, r, 4) - if cfg.Mode == ifuzzimpl.ModeLong64 { + if cfg.Mode == iset.ModeLong64 { gen.mov32toSPaddr(uint32(sel), 0) gen.mov32toSPaddr(uint32(off), 2) if r.Intn(2) == 0 { @@ -190,7 +190,7 @@ var pseudo = []*Insn{ } else { gen.byte(0x9a) // lcall $imm16, $imm16/32 } - if cfg.Mode == ifuzzimpl.ModeProt16 { + if cfg.Mode == iset.ModeProt16 { gen.imm16(uint16(off)) } else { gen.imm32(uint32(off)) @@ -202,10 +202,10 @@ var pseudo = []*Insn{ }, { Name: "PSEUDO_LTR_LLDT", - Mode: 1<<ifuzzimpl.ModeLong64 | 1<<ifuzzimpl.ModeProt32 | 1<<ifuzzimpl.ModeProt16, + Mode: 1<<iset.ModeLong64 | 1<<iset.ModeProt32 | 1<<iset.ModeProt16, Priv: true, Pseudo: true, - generator: func(cfg *ifuzzimpl.Config, r *rand.Rand) []byte { + generator: func(cfg *iset.Config, r *rand.Rand) []byte { gen := makeGen(cfg, r) sel := randSelector(r) gen.mov16(regAX, sel) @@ -219,10 +219,10 @@ var pseudo = []*Insn{ }, { Name: "PSEUDO_LGIDT", - Mode: 1<<ifuzzimpl.ModeLong64 | 1<<ifuzzimpl.ModeProt32 | 1<<ifuzzimpl.ModeProt16, + Mode: 1<<iset.ModeLong64 | 1<<iset.ModeProt32 | 1<<iset.ModeProt16, Priv: true, Pseudo: true, - generator: func(cfg *ifuzzimpl.Config, r *rand.Rand) []byte { + generator: func(cfg *iset.Config, r *rand.Rand) []byte { gen := makeGen(cfg, r) limit := uint32(generateInt(cfg, r, 2)) base := uint32(generateInt(cfg, r, 4)) @@ -240,10 +240,10 @@ var pseudo = []*Insn{ }, { Name: "PSEUDO_HYPERCALL", - Mode: 1<<ifuzzimpl.ModeLong64 | 1<<ifuzzimpl.ModeProt32 | 1<<ifuzzimpl.ModeProt16, + Mode: 1<<iset.ModeLong64 | 1<<iset.ModeProt32 | 1<<iset.ModeProt16, Priv: true, Pseudo: true, - generator: func(cfg *ifuzzimpl.Config, r *rand.Rand) []byte { + generator: func(cfg *iset.Config, r *rand.Rand) []byte { gen := makeGen(cfg, r) switch r.Intn(2) { case 0: @@ -280,12 +280,12 @@ const ( ) type generator struct { - mode ifuzzimpl.Mode + mode iset.Mode r *rand.Rand text []byte } -func makeGen(cfg *ifuzzimpl.Config, r *rand.Rand) *generator { +func makeGen(cfg *iset.Config, r *rand.Rand) *generator { return &generator{ mode: cfg.Mode, r: r, @@ -311,9 +311,9 @@ func (gen *generator) imm64(v uint64) { func (gen *generator) operand16() { switch gen.mode { - case ifuzzimpl.ModeLong64, ifuzzimpl.ModeProt32: + case iset.ModeLong64, iset.ModeProt32: gen.byte(0x66) - case ifuzzimpl.ModeProt16, ifuzzimpl.ModeReal16: + case iset.ModeProt16, iset.ModeReal16: default: panic("bad mode") } @@ -321,8 +321,8 @@ func (gen *generator) operand16() { func (gen *generator) operand32() { switch gen.mode { - case ifuzzimpl.ModeLong64, ifuzzimpl.ModeProt32: - case ifuzzimpl.ModeProt16, ifuzzimpl.ModeReal16: + case iset.ModeLong64, iset.ModeProt32: + case iset.ModeProt16, iset.ModeReal16: gen.byte(0x66) default: panic("bad mode") @@ -331,8 +331,8 @@ func (gen *generator) operand32() { func (gen *generator) addr32() { switch gen.mode { - case ifuzzimpl.ModeLong64, ifuzzimpl.ModeProt32: - case ifuzzimpl.ModeProt16, ifuzzimpl.ModeReal16: + case iset.ModeLong64, iset.ModeProt32: + case iset.ModeProt16, iset.ModeReal16: gen.byte(0x67) default: panic("bad mode") @@ -384,7 +384,7 @@ func (gen *generator) mov32(reg int, v uint32) { } func (gen *generator) mov64(reg int, v uint64) { - if gen.mode != ifuzzimpl.ModeLong64 { + if gen.mode != iset.ModeLong64 { panic("bad mode") } gen.byte(0x48) diff --git a/pkg/ifuzz/x86/x86.go b/pkg/ifuzz/x86/x86.go index 51623aa2f..25d01fd36 100644 --- a/pkg/ifuzz/x86/x86.go +++ b/pkg/ifuzz/x86/x86.go @@ -9,16 +9,16 @@ package x86 import ( "math/rand" - "github.com/google/syzkaller/pkg/ifuzz/ifuzzimpl" + "github.com/google/syzkaller/pkg/ifuzz/iset" ) type Insn struct { Name string Extension string - Mode ifuzzimpl.Mode // bitmask of compatible modes - Priv bool // CPL=0 - Pseudo bool // pseudo instructions can consist of several real instructions + Mode iset.Mode // bitmask of compatible modes + Priv bool // CPL=0 + Pseudo bool // pseudo instructions can consist of several real instructions Opcode []byte Prefix []byte @@ -44,11 +44,11 @@ type Insn struct { VexP int8 Avx2Gather bool - generator func(cfg *ifuzzimpl.Config, r *rand.Rand) []byte // for pseudo instructions + generator func(cfg *iset.Config, r *rand.Rand) []byte // for pseudo instructions } type InsnSet struct { - modeInsns ifuzzimpl.ModeInsns + modeInsns iset.ModeInsns Insns []*Insn } @@ -62,18 +62,18 @@ func Register(insns []*Insn) { for _, insn := range insnset.Insns { insnset.modeInsns.Add(insn) } - ifuzzimpl.Arches[ifuzzimpl.ArchX86] = insnset + iset.Arches[iset.ArchX86] = insnset } -func (insnset *InsnSet) GetInsns(mode ifuzzimpl.Mode, typ ifuzzimpl.Type) []ifuzzimpl.Insn { +func (insnset *InsnSet) GetInsns(mode iset.Mode, typ iset.Type) []iset.Insn { return insnset.modeInsns[mode][typ] } -func (insn *Insn) Info() (string, ifuzzimpl.Mode, bool, bool) { +func (insn *Insn) Info() (string, iset.Mode, bool, bool) { return insn.Name, insn.Mode, insn.Pseudo, insn.Priv } -func generateArg(cfg *ifuzzimpl.Config, r *rand.Rand, size int) []byte { +func generateArg(cfg *iset.Config, r *rand.Rand, size int) []byte { v := generateInt(cfg, r, size) arg := make([]byte, size) for i := 0; i < size; i++ { @@ -83,7 +83,7 @@ func generateArg(cfg *ifuzzimpl.Config, r *rand.Rand, size int) []byte { return arg } -func generateInt(cfg *ifuzzimpl.Config, r *rand.Rand, size int) uint64 { +func generateInt(cfg *iset.Config, r *rand.Rand, size int) uint64 { if size != 1 && size != 2 && size != 4 && size != 8 { panic("bad arg size") } @@ -98,7 +98,7 @@ func generateInt(cfg *ifuzzimpl.Config, r *rand.Rand, size int) uint64 { case x < 30: v = uint64(r.Int63()) case x < 40: - v = ifuzzimpl.SpecialNumbers[r.Intn(len(ifuzzimpl.SpecialNumbers))] + v = iset.SpecialNumbers[r.Intn(len(iset.SpecialNumbers))] if r.Intn(5) == 0 { v += uint64(r.Intn(33)) - 16 } |
