Message ID | 1462392752-17703-3-git-send-email-laurent@vivier.eu |
---|---|
State | New |
Headers | show |
On 05/04/2016 10:11 AM, Laurent Vivier wrote: > From: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> > > Signed-off-by: John Paul Adrian Glaubitz <glaubitz@physik.fu-berlin.de> > Signed-off-by: Laurent Vivier <laurent@vivier.eu> > --- > target-m68k/translate.c | 5 +++++ > 1 file changed, 5 insertions(+) Reviewed-by: Richard Henderson <rth@twiddle.net> r~
diff --git a/target-m68k/translate.c b/target-m68k/translate.c index 301f687..e14e0fd 100644 --- a/target-m68k/translate.c +++ b/target-m68k/translate.c @@ -2833,6 +2833,11 @@ register_opcode (disas_proc proc, uint16_t opcode, uint16_t mask) Later insn override earlier ones. */ void register_m68k_insns (CPUM68KState *env) { + /* Build the opcode table only once to avoid + multithreading issues. */ + if (opcode_table[0] != NULL) { + return; + } #define INSN(name, opcode, mask, feature) do { \ if (m68k_feature(env, M68K_FEATURE_##feature)) \ register_opcode(disas_##name, 0x##opcode, 0x##mask); \