Chromium Code Reviews| Index: src/mips64/constants-mips64.cc | 
| diff --git a/src/mips64/constants-mips64.cc b/src/mips64/constants-mips64.cc | 
| index efabfe4f264c94f045386edd8a66874afd1b9380..31cc44887b8a965a009a3a7c6e5c9abc6a286c51 100644 | 
| --- a/src/mips64/constants-mips64.cc | 
| +++ b/src/mips64/constants-mips64.cc | 
| @@ -126,24 +126,28 @@ int FPURegisters::Number(const char* name) { | 
| // ----------------------------------------------------------------------------- | 
| // Instructions. | 
| -bool Instruction::IsForbiddenInBranchDelay() const { | 
| - const int op = OpcodeFieldRaw(); | 
| - switch (op) { | 
| +bool Instruction::IsForbiddenAfterBranchInstr(Instr instr) { | 
| + Opcode opcode = static_cast<Opcode>(instr & kOpcodeMask); | 
| + switch (opcode) { | 
| case J: | 
| case JAL: | 
| case BEQ: | 
| case BNE: | 
| - case BLEZ: | 
| - case BGTZ: | 
| + case BLEZ: // POP06 bgeuc/bleuc, blezalc, bgezalc | 
| + case BGTZ: // POP07 bltuc/bgtuc, bgtzalc, bltzalc | 
| case BEQL: | 
| case BNEL: | 
| - case BLEZL: | 
| - case BGTZL: | 
| + case BLEZL: // POP26 bgezc, blezc, bgec/blec | 
| + case BGTZL: // POP27 bgtzc, bltzc, bltc/bgtc | 
| case BC: | 
| case BALC: | 
| + case POP10: // beqzalc, bovc, beqc | 
| + case POP30: // bnezalc, bvnc, bnec | 
| 
 
balazs.kilvady
2015/12/18 19:18:05
I mistyped again, please: s/bvnc/bnvc
 
ivica.bogosavljevic
2015/12/22 10:22:39
Acknowledged.
 
 | 
| + case POP66: // beqzc, jic | 
| + case POP76: // bnezc, jialc | 
| return true; | 
| case REGIMM: | 
| - switch (RtFieldRaw()) { | 
| + switch (instr & kRtFieldMask) { | 
| case BLTZ: | 
| case BGEZ: | 
| case BLTZAL: | 
| @@ -154,7 +158,7 @@ bool Instruction::IsForbiddenInBranchDelay() const { | 
| } | 
| break; | 
| case SPECIAL: | 
| - switch (FunctionFieldRaw()) { | 
| + switch (instr & kFunctionFieldMask) { | 
| case JR: | 
| case JALR: | 
| return true; | 
| @@ -162,6 +166,17 @@ bool Instruction::IsForbiddenInBranchDelay() const { | 
| return false; | 
| } | 
| break; | 
| + case COP1: | 
| + switch (instr & kRsFieldMask) { | 
| + case BC1: | 
| + case BC1EQZ: | 
| + case BC1NEZ: | 
| + return true; | 
| + break; | 
| + default: | 
| + return false; | 
| + } | 
| + break; | 
| default: | 
| return false; | 
| } | 
| @@ -169,8 +184,7 @@ bool Instruction::IsForbiddenInBranchDelay() const { | 
| bool Instruction::IsLinkingInstruction() const { | 
| - const int op = OpcodeFieldRaw(); | 
| - switch (op) { | 
| + switch (OpcodeFieldRaw()) { | 
| case JAL: | 
| return true; | 
| case POP76: |