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 {