diff --git a/src/base/SMPInstr.cpp b/src/base/SMPInstr.cpp index cafbb1e2b70abbf0ff4fdf1d6a48350265253a1b..bdbcd661728f9959d000b4869ed4a798f83bf4c0 100644 --- a/src/base/SMPInstr.cpp +++ b/src/base/SMPInstr.cpp @@ -8952,6 +8952,9 @@ bool SMPInstr::FillCmd(void) { // Analyze the instruction and its operands. void SMPInstr::Analyze(void) { + const auto pt = global_STARS_program->GetProcessorType(); + const auto is_x86 = pt==ptX86_64 || pt==ptX86_32; + bool DebugFlag = false; STARS_ea_t InstAddr = this->GetAddr(); @@ -8973,7 +8976,8 @@ void SMPInstr::Analyze(void) { // Record optimization category. // this->OptType = global_STARS_program->GetOptCategory(opcode); - if ((STARS_NN_int == opcode) || (STARS_NN_into == opcode) || (STARS_NN_int3 == opcode)) { + const auto is_x86_interrupt = (STARS_NN_int == opcode) || (STARS_NN_into == opcode) || (STARS_NN_int3 == opcode); + if (is_x86 && is_x86_interrupt) { this->SetInterrupt(); } else {