Index: src/mips64/macro-assembler-mips64.h |
diff --git a/src/mips64/macro-assembler-mips64.h b/src/mips64/macro-assembler-mips64.h |
index 4ef3e532f7bad0b9bbd563cec2e08e3891bf3ca0..95d6c785f0e05978f97c2ee2af89a2cb3294bdba 100644 |
--- a/src/mips64/macro-assembler-mips64.h |
+++ b/src/mips64/macro-assembler-mips64.h |
@@ -599,12 +599,19 @@ class MacroAssembler: public Assembler { |
DEFINE_INSTRUCTION(Addu); |
DEFINE_INSTRUCTION(Daddu); |
+ DEFINE_INSTRUCTION(Div); |
+ DEFINE_INSTRUCTION(Divu); |
+ DEFINE_INSTRUCTION(Ddivu); |
+ DEFINE_INSTRUCTION(Mod); |
+ DEFINE_INSTRUCTION(Modu); |
DEFINE_INSTRUCTION(Ddiv); |
DEFINE_INSTRUCTION(Subu); |
DEFINE_INSTRUCTION(Dsubu); |
DEFINE_INSTRUCTION(Dmod); |
+ DEFINE_INSTRUCTION(Dmodu); |
DEFINE_INSTRUCTION(Mul); |
DEFINE_INSTRUCTION(Mulh); |
+ DEFINE_INSTRUCTION(Mulhu); |
DEFINE_INSTRUCTION(Dmul); |
DEFINE_INSTRUCTION(Dmulh); |
DEFINE_INSTRUCTION2(Mult); |
@@ -758,6 +765,7 @@ class MacroAssembler: public Assembler { |
// MIPS64 R2 instruction macro. |
void Ins(Register rt, Register rs, uint16_t pos, uint16_t size); |
void Ext(Register rt, Register rs, uint16_t pos, uint16_t size); |
+ void Dext(Register rt, Register rs, uint16_t pos, uint16_t size); |
// --------------------------------------------------------------------------- |
// FPU macros. These do not handle special cases like NaN or +- inf. |
@@ -1168,12 +1176,20 @@ class MacroAssembler: public Assembler { |
Register overflow_dst, |
Register scratch = at); |
+ void AdduAndCheckForOverflow(Register dst, Register left, |
+ const Operand& right, Register overflow_dst, |
+ Register scratch = at); |
+ |
void SubuAndCheckForOverflow(Register dst, |
Register left, |
Register right, |
Register overflow_dst, |
Register scratch = at); |
+ void SubuAndCheckForOverflow(Register dst, Register left, |
+ const Operand& right, Register overflow_dst, |
+ Register scratch = at); |
+ |
void BranchOnOverflow(Label* label, |
Register overflow_check, |
BranchDelaySlot bd = PROTECT) { |
@@ -1198,13 +1214,10 @@ class MacroAssembler: public Assembler { |
// Runtime calls. |
// See comments at the beginning of CEntryStub::Generate. |
- inline void PrepareCEntryArgs(int num_args) { |
- li(s0, num_args); |
- li(s1, (num_args - 1) * kPointerSize); |
- } |
+ inline void PrepareCEntryArgs(int num_args) { li(a0, num_args); } |
inline void PrepareCEntryFunction(const ExternalReference& ref) { |
- li(s2, Operand(ref)); |
+ li(a1, Operand(ref)); |
} |
#define COND_ARGS Condition cond = al, Register rs = zero_reg, \ |
@@ -1720,6 +1733,7 @@ const Operand& rt = Operand(zero_reg), BranchDelaySlot bd = PROTECT |
bool generating_stub_; |
bool has_frame_; |
+ bool has_double_zero_reg_set_; |
// This handle will be patched with the code object on installation. |
Handle<Object> code_object_; |