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 1424 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1435 bool in_range = (ipc ^ static_cast<uint32_t>(target) >> | 1435 bool in_range = (ipc ^ static_cast<uint32_t>(target) >> |
1436 (kImm26Bits + kImmFieldShift)) == 0; | 1436 (kImm26Bits + kImmFieldShift)) == 0; |
1437 DCHECK(in_range && ((target & 3) == 0)); | 1437 DCHECK(in_range && ((target & 3) == 0)); |
1438 #endif | 1438 #endif |
1439 positions_recorder()->WriteRecordedPositions(); | 1439 positions_recorder()->WriteRecordedPositions(); |
1440 GenInstrJump(JAL, target >> 2); | 1440 GenInstrJump(JAL, target >> 2); |
1441 } | 1441 } |
1442 | 1442 |
1443 | 1443 |
1444 void Assembler::jalr(Register rs, Register rd) { | 1444 void Assembler::jalr(Register rs, Register rd) { |
| 1445 DCHECK(rs.code() != rd.code()); |
1445 BlockTrampolinePoolScope block_trampoline_pool(this); | 1446 BlockTrampolinePoolScope block_trampoline_pool(this); |
1446 positions_recorder()->WriteRecordedPositions(); | 1447 positions_recorder()->WriteRecordedPositions(); |
1447 GenInstrRegister(SPECIAL, rs, zero_reg, rd, 0, JALR); | 1448 GenInstrRegister(SPECIAL, rs, zero_reg, rd, 0, JALR); |
1448 BlockTrampolinePoolFor(1); // For associated delay slot. | 1449 BlockTrampolinePoolFor(1); // For associated delay slot. |
1449 } | 1450 } |
1450 | 1451 |
1451 | 1452 |
1452 void Assembler::jic(Register rt, int16_t offset) { | 1453 void Assembler::jic(Register rt, int16_t offset) { |
1453 DCHECK(IsMipsArchVariant(kMips32r6)); | 1454 DCHECK(IsMipsArchVariant(kMips32r6)); |
1454 Instr instr = POP66 | (JIC << kRsShift) | (rt.code() << kRtShift) | | 1455 Instr instr = POP66 | (JIC << kRsShift) | (rt.code() << kRtShift) | |
(...skipping 1633 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3088 if (patched) { | 3089 if (patched) { |
3089 CpuFeatures::FlushICache(pc + 2, sizeof(Address)); | 3090 CpuFeatures::FlushICache(pc + 2, sizeof(Address)); |
3090 } | 3091 } |
3091 } | 3092 } |
3092 | 3093 |
3093 | 3094 |
3094 } // namespace internal | 3095 } // namespace internal |
3095 } // namespace v8 | 3096 } // namespace v8 |
3096 | 3097 |
3097 #endif // V8_TARGET_ARCH_MIPS | 3098 #endif // V8_TARGET_ARCH_MIPS |
OLD | NEW |