| OLD | NEW | 
|---|
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. | 
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be | 
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. | 
| 4 | 4 | 
| 5 #include "src/v8.h" | 5 #include "src/v8.h" | 
| 6 | 6 | 
| 7 #if V8_TARGET_ARCH_MIPS | 7 #if V8_TARGET_ARCH_MIPS | 
| 8 | 8 | 
| 9 #include "src/mips/constants-mips.h" | 9 #include "src/mips/constants-mips.h" | 
| 10 | 10 | 
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 134     case J: | 134     case J: | 
| 135     case JAL: | 135     case JAL: | 
| 136     case BEQ: | 136     case BEQ: | 
| 137     case BNE: | 137     case BNE: | 
| 138     case BLEZ: | 138     case BLEZ: | 
| 139     case BGTZ: | 139     case BGTZ: | 
| 140     case BEQL: | 140     case BEQL: | 
| 141     case BNEL: | 141     case BNEL: | 
| 142     case BLEZL: | 142     case BLEZL: | 
| 143     case BGTZL: | 143     case BGTZL: | 
|  | 144     case BC: | 
|  | 145     case BALC: | 
| 144       return true; | 146       return true; | 
| 145     case REGIMM: | 147     case REGIMM: | 
| 146       switch (RtFieldRaw()) { | 148       switch (RtFieldRaw()) { | 
| 147         case BLTZ: | 149         case BLTZ: | 
| 148         case BGEZ: | 150         case BGEZ: | 
| 149         case BLTZAL: | 151         case BLTZAL: | 
| 150         case BGEZAL: | 152         case BGEZAL: | 
| 151           return true; | 153           return true; | 
| 152         default: | 154         default: | 
| 153           return false; | 155           return false; | 
| (...skipping 12 matching lines...) Expand all  Loading... | 
| 166       return false; | 168       return false; | 
| 167   } | 169   } | 
| 168 } | 170 } | 
| 169 | 171 | 
| 170 | 172 | 
| 171 bool Instruction::IsLinkingInstruction() const { | 173 bool Instruction::IsLinkingInstruction() const { | 
| 172   const int op = OpcodeFieldRaw(); | 174   const int op = OpcodeFieldRaw(); | 
| 173   switch (op) { | 175   switch (op) { | 
| 174     case JAL: | 176     case JAL: | 
| 175       return true; | 177       return true; | 
|  | 178     case POP76: | 
|  | 179       if (RsFieldRawNoAssert() == JIALC) | 
|  | 180         return true;  // JIALC | 
|  | 181       else | 
|  | 182         return false;  // BNEZC | 
| 176     case REGIMM: | 183     case REGIMM: | 
| 177       switch (RtFieldRaw()) { | 184       switch (RtFieldRaw()) { | 
| 178         case BGEZAL: | 185         case BGEZAL: | 
| 179         case BLTZAL: | 186         case BLTZAL: | 
| 180           return true; | 187           return true; | 
| 181       default: | 188       default: | 
| 182         return false; | 189         return false; | 
| 183       } | 190       } | 
| 184     case SPECIAL: | 191     case SPECIAL: | 
| 185       switch (FunctionFieldRaw()) { | 192       switch (FunctionFieldRaw()) { | 
| (...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 265         case CLZ: | 272         case CLZ: | 
| 266           return kRegisterType; | 273           return kRegisterType; | 
| 267         default: | 274         default: | 
| 268           return kUnsupported; | 275           return kUnsupported; | 
| 269       } | 276       } | 
| 270       break; | 277       break; | 
| 271     case SPECIAL3: | 278     case SPECIAL3: | 
| 272       switch (FunctionFieldRaw()) { | 279       switch (FunctionFieldRaw()) { | 
| 273         case INS: | 280         case INS: | 
| 274         case EXT: | 281         case EXT: | 
| 275         case BITSWAP: |  | 
| 276           return kRegisterType; | 282           return kRegisterType; | 
|  | 283         case BSHFL: { | 
|  | 284           int sa = SaFieldRaw() >> kSaShift; | 
|  | 285           switch (sa) { | 
|  | 286             case BITSWAP: | 
|  | 287               return kRegisterType; | 
|  | 288             case WSBH: | 
|  | 289             case SEB: | 
|  | 290             case SEH: | 
|  | 291               return kUnsupported; | 
|  | 292           } | 
|  | 293           sa >>= kBp2Bits; | 
|  | 294           switch (sa) { | 
|  | 295             case ALIGN: | 
|  | 296               return kRegisterType; | 
|  | 297             default: | 
|  | 298               return kUnsupported; | 
|  | 299           } | 
|  | 300         } | 
| 277         default: | 301         default: | 
| 278           return kUnsupported; | 302           return kUnsupported; | 
| 279       } | 303       } | 
| 280       break; | 304       break; | 
| 281     case COP1:    // Coprocessor instructions. | 305     case COP1:    // Coprocessor instructions. | 
| 282       switch (RsFieldRawNoAssert()) { | 306       switch (RsFieldRawNoAssert()) { | 
| 283         case BC1:   // Branch on coprocessor condition. | 307         case BC1:   // Branch on coprocessor condition. | 
| 284         case BC1EQZ: | 308         case BC1EQZ: | 
| 285         case BC1NEZ: | 309         case BC1NEZ: | 
| 286           return kImmediateType; | 310           return kImmediateType; | 
| (...skipping 15 matching lines...) Expand all  Loading... | 
| 302     case SLTI: | 326     case SLTI: | 
| 303     case SLTIU: | 327     case SLTIU: | 
| 304     case ANDI: | 328     case ANDI: | 
| 305     case ORI: | 329     case ORI: | 
| 306     case XORI: | 330     case XORI: | 
| 307     case LUI: | 331     case LUI: | 
| 308     case BEQL: | 332     case BEQL: | 
| 309     case BNEL: | 333     case BNEL: | 
| 310     case BLEZL: | 334     case BLEZL: | 
| 311     case BGTZL: | 335     case BGTZL: | 
| 312     case BEQZC: | 336     case POP66: | 
| 313     case BNEZC: | 337     case POP76: | 
| 314     case LB: | 338     case LB: | 
| 315     case LH: | 339     case LH: | 
| 316     case LWL: | 340     case LWL: | 
| 317     case LW: | 341     case LW: | 
| 318     case LBU: | 342     case LBU: | 
| 319     case LHU: | 343     case LHU: | 
| 320     case LWR: | 344     case LWR: | 
| 321     case SB: | 345     case SB: | 
| 322     case SH: | 346     case SH: | 
| 323     case SWL: | 347     case SWL: | 
| 324     case SW: | 348     case SW: | 
| 325     case SWR: | 349     case SWR: | 
| 326     case LWC1: | 350     case LWC1: | 
| 327     case LDC1: | 351     case LDC1: | 
| 328     case SWC1: | 352     case SWC1: | 
| 329     case SDC1: | 353     case SDC1: | 
|  | 354     case PCREL: | 
|  | 355     case BC: | 
|  | 356     case BALC: | 
| 330       return kImmediateType; | 357       return kImmediateType; | 
| 331     // 26 bits immediate type instructions. e.g.: j imm26. | 358     // 26 bits immediate type instructions. e.g.: j imm26. | 
| 332     case J: | 359     case J: | 
| 333     case JAL: | 360     case JAL: | 
| 334       return kJumpType; | 361       return kJumpType; | 
| 335     default: | 362     default: | 
| 336       return kUnsupported; | 363       return kUnsupported; | 
| 337   } | 364   } | 
| 338   return kUnsupported; | 365   return kUnsupported; | 
| 339 } | 366 } | 
| 340 | 367 | 
| 341 | 368 | 
| 342 }  // namespace internal | 369 }  // namespace internal | 
| 343 }  // namespace v8 | 370 }  // namespace v8 | 
| 344 | 371 | 
| 345 #endif  // V8_TARGET_ARCH_MIPS | 372 #endif  // V8_TARGET_ARCH_MIPS | 
| OLD | NEW | 
|---|