From e1dea42221c13dabdf9d4938428f1ef91863b813 Mon Sep 17 00:00:00 2001 From: Dmitry Vyukov Date: Fri, 20 Nov 2020 19:10:02 +0100 Subject: pkg/ifuzz/ifuzzimpl: move IsCompatible from x86 We now can implement IsCompatible portably. --- pkg/ifuzz/ifuzzimpl/ifuzzimpl.go | 17 +++++++++++++++++ pkg/ifuzz/x86/encode.go | 2 +- pkg/ifuzz/x86/x86.go | 16 ---------------- 3 files changed, 18 insertions(+), 17 deletions(-) (limited to 'pkg/ifuzz') diff --git a/pkg/ifuzz/ifuzzimpl/ifuzzimpl.go b/pkg/ifuzz/ifuzzimpl/ifuzzimpl.go index 831e1ba3f..32f285250 100644 --- a/pkg/ifuzz/ifuzzimpl/ifuzzimpl.go +++ b/pkg/ifuzz/ifuzzimpl/ifuzzimpl.go @@ -82,3 +82,20 @@ func (modeInsns *ModeInsns) Add(insn Insn) { } } } + +func (cfg *Config) IsCompatible(insn Insn) bool { + _, mode, pseudo, priv := insn.Info() + if cfg.Mode < 0 || cfg.Mode >= ModeLast { + panic("bad mode") + } + if priv && !cfg.Priv { + return false + } + if pseudo && !cfg.Exec { + return false + } + if mode&(1<= ifuzzimpl.ModeLast { - panic("bad mode") - } - if insn.Priv && !cfg.Priv { - return false - } - if insn.Pseudo && !cfg.Exec { - return false - } - if insn.Mode&(1<