| Index: src/s390/simulator-s390.cc
|
| diff --git a/src/s390/simulator-s390.cc b/src/s390/simulator-s390.cc
|
| index 7503b477116920d6a1c7fcc51f08dc5bdcb381bb..c57ee3269cc659bd380eae242aaedb45af831edd 100644
|
| --- a/src/s390/simulator-s390.cc
|
| +++ b/src/s390/simulator-s390.cc
|
| @@ -5965,6 +5965,12 @@ uintptr_t Simulator::PopAddress() {
|
| int r2 = AS(RREInstruction)->R2Value(); \
|
| int length = 4;
|
|
|
| +#define DECODE_RRE_INSTRUCTION_M3(r1, r2, m3) \
|
| + int r1 = AS(RREInstruction)->R1Value(); \
|
| + int r2 = AS(RREInstruction)->R2Value(); \
|
| + int m3 = AS(RREInstruction)->M3Value(); \
|
| + int length = 4;
|
| +
|
| #define DECODE_RRE_INSTRUCTION_NO_R2(r1) \
|
| int r1 = AS(RREInstruction)->R1Value(); \
|
| int length = 4;
|
| @@ -6376,11 +6382,23 @@ EVALUATE(BKPT) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(SPM) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SPM) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(BALR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(BALR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(BCTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(BCTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(BCR) {
|
| DCHECK_OPCODE(BCR);
|
| @@ -6399,11 +6417,23 @@ EVALUATE(BCR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(SVC) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SVC) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(BSM) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(BSM) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(BASSM) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(BASSM) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(BASR) {
|
| DCHECK_OPCODE(BASR);
|
| @@ -6424,11 +6454,23 @@ EVALUATE(BASR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(MVCL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MVCL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CLCL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CLCL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LPR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LPR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(LNR) {
|
| DCHECK_OPCODE(LNR);
|
| @@ -6602,9 +6644,17 @@ EVALUATE(LDR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(CDR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CDR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LER) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LER) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(STH) {
|
| DCHECK_OPCODE(STH);
|
| @@ -6640,7 +6690,11 @@ EVALUATE(STC) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(IC_z) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(IC_z) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(EX) {
|
| DCHECK_OPCODE(EX);
|
| @@ -6664,11 +6718,23 @@ EVALUATE(EX) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(BAL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(BAL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(BCT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(BCT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(BC) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(BC) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(LH) {
|
| DCHECK_OPCODE(LH);
|
| @@ -6684,7 +6750,11 @@ EVALUATE(LH) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(CH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(AH) {
|
| DCHECK_OPCODE(AH);
|
| @@ -6737,13 +6807,29 @@ EVALUATE(MH) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(BAS) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(BAS) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CVD) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CVD) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CVB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CVB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LAE) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LAE) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(N) {
|
| DCHECK_OPCODE(N);
|
| @@ -6850,13 +6936,29 @@ EVALUATE(S) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(M) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(M) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(D) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(D) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(AL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(AL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(STD) {
|
| DCHECK_OPCODE(STD);
|
| @@ -6880,7 +6982,11 @@ EVALUATE(LD) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(CD) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CD) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(STE) {
|
| DCHECK_OPCODE(STE);
|
| @@ -6915,9 +7021,17 @@ EVALUATE(LE) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(BRXH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(BRXH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(BRXLE) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(BRXLE) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(BXH) {
|
| DCHECK_OPCODE(BXH);
|
| @@ -6947,7 +7061,11 @@ EVALUATE(BXH) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(BXLE) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(BXLE) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(SRL) {
|
| DCHECK_OPCODE(SRL);
|
| @@ -7060,7 +7178,11 @@ EVALUATE(SRDA) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(SLDA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SLDA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(STM) {
|
| DCHECK_OPCODE(STM);
|
| @@ -7103,11 +7225,23 @@ EVALUATE(TM) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(MVI) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MVI) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TS) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TS) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(NI) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(NI) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(CLI) {
|
| DCHECK_OPCODE(CLI);
|
| @@ -7120,9 +7254,17 @@ EVALUATE(CLI) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(OI) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(OI) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(XI) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(XI) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(LM) {
|
| DCHECK_OPCODE(LM);
|
| @@ -7144,25 +7286,65 @@ EVALUATE(LM) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(MVCLE) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MVCLE) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CLCLE) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CLCLE) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MC) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MC) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CDS) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CDS) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(STCM) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STCM) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(ICM) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ICM) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(BPRP) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(BPRP) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(BPP) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(BPP) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TRTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TRTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MVN) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MVN) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(MVC) {
|
| DCHECK_OPCODE(MVC);
|
| @@ -7185,73 +7367,209 @@ EVALUATE(MVC) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(MVZ) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MVZ) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(NC) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(NC) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CLC) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CLC) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(OC) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(OC) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(XC) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(XC) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MVCP) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MVCP) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TRT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TRT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(ED) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ED) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(EDMK) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(EDMK) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(PKU) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(PKU) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(UNPKU) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(UNPKU) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MVCIN) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MVCIN) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(PKA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(PKA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(UNPKA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(UNPKA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(PLO) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(PLO) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LMD) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LMD) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SRP) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SRP) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MVO) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MVO) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(PACK) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(PACK) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(UNPK) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(UNPK) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(ZAP) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ZAP) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(AP) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(AP) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SP) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SP) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MP) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MP) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(DP) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(DP) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(UPT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(UPT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(PFPO) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(PFPO) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(IIHH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(IIHH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(IIHL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(IIHL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(IILH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(IILH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(IILL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(IILL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(NIHH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(NIHH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(NIHL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(NIHL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(NILH) {
|
| DCHECK_OPCODE(NILH);
|
| @@ -7275,9 +7593,17 @@ EVALUATE(NILL) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(OIHH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(OIHH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(OIHL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(OIHL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(OILH) {
|
| DCHECK_OPCODE(OILH);
|
| @@ -7300,17 +7626,37 @@ EVALUATE(OILL) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(LLIHH) { return DecodeInstructionOriginal(instr); }
|
| -
|
| -EVALUATE(LLIHL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LLIHH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LLILH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LLIHL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LLILL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LLILH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TMLH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LLILL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TMLL) {
|
| +EVALUATE(TMLH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
| +
|
| +EVALUATE(TMLL) {
|
| DCHECK_OPCODE(TMLL);
|
| DECODE_RI_A_INSTRUCTION(instr, r1, i2);
|
| int mask = i2 & 0x0000FFFF;
|
| @@ -7368,9 +7714,17 @@ EVALUATE(TMLL) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(TMHH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TMHH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TMHL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TMHL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(BRAS) {
|
| DCHECK_OPCODE(BRAS);
|
| @@ -7479,7 +7833,11 @@ EVALUATE(LARL) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(LGFI) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LGFI) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(BRASL) {
|
| DCHECK_OPCODE(BRASL);
|
| @@ -7710,93 +8068,269 @@ EVALUATE(CLFI) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(LLHRL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LLHRL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LGHRL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LGHRL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LHRL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LHRL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LLGHRL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LLGHRL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(STHRL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STHRL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LGRL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LGRL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(STGRL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STGRL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LGFRL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LGFRL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LRL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LRL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LLGFRL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LLGFRL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(STRL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STRL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(EXRL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(EXRL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(PFDRL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(PFDRL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CGHRL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CGHRL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CHRL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CHRL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CGRL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CGRL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CGFRL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CGFRL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(ECTG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ECTG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CSST) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CSST) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LPD) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LPD) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LPDG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LPDG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(BRCTH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(BRCTH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(AIH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(AIH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(ALSIH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ALSIH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(ALSIHN) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ALSIHN) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CIH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CIH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(STCK) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STCK) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CFC) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CFC) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(IPM) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(IPM) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(HSCH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(HSCH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MSCH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MSCH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SSCH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SSCH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(STSCH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STSCH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TSCH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TSCH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TPI) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TPI) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SAL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SAL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(RSCH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(RSCH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(STCRW) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STCRW) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(STCPS) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STCPS) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(RCHP) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(RCHP) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SCHM) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SCHM) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CKSM) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CKSM) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SAR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SAR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(EAR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(EAR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(MSR) {
|
| DCHECK_OPCODE(MSR);
|
| @@ -7807,49 +8341,144 @@ EVALUATE(MSR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(MVST) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MVST) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CUSE) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CUSE) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SRST) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SRST) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(XSCH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(XSCH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(STCKE) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STCKE) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(STCKF) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STCKF) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SRNM) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SRNM) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(STFPC) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STFPC) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LFPC) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LFPC) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TRE) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TRE) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CUUTF) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CUUTF) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CUTFU) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CUTFU) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(STFLE) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STFLE) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SRNMB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SRNMB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SRNMT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SRNMT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LFAS) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LFAS) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(PPA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(PPA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(ETND) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ETND) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TEND) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TEND) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(NIAI) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(NIAI) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TABORT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TABORT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TRAP4) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TRAP4) {
|
| + DCHECK_OPCODE(TRAP4);
|
| + int length = 4;
|
| + // whack the space of the caller allocated stack
|
| + int64_t sp_addr = get_register(sp);
|
| + for (int i = 0; i < kCalleeRegisterSaveAreaSize / kPointerSize; ++i) {
|
| + // we dont want to whack the RA (r14)
|
| + if (i != 14) (reinterpret_cast<intptr_t*>(sp_addr))[i] = 0xdeadbabe;
|
| + }
|
| + SoftwareInterrupt(instr);
|
| + return length;
|
| +}
|
|
|
| EVALUATE(LPEBR) {
|
| DCHECK_OPCODE(LPEBR);
|
| @@ -7869,7 +8498,11 @@ EVALUATE(LPEBR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(LNEBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LNEBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(LTEBR) {
|
| DCHECK_OPCODE(LTEBR);
|
| @@ -7881,7 +8514,11 @@ EVALUATE(LTEBR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(LCEBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LCEBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(LDEBR) {
|
| DCHECK_OPCODE(LDEBR);
|
| @@ -7892,13 +8529,29 @@ EVALUATE(LDEBR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(LXDBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LXDBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LXEBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LXEBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MXDBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MXDBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(KEBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(KEBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(CEBR) {
|
| DCHECK_OPCODE(CEBR);
|
| @@ -7938,7 +8591,11 @@ EVALUATE(SEBR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(MDEBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MDEBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(DEBR) {
|
| DCHECK_OPCODE(DEBR);
|
| @@ -7952,9 +8609,17 @@ EVALUATE(DEBR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(MAEBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MAEBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MSEBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MSEBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(LPDBR) {
|
| DCHECK_OPCODE(LPDBR);
|
| @@ -7973,7 +8638,11 @@ EVALUATE(LPDBR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(LNDBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LNDBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(LTDBR) {
|
| DCHECK_OPCODE(LTDBR);
|
| @@ -8023,7 +8692,11 @@ EVALUATE(SQDBR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(SQXBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SQXBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(MEEBR) {
|
| DCHECK_OPCODE(MEEBR);
|
| @@ -8036,7 +8709,11 @@ EVALUATE(MEEBR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(KDBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(KDBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(CDBR) {
|
| DCHECK_OPCODE(CDBR);
|
| @@ -8107,41 +8784,115 @@ EVALUATE(MADBR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(MSDBR) { return DecodeInstructionOriginal(instr); }
|
| -
|
| -EVALUATE(LPXBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MSDBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LNXBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LPXBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LTXBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LNXBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LCXBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LTXBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LEDBRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LCXBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LDXBRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LEDBRA) {
|
| + DCHECK_OPCODE(LEDBRA);
|
| + DECODE_RRE_INSTRUCTION(r1, r2);
|
| + double r2_val = get_double_from_d_register(r2);
|
| + set_d_register_from_float32(r1, static_cast<float>(r2_val));
|
| + return length;
|
| +}
|
|
|
| -EVALUATE(LEXBRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LDXBRA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(FIXBRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LEXBRA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(KXBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(FIXBRA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CXBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(KXBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(AXBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CXBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
| +
|
| +EVALUATE(AXBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SXBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SXBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MXBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MXBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(DXBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(DXBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TBEDR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TBEDR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TBDR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TBDR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(DIEBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(DIEBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(FIEBRA) {
|
| DCHECK_OPCODE(FIEBRA);
|
| @@ -8168,11 +8919,23 @@ EVALUATE(FIEBRA) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(THDER) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(THDER) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(THDR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(THDR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(DIDBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(DIDBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(FIDBRA) {
|
| DCHECK_OPCODE(FIDBRA);
|
| @@ -8199,15 +8962,35 @@ EVALUATE(FIDBRA) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(LXR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LXR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LPDFR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LPDFR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LNDFR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LNDFR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LCDFR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LCDFR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LZER) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LZER) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(LZDR) {
|
| DCHECK_OPCODE(LZDR);
|
| @@ -8216,13 +8999,29 @@ EVALUATE(LZDR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(LZXR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LZXR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SFPC) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SFPC) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SFASR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SFASR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(EFPC) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(EFPC) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(CELFBR) {
|
| DCHECK_OPCODE(CELFBR);
|
| @@ -8242,19 +9041,209 @@ EVALUATE(CDLFBR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(CXLFBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CXLFBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CEFBRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CEFBRA) {
|
| + DCHECK_OPCODE(CEFBRA);
|
| + DECODE_RRE_INSTRUCTION(r1, r2);
|
| + int32_t fr2_val = get_low_register<int32_t>(r2);
|
| + float fr1_val = static_cast<float>(fr2_val);
|
| + set_d_register_from_float32(r1, fr1_val);
|
| + return length;
|
| +}
|
|
|
| -EVALUATE(CDFBRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CDFBRA) {
|
| + DCHECK_OPCODE(CDFBRA);
|
| + DECODE_RRE_INSTRUCTION(r1, r2);
|
| + int32_t r2_val = get_low_register<int32_t>(r2);
|
| + double r1_val = static_cast<double>(r2_val);
|
| + set_d_register_from_double(r1, r1_val);
|
| + return length;
|
| +}
|
|
|
| -EVALUATE(CXFBRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CXFBRA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CFEBRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CFEBRA) {
|
| + DCHECK_OPCODE(CFEBRA);
|
| + DECODE_RRE_INSTRUCTION_M3(r1, r2, mask_val);
|
| + float r2_fval = get_float32_from_d_register(r2);
|
| + int32_t r1_val = 0;
|
| +
|
| + SetS390RoundConditionCode(r2_fval, INT32_MAX, INT32_MIN);
|
| +
|
| + switch (mask_val) {
|
| + case CURRENT_ROUNDING_MODE:
|
| + case ROUND_TO_PREPARE_FOR_SHORTER_PRECISION: {
|
| + r1_val = static_cast<int32_t>(r2_fval);
|
| + break;
|
| + }
|
| + case ROUND_TO_NEAREST_WITH_TIES_AWAY_FROM_0: {
|
| + float ceil_val = std::ceil(r2_fval);
|
| + float floor_val = std::floor(r2_fval);
|
| + float sub_val1 = std::fabs(r2_fval - floor_val);
|
| + float sub_val2 = std::fabs(r2_fval - ceil_val);
|
| + if (sub_val1 > sub_val2) {
|
| + r1_val = static_cast<int32_t>(ceil_val);
|
| + } else if (sub_val1 < sub_val2) {
|
| + r1_val = static_cast<int32_t>(floor_val);
|
| + } else { // round away from zero:
|
| + if (r2_fval > 0.0) {
|
| + r1_val = static_cast<int32_t>(ceil_val);
|
| + } else {
|
| + r1_val = static_cast<int32_t>(floor_val);
|
| + }
|
| + }
|
| + break;
|
| + }
|
| + case ROUND_TO_NEAREST_WITH_TIES_TO_EVEN: {
|
| + float ceil_val = std::ceil(r2_fval);
|
| + float floor_val = std::floor(r2_fval);
|
| + float sub_val1 = std::fabs(r2_fval - floor_val);
|
| + float sub_val2 = std::fabs(r2_fval - ceil_val);
|
| + if (sub_val1 > sub_val2) {
|
| + r1_val = static_cast<int32_t>(ceil_val);
|
| + } else if (sub_val1 < sub_val2) {
|
| + r1_val = static_cast<int32_t>(floor_val);
|
| + } else { // check which one is even:
|
| + int32_t c_v = static_cast<int32_t>(ceil_val);
|
| + int32_t f_v = static_cast<int32_t>(floor_val);
|
| + if (f_v % 2 == 0)
|
| + r1_val = f_v;
|
| + else
|
| + r1_val = c_v;
|
| + }
|
| + break;
|
| + }
|
| + case ROUND_TOWARD_0: {
|
| + // check for overflow, cast r2_fval to 64bit integer
|
| + // then check value within the range of INT_MIN and INT_MAX
|
| + // and set condition code accordingly
|
| + int64_t temp = static_cast<int64_t>(r2_fval);
|
| + if (temp < INT_MIN || temp > INT_MAX) {
|
| + condition_reg_ = CC_OF;
|
| + }
|
| + r1_val = static_cast<int32_t>(r2_fval);
|
| + break;
|
| + }
|
| + case ROUND_TOWARD_PLUS_INFINITE: {
|
| + r1_val = static_cast<int32_t>(std::ceil(r2_fval));
|
| + break;
|
| + }
|
| + case ROUND_TOWARD_MINUS_INFINITE: {
|
| + // check for overflow, cast r2_fval to 64bit integer
|
| + // then check value within the range of INT_MIN and INT_MAX
|
| + // and set condition code accordingly
|
| + int64_t temp = static_cast<int64_t>(std::floor(r2_fval));
|
| + if (temp < INT_MIN || temp > INT_MAX) {
|
| + condition_reg_ = CC_OF;
|
| + }
|
| + r1_val = static_cast<int32_t>(std::floor(r2_fval));
|
| + break;
|
| + }
|
| + default:
|
| + UNREACHABLE();
|
| + }
|
| + set_low_register(r1, r1_val);
|
| + return length;
|
| +}
|
|
|
| -EVALUATE(CFDBRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CFDBRA) {
|
| + DCHECK_OPCODE(CFDBRA);
|
| + DECODE_RRE_INSTRUCTION_M3(r1, r2, mask_val);
|
| + double r2_val = get_double_from_d_register(r2);
|
| + int32_t r1_val = 0;
|
| +
|
| + SetS390RoundConditionCode(r2_val, INT32_MAX, INT32_MIN);
|
| +
|
| + switch (mask_val) {
|
| + case CURRENT_ROUNDING_MODE:
|
| + case ROUND_TO_PREPARE_FOR_SHORTER_PRECISION: {
|
| + r1_val = static_cast<int32_t>(r2_val);
|
| + break;
|
| + }
|
| + case ROUND_TO_NEAREST_WITH_TIES_AWAY_FROM_0: {
|
| + double ceil_val = std::ceil(r2_val);
|
| + double floor_val = std::floor(r2_val);
|
| + double sub_val1 = std::fabs(r2_val - floor_val);
|
| + double sub_val2 = std::fabs(r2_val - ceil_val);
|
| + if (sub_val1 > sub_val2) {
|
| + r1_val = static_cast<int32_t>(ceil_val);
|
| + } else if (sub_val1 < sub_val2) {
|
| + r1_val = static_cast<int32_t>(floor_val);
|
| + } else { // round away from zero:
|
| + if (r2_val > 0.0) {
|
| + r1_val = static_cast<int32_t>(ceil_val);
|
| + } else {
|
| + r1_val = static_cast<int32_t>(floor_val);
|
| + }
|
| + }
|
| + break;
|
| + }
|
| + case ROUND_TO_NEAREST_WITH_TIES_TO_EVEN: {
|
| + double ceil_val = std::ceil(r2_val);
|
| + double floor_val = std::floor(r2_val);
|
| + double sub_val1 = std::fabs(r2_val - floor_val);
|
| + double sub_val2 = std::fabs(r2_val - ceil_val);
|
| + if (sub_val1 > sub_val2) {
|
| + r1_val = static_cast<int32_t>(ceil_val);
|
| + } else if (sub_val1 < sub_val2) {
|
| + r1_val = static_cast<int32_t>(floor_val);
|
| + } else { // check which one is even:
|
| + int32_t c_v = static_cast<int32_t>(ceil_val);
|
| + int32_t f_v = static_cast<int32_t>(floor_val);
|
| + if (f_v % 2 == 0)
|
| + r1_val = f_v;
|
| + else
|
| + r1_val = c_v;
|
| + }
|
| + break;
|
| + }
|
| + case ROUND_TOWARD_0: {
|
| + // check for overflow, cast r2_val to 64bit integer
|
| + // then check value within the range of INT_MIN and INT_MAX
|
| + // and set condition code accordingly
|
| + int64_t temp = static_cast<int64_t>(r2_val);
|
| + if (temp < INT_MIN || temp > INT_MAX) {
|
| + condition_reg_ = CC_OF;
|
| + }
|
| + r1_val = static_cast<int32_t>(r2_val);
|
| + break;
|
| + }
|
| + case ROUND_TOWARD_PLUS_INFINITE: {
|
| + r1_val = static_cast<int32_t>(std::ceil(r2_val));
|
| + break;
|
| + }
|
| + case ROUND_TOWARD_MINUS_INFINITE: {
|
| + // check for overflow, cast r2_val to 64bit integer
|
| + // then check value within the range of INT_MIN and INT_MAX
|
| + // and set condition code accordingly
|
| + int64_t temp = static_cast<int64_t>(std::floor(r2_val));
|
| + if (temp < INT_MIN || temp > INT_MAX) {
|
| + condition_reg_ = CC_OF;
|
| + }
|
| + r1_val = static_cast<int32_t>(std::floor(r2_val));
|
| + break;
|
| + }
|
| + default:
|
| + UNREACHABLE();
|
| + }
|
| + set_low_register(r1, r1_val);
|
| + return length;
|
| +}
|
|
|
| -EVALUATE(CFXBRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CFXBRA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(CLFEBR) {
|
| DCHECK_OPCODE(CLFEBR);
|
| @@ -8276,7 +9265,11 @@ EVALUATE(CLFDBR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(CLFXBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CLFXBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(CELGBR) {
|
| DCHECK_OPCODE(CELGBR);
|
| @@ -8296,19 +9289,143 @@ EVALUATE(CDLGBR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(CXLGBR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CXLGBR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
| +
|
| +EVALUATE(CEGBRA) {
|
| + DCHECK_OPCODE(CEGBRA);
|
| + DECODE_RRE_INSTRUCTION(r1, r2);
|
| + int64_t fr2_val = get_register(r2);
|
| + float fr1_val = static_cast<float>(fr2_val);
|
| + set_d_register_from_float32(r1, fr1_val);
|
| + return length;
|
| +}
|
| +
|
| +EVALUATE(CDGBRA) {
|
| + DCHECK_OPCODE(CDGBRA);
|
| + DECODE_RRE_INSTRUCTION(r1, r2);
|
| + int64_t r2_val = get_register(r2);
|
| + double r1_val = static_cast<double>(r2_val);
|
| + set_d_register_from_double(r1, r1_val);
|
| + return length;
|
| +}
|
| +
|
| +EVALUATE(CXGBRA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
| +
|
| +EVALUATE(CGEBRA) {
|
| + DCHECK_OPCODE(CGEBRA);
|
| + DECODE_RRE_INSTRUCTION_M3(r1, r2, mask_val);
|
| + float r2_fval = get_float32_from_d_register(r2);
|
| + int64_t r1_val = 0;
|
|
|
| -EVALUATE(CEGBRA) { return DecodeInstructionOriginal(instr); }
|
| + SetS390RoundConditionCode(r2_fval, INT64_MAX, INT64_MIN);
|
|
|
| -EVALUATE(CDGBRA) { return DecodeInstructionOriginal(instr); }
|
| + switch (mask_val) {
|
| + case CURRENT_ROUNDING_MODE:
|
| + case ROUND_TO_NEAREST_WITH_TIES_AWAY_FROM_0:
|
| + case ROUND_TO_PREPARE_FOR_SHORTER_PRECISION: {
|
| + UNIMPLEMENTED();
|
| + break;
|
| + }
|
| + case ROUND_TO_NEAREST_WITH_TIES_TO_EVEN: {
|
| + float ceil_val = std::ceil(r2_fval);
|
| + float floor_val = std::floor(r2_fval);
|
| + if (std::abs(r2_fval - floor_val) > std::abs(r2_fval - ceil_val)) {
|
| + r1_val = static_cast<int64_t>(ceil_val);
|
| + } else if (std::abs(r2_fval - floor_val) < std::abs(r2_fval - ceil_val)) {
|
| + r1_val = static_cast<int64_t>(floor_val);
|
| + } else { // check which one is even:
|
| + int64_t c_v = static_cast<int64_t>(ceil_val);
|
| + int64_t f_v = static_cast<int64_t>(floor_val);
|
| + if (f_v % 2 == 0)
|
| + r1_val = f_v;
|
| + else
|
| + r1_val = c_v;
|
| + }
|
| + break;
|
| + }
|
| + case ROUND_TOWARD_0: {
|
| + r1_val = static_cast<int64_t>(r2_fval);
|
| + break;
|
| + }
|
| + case ROUND_TOWARD_PLUS_INFINITE: {
|
| + r1_val = static_cast<int64_t>(std::ceil(r2_fval));
|
| + break;
|
| + }
|
| + case ROUND_TOWARD_MINUS_INFINITE: {
|
| + r1_val = static_cast<int64_t>(std::floor(r2_fval));
|
| + break;
|
| + }
|
| + default:
|
| + UNREACHABLE();
|
| + }
|
| + set_register(r1, r1_val);
|
| + return length;
|
| +}
|
|
|
| -EVALUATE(CXGBRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CGDBRA) {
|
| + DCHECK_OPCODE(CGDBRA);
|
| + DECODE_RRE_INSTRUCTION_M3(r1, r2, mask_val);
|
| + double r2_val = get_double_from_d_register(r2);
|
| + int64_t r1_val = 0;
|
|
|
| -EVALUATE(CGEBRA) { return DecodeInstructionOriginal(instr); }
|
| + SetS390RoundConditionCode(r2_val, INT64_MAX, INT64_MIN);
|
|
|
| -EVALUATE(CGDBRA) { return DecodeInstructionOriginal(instr); }
|
| + switch (mask_val) {
|
| + case CURRENT_ROUNDING_MODE:
|
| + case ROUND_TO_NEAREST_WITH_TIES_AWAY_FROM_0:
|
| + case ROUND_TO_PREPARE_FOR_SHORTER_PRECISION: {
|
| + UNIMPLEMENTED();
|
| + break;
|
| + }
|
| + case ROUND_TO_NEAREST_WITH_TIES_TO_EVEN: {
|
| + double ceil_val = std::ceil(r2_val);
|
| + double floor_val = std::floor(r2_val);
|
| + if (std::abs(r2_val - floor_val) > std::abs(r2_val - ceil_val)) {
|
| + r1_val = static_cast<int64_t>(ceil_val);
|
| + } else if (std::abs(r2_val - floor_val) < std::abs(r2_val - ceil_val)) {
|
| + r1_val = static_cast<int64_t>(floor_val);
|
| + } else { // check which one is even:
|
| + int64_t c_v = static_cast<int64_t>(ceil_val);
|
| + int64_t f_v = static_cast<int64_t>(floor_val);
|
| + if (f_v % 2 == 0)
|
| + r1_val = f_v;
|
| + else
|
| + r1_val = c_v;
|
| + }
|
| + break;
|
| + }
|
| + case ROUND_TOWARD_0: {
|
| + r1_val = static_cast<int64_t>(r2_val);
|
| + break;
|
| + }
|
| + case ROUND_TOWARD_PLUS_INFINITE: {
|
| + r1_val = static_cast<int64_t>(std::ceil(r2_val));
|
| + break;
|
| + }
|
| + case ROUND_TOWARD_MINUS_INFINITE: {
|
| + r1_val = static_cast<int64_t>(std::floor(r2_val));
|
| + break;
|
| + }
|
| + default:
|
| + UNREACHABLE();
|
| + }
|
| + set_register(r1, r1_val);
|
| + return length;
|
| +}
|
|
|
| -EVALUATE(CGXBRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CGXBRA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(CLGEBR) {
|
| DCHECK_OPCODE(CLGEBR);
|
| @@ -8330,11 +9447,23 @@ EVALUATE(CLGDBR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(CFER) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CFER) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CFDR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CFDR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CFXR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CFXR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(LDGR) {
|
| DCHECK_OPCODE(LDGR);
|
| @@ -8347,11 +9476,23 @@ EVALUATE(LDGR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(CGER) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CGER) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CGDR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CGDR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CGXR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CGXR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(LGDR) {
|
| DCHECK_OPCODE(LGDR);
|
| @@ -8362,95 +9503,275 @@ EVALUATE(LGDR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(MDTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MDTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MDTRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MDTRA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(DDTRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(DDTRA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(ADTRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ADTRA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SDTRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SDTRA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LDETR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LDETR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LEDTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LEDTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LTDTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LTDTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(FIDTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(FIDTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MXTRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MXTRA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(DXTRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(DXTRA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(AXTRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(AXTRA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SXTRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SXTRA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LXDTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LXDTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LDXTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LDXTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LTXTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LTXTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(FIXTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(FIXTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(KDTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(KDTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CGDTRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CGDTRA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CUDTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CUDTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CDTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CDTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(EEDTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(EEDTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(ESDTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ESDTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(KXTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(KXTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CGXTRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CGXTRA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CUXTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CUXTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CSXTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CSXTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CXTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CXTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(EEXTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(EEXTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(ESXTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ESXTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CDGTRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CDGTRA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CDUTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CDUTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CDSTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CDSTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CEDTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CEDTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(QADTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(QADTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(IEDTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(IEDTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(RRDTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(RRDTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CXGTRA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CXGTRA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CXUTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CXUTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CXSTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CXSTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CEXTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CEXTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(QAXTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(QAXTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(IEXTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(IEXTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(RRXTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(RRXTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LPGR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LPGR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(LNGR) {
|
| DCHECK_OPCODE(LNGR);
|
| @@ -8503,9 +9824,17 @@ EVALUATE(SGR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(ALGR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ALGR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SLGR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SLGR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(MSGR) {
|
| DCHECK_OPCODE(MSGR);
|
| @@ -8529,11 +9858,23 @@ EVALUATE(DSGR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(LRVGR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LRVGR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LPGFR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LPGFR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LNGFR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LNGFR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(LTGFR) {
|
| DCHECK_OPCODE(LTGFR);
|
| @@ -8558,9 +9899,20 @@ EVALUATE(LCGFR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(LLGFR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LLGFR) {
|
| + DCHECK_OPCODE(LLGFR);
|
| + DECODE_RRE_INSTRUCTION(r1, r2);
|
| + int32_t r2_val = get_low_register<int32_t>(r2);
|
| + uint64_t r2_finalval = (static_cast<uint64_t>(r2_val) & 0x00000000ffffffff);
|
| + set_register(r1, r2_finalval);
|
| + return length;
|
| +}
|
|
|
| -EVALUATE(LLGTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LLGTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(AGFR) {
|
| DCHECK_OPCODE(AGFR);
|
| @@ -8591,17 +9943,41 @@ EVALUATE(SGFR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(ALGFR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ALGFR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SLGFR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SLGFR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MSGFR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MSGFR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(DSGFR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(DSGFR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(KMAC) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(KMAC) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LRVR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LRVR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(CGR) {
|
| DCHECK_OPCODE(CGR);
|
| @@ -8623,49 +9999,137 @@ EVALUATE(CLGR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(KMF) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(KMF) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(KMO) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(KMO) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(PCC) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(PCC) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(KMCTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(KMCTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(KM) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(KM) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(KMC) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(KMC) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CGFR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CGFR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(KIMD) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(KIMD) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(KLMD) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(KLMD) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CFDTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CFDTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CLGDTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CLGDTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CLFDTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CLFDTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(BCTGR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(BCTGR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CFXTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CFXTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CLFXTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CLFXTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CDFTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CDFTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CDLGTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CDLGTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CDLFTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CDLFTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CXFTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CXFTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CXLGTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CXLGTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CXLFTR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CXLFTR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CGRT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CGRT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(NGR) {
|
| DCHECK_OPCODE(NGR);
|
| @@ -8722,11 +10186,23 @@ EVALUATE(FLOGR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(LLGCR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LLGCR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LLGHR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LLGHR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MLGR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MLGR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(DLGR) {
|
| DCHECK_OPCODE(DLGR);
|
| @@ -8748,23 +10224,59 @@ EVALUATE(DLGR) {
|
| #endif
|
| }
|
|
|
| -EVALUATE(ALCGR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ALCGR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SLBGR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SLBGR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(EPSW) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(EPSW) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TRTT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TRTT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TRTO) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TRTO) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TROT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TROT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TROO) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TROO) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LLCR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LLCR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LLHR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LLHR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(MLR) {
|
| DCHECK_OPCODE(MLR);
|
| @@ -8840,43 +10352,133 @@ EVALUATE(SLBR) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(CU14) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CU14) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
| +
|
| +EVALUATE(CU24) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CU24) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CU41) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CU41) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CU42) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CU42) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TRTRE) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TRTRE) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SRSTU) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SRSTU) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TRTE) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TRTE) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(AHHHR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(AHHHR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SHHHR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SHHHR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ALHHHR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(ALHHHR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SLHHHR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SLHHHR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CHHR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CHHR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(AHHLR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(AHHLR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SHHLR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SHHLR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ALHHLR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(ALHHLR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SLHHLR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SLHHLR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CHLR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CHLR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(POPCNT_Z) {
|
| + DCHECK_OPCODE(POPCNT_Z);
|
| + DECODE_RRE_INSTRUCTION(r1, r2);
|
| + int64_t r2_val = get_register(r2);
|
| + int64_t r1_val = 0;
|
|
|
| -EVALUATE(POPCNT_Z) { return DecodeInstructionOriginal(instr); }
|
| + uint8_t* r2_val_ptr = reinterpret_cast<uint8_t*>(&r2_val);
|
| + uint8_t* r1_val_ptr = reinterpret_cast<uint8_t*>(&r1_val);
|
| + for (int i = 0; i < 8; i++) {
|
| + uint32_t x = static_cast<uint32_t>(r2_val_ptr[i]);
|
| +#if defined(__GNUC__)
|
| + r1_val_ptr[i] = __builtin_popcount(x);
|
| +#else
|
| +#error unsupport __builtin_popcount
|
| +#endif
|
| + }
|
| + set_register(r1, static_cast<uint64_t>(r1_val));
|
| + return length;
|
| +}
|
|
|
| -EVALUATE(LOCGR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LOCGR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(NGRK) {
|
| DCHECK_OPCODE(NGRK);
|
| @@ -8969,7 +10571,11 @@ EVALUATE(SLGRK) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(LOCR) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LOCR) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(NRK) {
|
| DCHECK_OPCODE(NRK);
|
| @@ -9077,7 +10683,11 @@ EVALUATE(LTG) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(CVBY) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CVBY) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(AG) {
|
| DCHECK_OPCODE(AG);
|
| @@ -9153,11 +10763,23 @@ EVALUATE(MSG) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(DSG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(DSG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CVBG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CVBG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LRVG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LRVG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(LT) {
|
| DCHECK_OPCODE(LT);
|
| @@ -9195,7 +10817,11 @@ EVALUATE(LLGF) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(LLGT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LLGT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(AGF) {
|
| DCHECK_OPCODE(AGF);
|
| @@ -9227,13 +10853,29 @@ EVALUATE(SGF) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(ALGF) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ALGF) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SLGF) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SLGF) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MSGF) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MSGF) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(DSGF) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(DSGF) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(LRV) {
|
| DCHECK_OPCODE(LRV);
|
| @@ -9284,23 +10926,59 @@ EVALUATE(CLG) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(NTSTG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(NTSTG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CVDY) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CVDY) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CVDG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CVDG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(STRVG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STRVG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CGF) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CGF) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CLGF) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CLGF) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LTGF) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LTGF) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CGH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CGH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(PFD) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(PFD) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(STRV) {
|
| DCHECK_OPCODE(STRV);
|
| @@ -9325,7 +11003,11 @@ EVALUATE(STRVH) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(BCTG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(BCTG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(MSY) {
|
| DCHECK_OPCODE(MSY);
|
| @@ -9432,7 +11114,11 @@ EVALUATE(SY) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(MFY) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MFY) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(ALY) {
|
| DCHECK_OPCODE(ALY);
|
| @@ -9497,9 +11183,17 @@ EVALUATE(STCY) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(ICY) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ICY) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LAEY) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LAEY) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(LB) {
|
| DCHECK_OPCODE(LB);
|
| @@ -9537,7 +11231,11 @@ EVALUATE(LHY) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(CHY) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CHY) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(AHY) {
|
| DCHECK_OPCODE(AHY);
|
| @@ -9577,7 +11275,11 @@ EVALUATE(SHY) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(MHY) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MHY) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(NG) {
|
| DCHECK_OPCODE(NG);
|
| @@ -9618,19 +11320,47 @@ EVALUATE(XG) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(LGAT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LGAT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MLG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MLG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(DLG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(DLG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(ALCG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ALCG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SLBG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SLBG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(STPQ) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STPQ) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LPQ) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LPQ) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(LLGH) {
|
| DCHECK_OPCODE(LLGH);
|
| @@ -9656,43 +11386,119 @@ EVALUATE(LLH) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(ML) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ML) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(DL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(DL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(ALC) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ALC) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SLB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SLB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LLGTAT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LLGTAT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LLGFAT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LLGFAT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LAT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LAT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LBH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LBH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LLCH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LLCH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(STCH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STCH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LHH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LHH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LLHH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LLHH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(STHH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STHH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LFHAT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LFHAT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LFH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LFH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(STFH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STFH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CHF) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CHF) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MVCDK) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MVCDK) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MVHHI) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MVHHI) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(MVGHI) {
|
| DCHECK_OPCODE(MVGHI);
|
| @@ -9714,17 +11520,41 @@ EVALUATE(MVHI) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(CHHSI) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CHHSI) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CGHSI) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CGHSI) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CHSI) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CHSI) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CLFHSI) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CLFHSI) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TBEGIN) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TBEGIN) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TBEGINC) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TBEGINC) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(LMG) {
|
| DCHECK_OPCODE(LMG);
|
| @@ -9821,7 +11651,11 @@ EVALUATE(SLLG) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(CSY) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CSY) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(RLLG) {
|
| DCHECK_OPCODE(RLLG);
|
| @@ -9864,21 +11698,53 @@ EVALUATE(STMG) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(STMH) { return DecodeInstructionOriginal(instr); }
|
| -
|
| -EVALUATE(STCMH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STMH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
| +
|
| +EVALUATE(STCMH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(STCMY) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STCMY) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CDSY) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CDSY) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CDSG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CDSG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(BXHG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(BXHG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(BXLEG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(BXLEG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(ECAG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ECAG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(TMY) {
|
| DCHECK_OPCODE(TMY);
|
| @@ -9903,9 +11769,17 @@ EVALUATE(TMY) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(MVIY) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MVIY) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(NIY) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(NIY) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(CLIY) {
|
| DCHECK_OPCODE(CLIY);
|
| @@ -9920,9 +11794,17 @@ EVALUATE(CLIY) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(OIY) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(OIY) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(XIY) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(XIY) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(ASI) {
|
| DCHECK_OPCODE(ASI);
|
| @@ -9947,7 +11829,11 @@ EVALUATE(ASI) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(ALSI) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ALSI) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(AGSI) {
|
| DCHECK_OPCODE(AGSI);
|
| @@ -9972,15 +11858,35 @@ EVALUATE(AGSI) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(ALGSI) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ALGSI) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(ICMH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ICMH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(ICMY) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ICMY) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MVCLU) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MVCLU) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CLCLU) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CLCLU) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(STMY) {
|
| DCHECK_OPCODE(STMY);
|
| @@ -10003,7 +11909,11 @@ EVALUATE(STMY) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(LMH) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LMH) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(LMY) {
|
| DCHECK_OPCODE(LMY);
|
| @@ -10026,7 +11936,11 @@ EVALUATE(LMY) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(TP) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TP) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(SRAK) {
|
| DCHECK_OPCODE(SRAK);
|
| @@ -10101,71 +12015,203 @@ EVALUATE(SLLK) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(LOCG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LOCG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(STOCG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STOCG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LANG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LANG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LAOG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LAOG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LAXG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LAXG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LAAG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LAAG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LAALG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LAALG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LOC) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LOC) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(STOC) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(STOC) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LAN) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LAN) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LAO) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LAO) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LAX) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LAX) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LAA) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LAA) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LAAL) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LAAL) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(BRXHG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(BRXHG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(BRXLG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(BRXLG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(RISBLG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(RISBLG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(RNSBG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(RNSBG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(ROSBG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ROSBG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(RXSBG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(RXSBG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(RISBGN) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(RISBGN) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(RISBHG) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(RISBHG) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CGRJ) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CGRJ) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CGIT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CGIT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CIT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CIT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CLFIT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CLFIT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CGIJ) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CGIJ) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CIJ) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CIJ) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(ALHSIK) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ALHSIK) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(ALGHSIK) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(ALGHSIK) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CGRB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CGRB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CGIB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CGIB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CIB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CIB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(LDEB) {
|
| DCHECK_OPCODE(LDEB);
|
| @@ -10182,35 +12228,95 @@ EVALUATE(LDEB) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(LXDB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LXDB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(LXEB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(LXEB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MXDB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MXDB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(KEB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(KEB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CEB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CEB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(AEB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(AEB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SEB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SEB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MDEB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MDEB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(DEB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(DEB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MAEB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MAEB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MSEB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MSEB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TCEB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TCEB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TCDB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TCDB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TCXB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TCXB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SQEB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SQEB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(SQDB) {
|
| DCHECK_OPCODE(SQDB);
|
| @@ -10225,9 +12331,17 @@ EVALUATE(SQDB) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(MEEB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MEEB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(KDB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(KDB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(CDB) {
|
| DCHECK_OPCODE(CDB);
|
| @@ -10299,29 +12413,77 @@ EVALUATE(DDB) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(MADB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MADB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(MSDB) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(MSDB) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SLDT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SLDT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SRDT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SRDT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SLXT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SLXT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(SRXT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(SRXT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TDCET) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TDCET) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TDGET) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TDGET) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TDCDT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TDCDT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TDGDT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TDGDT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TDCXT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TDCXT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(TDGXT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(TDGXT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| EVALUATE(LEY) {
|
| DCHECK_OPCODE(LEY);
|
| @@ -10371,13 +12533,29 @@ EVALUATE(STDY) {
|
| return length;
|
| }
|
|
|
| -EVALUATE(CZDT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CZDT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CZXT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CZXT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CDZT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CDZT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| -EVALUATE(CXZT) { return DecodeInstructionOriginal(instr); }
|
| +EVALUATE(CXZT) {
|
| + UNIMPLEMENTED();
|
| + USE(instr);
|
| + return 0;
|
| +}
|
|
|
| #undef EVALUATE
|
|
|
|
|