summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/arm/isa/insts/data.isa17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/arch/arm/isa/insts/data.isa b/src/arch/arm/isa/insts/data.isa
index ee291a1d5..474bd8c4e 100644
--- a/src/arch/arm/isa/insts/data.isa
+++ b/src/arch/arm/isa/insts/data.isa
@@ -792,4 +792,21 @@ let {{
replaceBits(resTemp, 31, 16, midRes);
Dest = resTemp;
''', flagType="none", buildCc=False)
+
+ buildRegDataInst("pkhbt", '''
+ uint32_t resTemp = 0;
+ uint16_t arg1Low = bits(Op1, 15, 0);
+ uint16_t arg2High = bits(secondOp, 31, 16);
+ replaceBits(resTemp, 15, 0, arg1Low);
+ replaceBits(resTemp, 31, 16, arg2High);
+ Dest = resTemp;
+ ''', flagType="none", buildCc=False)
+ buildRegDataInst("pkhtb", '''
+ uint32_t resTemp = 0;
+ uint16_t arg1High = bits(Op1, 31, 16);
+ uint16_t arg2Low = bits(secondOp, 15, 0);
+ replaceBits(resTemp, 15, 0, arg2Low);
+ replaceBits(resTemp, 31, 16, arg1High);
+ Dest = resTemp;
+ ''', flagType="none", buildCc=False)
}};