OLD | NEW |
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. | 1 // Copyright (c) 1994-2006 Sun Microsystems Inc. |
2 // All Rights Reserved. | 2 // All Rights Reserved. |
3 // | 3 // |
4 // Redistribution and use in source and binary forms, with or without | 4 // Redistribution and use in source and binary forms, with or without |
5 // modification, are permitted provided that the following conditions are | 5 // modification, are permitted provided that the following conditions are |
6 // met: | 6 // met: |
7 // | 7 // |
8 // - Redistributions of source code must retain the above copyright notice, | 8 // - Redistributions of source code must retain the above copyright notice, |
9 // this list of conditions and the following disclaimer. | 9 // this list of conditions and the following disclaimer. |
10 // | 10 // |
(...skipping 1430 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1441 (kImm26Bits + kImmFieldShift)) == 0; | 1441 (kImm26Bits + kImmFieldShift)) == 0; |
1442 DCHECK(in_range && ((target & 3) == 0)); | 1442 DCHECK(in_range && ((target & 3) == 0)); |
1443 } | 1443 } |
1444 #endif | 1444 #endif |
1445 positions_recorder()->WriteRecordedPositions(); | 1445 positions_recorder()->WriteRecordedPositions(); |
1446 GenInstrJump(JAL, static_cast<uint32_t>(target >> 2) & kImm26Mask); | 1446 GenInstrJump(JAL, static_cast<uint32_t>(target >> 2) & kImm26Mask); |
1447 } | 1447 } |
1448 | 1448 |
1449 | 1449 |
1450 void Assembler::jalr(Register rs, Register rd) { | 1450 void Assembler::jalr(Register rs, Register rd) { |
| 1451 DCHECK(rs.code() != rd.code()); |
1451 BlockTrampolinePoolScope block_trampoline_pool(this); | 1452 BlockTrampolinePoolScope block_trampoline_pool(this); |
1452 positions_recorder()->WriteRecordedPositions(); | 1453 positions_recorder()->WriteRecordedPositions(); |
1453 GenInstrRegister(SPECIAL, rs, zero_reg, rd, 0, JALR); | 1454 GenInstrRegister(SPECIAL, rs, zero_reg, rd, 0, JALR); |
1454 BlockTrampolinePoolFor(1); // For associated delay slot. | 1455 BlockTrampolinePoolFor(1); // For associated delay slot. |
1455 } | 1456 } |
1456 | 1457 |
1457 | 1458 |
1458 void Assembler::jic(Register rt, int16_t offset) { | 1459 void Assembler::jic(Register rt, int16_t offset) { |
1459 DCHECK(kArchVariant == kMips64r6); | 1460 DCHECK(kArchVariant == kMips64r6); |
1460 Instr instr = POP66 | (JIC << kRsShift) | (rt.code() << kRtShift) | | 1461 Instr instr = POP66 | (JIC << kRsShift) | (rt.code() << kRtShift) | |
(...skipping 1777 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3238 if (icache_flush_mode != SKIP_ICACHE_FLUSH) { | 3239 if (icache_flush_mode != SKIP_ICACHE_FLUSH) { |
3239 CpuFeatures::FlushICache(pc, 4 * Assembler::kInstrSize); | 3240 CpuFeatures::FlushICache(pc, 4 * Assembler::kInstrSize); |
3240 } | 3241 } |
3241 } | 3242 } |
3242 | 3243 |
3243 | 3244 |
3244 } // namespace internal | 3245 } // namespace internal |
3245 } // namespace v8 | 3246 } // namespace v8 |
3246 | 3247 |
3247 #endif // V8_TARGET_ARCH_MIPS64 | 3248 #endif // V8_TARGET_ARCH_MIPS64 |
OLD | NEW |