summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/arm/isa/insts/misc.isa12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/arch/arm/isa/insts/misc.isa b/src/arch/arm/isa/insts/misc.isa
index 7ec18c9e9..c7caf5cb7 100644
--- a/src/arch/arm/isa/insts/misc.isa
+++ b/src/arch/arm/isa/insts/misc.isa
@@ -534,4 +534,16 @@ let {{
header_output += BasicDeclare.subst(leavexIop)
decoder_output += BasicConstructor.subst(leavexIop)
exec_output += PredOpExecute.subst(leavexIop)
+
+ setendCode = '''
+ CPSR cpsr = Cpsr;
+ cpsr.e = imm;
+ Cpsr = cpsr;
+ '''
+ setendIop = InstObjParams("setend", "Setend", "ImmOp",
+ { "code": setendCode,
+ "predicate_test": predicateTest }, [])
+ header_output += ImmOpDeclare.subst(setendIop)
+ decoder_output += ImmOpConstructor.subst(setendIop)
+ exec_output += PredOpExecute.subst(setendIop)
}};