# HG changeset patch # User Michael Pavone # Date 1419651507 28800 # Node ID 49d9928353bea0db812190f03392f3462ba7d23c # Parent 39d7d463ed5b0cce67e0858afab459d6abe86898 Fix a bug in ori to SR that was swapping USP and SSP inappropriately diff -r 39d7d463ed5b -r 49d9928353be m68k_core_x86.c --- a/m68k_core_x86.c Fri Dec 26 19:37:59 2014 -0800 +++ b/m68k_core_x86.c Fri Dec 26 19:38:27 2014 -0800 @@ -1896,7 +1896,7 @@ } else { or_irdisp(code, inst->src.params.immed >> 8, opts->gen.context_reg, offsetof(m68k_context, status), SZ_B); } - if ((base_flag == X0) ^ (((inst->src.params.immed >> 8) & (1 << BIT_SUPERVISOR)) > 0)) { + if (inst->op == M68K_ANDI_SR && !(inst->src.params.immed & (1 << (BIT_SUPERVISOR + 8)))) { //leave supervisor mode swap_ssp_usp(opts); }