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 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'pkg/ifuzz/ifuzzimpl/ifuzzimpl.go') 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<