diff options
author | Gabe Black <gblack@eecs.umich.edu> | 2010-06-02 12:58:07 -0500 |
---|---|---|
committer | Gabe Black <gblack@eecs.umich.edu> | 2010-06-02 12:58:07 -0500 |
commit | 9ffc5e2ae64017cec061b112f4dc5e5846f44ed7 (patch) | |
tree | 5b9b3283c29f2f70e5e055620a57b752b3e208d2 /src/arch | |
parent | c4d09747a513ea54e459cd448d1684dfd232f375 (diff) | |
download | gem5-9ffc5e2ae64017cec061b112f4dc5e5846f44ed7.tar.xz |
ARM: Implement the pkh instruction.
Diffstat (limited to 'src/arch')
-rw-r--r-- | src/arch/arm/isa/insts/data.isa | 17 |
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) }}; |