diff options
Diffstat (limited to 'pkg/ifuzz/x86/decode.go')
| -rw-r--r-- | pkg/ifuzz/x86/decode.go | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/pkg/ifuzz/x86/decode.go b/pkg/ifuzz/x86/decode.go index 0160e0fd3..dd9418e07 100644 --- a/pkg/ifuzz/x86/decode.go +++ b/pkg/ifuzz/x86/decode.go @@ -65,20 +65,22 @@ func (insnset *InsnSet) Decode(mode iset.Mode, text []byte) (int, error) { for len(text) != 0 && prefixes[text[0]] { switch text[0] { case 0x66: - if immSize == 4 { + switch immSize { + case 4: immSize1 = 2 operSize1 = 2 - } else if immSize == 2 { + case 2: immSize1 = 4 operSize1 = 4 } case 0x67: - if addrSize == 8 { + switch addrSize { + case 8: addrSize1 = 4 - } else if addrSize == 4 { + case 4: dispSize1 = 2 addrSize1 = 2 - } else if addrSize == 2 { + case 2: dispSize1 = 4 addrSize1 = 4 } |
