Skip to content

Commit

Permalink
Issue #262 ([ARMv8 Decoding] FMUL instruction cannot have size:q = '10')
Browse files Browse the repository at this point in the history
SIMD vector x-indexed instructions that use the 'sz' field should be
invalid for a certain combination of the values of the 'sz', 'L' and 'Q'
fields.
  • Loading branch information
ssunny7 committed Dec 22, 2016
1 parent bdd6c97 commit 6ab9302
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions instructionAPI/src/InstructionDecoder-aarch64.C
Expand Up @@ -2315,6 +2315,13 @@ Expression::Ptr InstructionDecoder_aarch64::makeMemRefExPair2(){
template<unsigned int endBit, unsigned int startBit>
void InstructionDecoder_aarch64::OPRsz() {
_szField = field<startBit, endBit>(insn);

if(IS_INSN_SIMD_VEC_INDEX(insn)) {
int L = field<21, 21>(insn);

if(_szField == 0x1 && (L == 0x1 || _Q == 0))
isValid = false;
}
}

bool InstructionDecoder_aarch64::isSinglePrec() {
Expand Down

0 comments on commit 6ab9302

Please sign in to comment.