Skip to content

Commit

Permalink
The entire set of implementation defined system registers for ARM64 w…
Browse files Browse the repository at this point in the history
…ill flatten to a single register named "IMPLEMENTATION_DEFINED_SYSREG".
  • Loading branch information
ssunny7 committed May 20, 2016
1 parent 893d7ee commit f47f425
Showing 1 changed file with 6 additions and 1 deletion.
7 changes: 6 additions & 1 deletion instructionAPI/src/InstructionDecoder-aarch64.C
Original file line number Diff line number Diff line change
Expand Up @@ -432,7 +432,12 @@ namespace Dyninst
if(InstructionDecoder_aarch64::sysRegMap.count(systemRegEncoding) <= 0)
assert(!"tried to access system register not accessible in EL0");

insn_in_progress->appendOperand(makeRegisterExpression(InstructionDecoder_aarch64::sysRegMap[systemRegEncoding]), !isRtRead, isRtRead);
MachRegister reg;
if((op0Field & 0x3) == 0x3 && (crnField & 0x3) == 0x3 && (crnField & 0x8) == 0x8)
reg = aarch64::IMPLEMENTATION_DEFINED_SYSREG;
else
reg = InstructionDecoder_aarch64::sysRegMap[systemRegEncoding];
insn_in_progress->appendOperand(makeRegisterExpression(reg), !isRtRead, isRtRead);
insn_in_progress->appendOperand(makeRtExpr(), isRtRead, !isRtRead);
if(!isRtRead)
insn_in_progress->m_Operands.reverse();
Expand Down

0 comments on commit f47f425

Please sign in to comment.