| OLD | NEW |
| 1 // Copyright 2010 the V8 project authors. All rights reserved. | 1 // Copyright 2011 the V8 project authors. All rights reserved. |
| 2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
| 3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
| 4 // met: | 4 // met: |
| 5 // | 5 // |
| 6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
| 7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
| 8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
| 9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
| 10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
| 11 // with the distribution. | 11 // with the distribution. |
| (...skipping 17 matching lines...) Expand all Loading... |
| 29 | 29 |
| 30 #if defined(V8_TARGET_ARCH_MIPS) | 30 #if defined(V8_TARGET_ARCH_MIPS) |
| 31 | 31 |
| 32 #include "constants-mips.h" | 32 #include "constants-mips.h" |
| 33 | 33 |
| 34 namespace v8 { | 34 namespace v8 { |
| 35 namespace internal { | 35 namespace internal { |
| 36 | 36 |
| 37 | 37 |
| 38 // ----------------------------------------------------------------------------- | 38 // ----------------------------------------------------------------------------- |
| 39 // Registers | 39 // Registers. |
| 40 | 40 |
| 41 | 41 |
| 42 // These register names are defined in a way to match the native disassembler | 42 // These register names are defined in a way to match the native disassembler |
| 43 // formatting. See for example the command "objdump -d <binary file>". | 43 // formatting. See for example the command "objdump -d <binary file>". |
| 44 const char* Registers::names_[kNumSimuRegisters] = { | 44 const char* Registers::names_[kNumSimuRegisters] = { |
| 45 "zero_reg", | 45 "zero_reg", |
| 46 "at", | 46 "at", |
| 47 "v0", "v1", | 47 "v0", "v1", |
| 48 "a0", "a1", "a2", "a3", | 48 "a0", "a1", "a2", "a3", |
| 49 "t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7", | 49 "t0", "t1", "t2", "t3", "t4", "t5", "t6", "t7", |
| (...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 138 } | 138 } |
| 139 i++; | 139 i++; |
| 140 } | 140 } |
| 141 | 141 |
| 142 // No Cregister with the reguested name found. | 142 // No Cregister with the reguested name found. |
| 143 return kInvalidFPURegister; | 143 return kInvalidFPURegister; |
| 144 } | 144 } |
| 145 | 145 |
| 146 | 146 |
| 147 // ----------------------------------------------------------------------------- | 147 // ----------------------------------------------------------------------------- |
| 148 // Instruction | 148 // Instructions. |
| 149 | 149 |
| 150 bool Instruction::IsForbiddenInBranchDelay() const { | 150 bool Instruction::IsForbiddenInBranchDelay() const { |
| 151 const int op = OpcodeFieldRaw(); | 151 const int op = OpcodeFieldRaw(); |
| 152 switch (op) { | 152 switch (op) { |
| 153 case J: | 153 case J: |
| 154 case JAL: | 154 case JAL: |
| 155 case BEQ: | 155 case BEQ: |
| 156 case BNE: | 156 case BNE: |
| 157 case BLEZ: | 157 case BLEZ: |
| 158 case BGTZ: | 158 case BGTZ: |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 286 break; | 286 break; |
| 287 case SPECIAL3: | 287 case SPECIAL3: |
| 288 switch (FunctionFieldRaw()) { | 288 switch (FunctionFieldRaw()) { |
| 289 case INS: | 289 case INS: |
| 290 case EXT: | 290 case EXT: |
| 291 return kRegisterType; | 291 return kRegisterType; |
| 292 default: | 292 default: |
| 293 UNREACHABLE(); | 293 UNREACHABLE(); |
| 294 }; | 294 }; |
| 295 break; | 295 break; |
| 296 case COP1: // Coprocessor instructions | 296 case COP1: // Coprocessor instructions. |
| 297 switch (RsFieldRawNoAssert()) { | 297 switch (RsFieldRawNoAssert()) { |
| 298 case BC1: // branch on coprocessor condition | 298 case BC1: // Branch on coprocessor condition. |
| 299 return kImmediateType; | 299 return kImmediateType; |
| 300 default: | 300 default: |
| 301 return kRegisterType; | 301 return kRegisterType; |
| 302 }; | 302 }; |
| 303 break; | 303 break; |
| 304 // 16 bits Immediate type instructions. eg: addi dest, src, imm16 | 304 // 16 bits Immediate type instructions. eg: addi dest, src, imm16. |
| 305 case REGIMM: | 305 case REGIMM: |
| 306 case BEQ: | 306 case BEQ: |
| 307 case BNE: | 307 case BNE: |
| 308 case BLEZ: | 308 case BLEZ: |
| 309 case BGTZ: | 309 case BGTZ: |
| 310 case ADDI: | 310 case ADDI: |
| 311 case ADDIU: | 311 case ADDIU: |
| 312 case SLTI: | 312 case SLTI: |
| 313 case SLTIU: | 313 case SLTIU: |
| 314 case ANDI: | 314 case ANDI: |
| (...skipping 14 matching lines...) Expand all Loading... |
| 329 case SB: | 329 case SB: |
| 330 case SH: | 330 case SH: |
| 331 case SWL: | 331 case SWL: |
| 332 case SW: | 332 case SW: |
| 333 case SWR: | 333 case SWR: |
| 334 case LWC1: | 334 case LWC1: |
| 335 case LDC1: | 335 case LDC1: |
| 336 case SWC1: | 336 case SWC1: |
| 337 case SDC1: | 337 case SDC1: |
| 338 return kImmediateType; | 338 return kImmediateType; |
| 339 // 26 bits immediate type instructions. eg: j imm26 | 339 // 26 bits immediate type instructions. eg: j imm26. |
| 340 case J: | 340 case J: |
| 341 case JAL: | 341 case JAL: |
| 342 return kJumpType; | 342 return kJumpType; |
| 343 default: | 343 default: |
| 344 UNREACHABLE(); | 344 UNREACHABLE(); |
| 345 }; | 345 }; |
| 346 return kUnsupported; | 346 return kUnsupported; |
| 347 } | 347 } |
| 348 | 348 |
| 349 | 349 |
| 350 } } // namespace v8::internal | 350 } } // namespace v8::internal |
| 351 | 351 |
| 352 #endif // V8_TARGET_ARCH_MIPS | 352 #endif // V8_TARGET_ARCH_MIPS |
| OLD | NEW |