| Index: src/mips/assembler-mips.cc
|
| diff --git a/src/mips/assembler-mips.cc b/src/mips/assembler-mips.cc
|
| index eee79a2156c69c3e8061c524fb4832b3465dd720..a04d456ae9692f9bc838bcc730a91bde6e683dff 100644
|
| --- a/src/mips/assembler-mips.cc
|
| +++ b/src/mips/assembler-mips.cc
|
| @@ -35,7 +35,7 @@
|
|
|
| #include "v8.h"
|
|
|
| -#if defined(V8_TARGET_ARCH_MIPS)
|
| +#if V8_TARGET_ARCH_MIPS
|
|
|
| #include "mips/assembler-mips-inl.h"
|
| #include "serialize.h"
|
| @@ -501,11 +501,13 @@ bool Assembler::IsBranch(Instr instr) {
|
| (opcode == COP1 && rs_field == BC1); // Coprocessor branch.
|
| }
|
|
|
| +
|
| bool Assembler::IsEmittedConstant(Instr instr) {
|
| uint32_t label_constant = GetLabelConst(instr);
|
| return label_constant == 0; // Emitted label const in reg-exp engine.
|
| }
|
|
|
| +
|
| bool Assembler::IsBeq(Instr instr) {
|
| return GetOpcodeField(instr) == BEQ;
|
| }
|
| @@ -539,10 +541,12 @@ bool Assembler::IsJal(Instr instr) {
|
| return GetOpcodeField(instr) == JAL;
|
| }
|
|
|
| +
|
| bool Assembler::IsJr(Instr instr) {
|
| return GetOpcodeField(instr) == SPECIAL && GetFunctionField(instr) == JR;
|
| }
|
|
|
| +
|
| bool Assembler::IsJalr(Instr instr) {
|
| return GetOpcodeField(instr) == SPECIAL && GetFunctionField(instr) == JALR;
|
| }
|
| @@ -825,6 +829,7 @@ void Assembler::next(Label* L) {
|
| }
|
| }
|
|
|
| +
|
| bool Assembler::is_near(Label* L) {
|
| if (L->is_bound()) {
|
| return ((pc_offset() - L->pos()) < kMaxBranchOffset - 4 * kInstrSize);
|
| @@ -832,6 +837,7 @@ bool Assembler::is_near(Label* L) {
|
| return false;
|
| }
|
|
|
| +
|
| // We have to use a temporary register for things that can be relocated even
|
| // if they can be encoded in the MIPS's 16 bits of immediate-offset instruction
|
| // space. There is no guarantee that the relocated location can be similarly
|
| @@ -1475,7 +1481,7 @@ void Assembler::break_(uint32_t code, bool break_as_stop) {
|
| void Assembler::stop(const char* msg, uint32_t code) {
|
| ASSERT(code > kMaxWatchpointCode);
|
| ASSERT(code <= kMaxStopCode);
|
| -#if defined(V8_HOST_ARCH_MIPS)
|
| +#if V8_HOST_ARCH_MIPS
|
| break_(0x54321);
|
| #else // V8_HOST_ARCH_MIPS
|
| BlockTrampolinePoolFor(2);
|
| @@ -1669,6 +1675,7 @@ void Assembler::cfc1(Register rt, FPUControlRegister fs) {
|
| GenInstrRegister(COP1, CFC1, rt, fs);
|
| }
|
|
|
| +
|
| void Assembler::DoubleAsTwoUInt32(double d, uint32_t* lo, uint32_t* hi) {
|
| uint64_t i;
|
| OS::MemCopy(&i, &d, 8);
|
| @@ -1677,6 +1684,7 @@ void Assembler::DoubleAsTwoUInt32(double d, uint32_t* lo, uint32_t* hi) {
|
| *hi = i >> 32;
|
| }
|
|
|
| +
|
| // Arithmetic.
|
|
|
| void Assembler::add_d(FPURegister fd, FPURegister fs, FPURegister ft) {
|
| @@ -2257,6 +2265,7 @@ void Assembler::set_target_address_at(Address pc, Address target) {
|
| CPU::FlushICache(pc, (patched_jump ? 3 : 2) * sizeof(int32_t));
|
| }
|
|
|
| +
|
| void Assembler::JumpLabelToJumpRegister(Address pc) {
|
| // Address pc points to lui/ori instructions.
|
| // Jump to label may follow at pc + 2 * kInstrSize.
|
|
|