| Index: src/mips64/macro-assembler-mips64.h
|
| diff --git a/src/mips64/macro-assembler-mips64.h b/src/mips64/macro-assembler-mips64.h
|
| index 884a0019d7f3c7abcd6045273f57afc45acf32cd..fbfa9f5db9c6a59c3182c241d58ea0f1ea9efe4b 100644
|
| --- a/src/mips64/macro-assembler-mips64.h
|
| +++ b/src/mips64/macro-assembler-mips64.h
|
| @@ -265,8 +265,8 @@ class MacroAssembler: public Assembler {
|
|
|
| void Call(Label* target);
|
|
|
| - void Move(Register dst, Handle<Object> handle) { li(dst, handle); }
|
| - void Move(Register dst, Smi* smi) { li(dst, Operand(smi)); }
|
| + inline void Move(Register dst, Handle<Object> handle) { li(dst, handle); }
|
| + inline void Move(Register dst, Smi* smi) { li(dst, Operand(smi)); }
|
|
|
| inline void Move(Register dst, Register src) {
|
| if (!dst.is(src)) {
|
| @@ -274,17 +274,29 @@ class MacroAssembler: public Assembler {
|
| }
|
| }
|
|
|
| - inline void Move(FPURegister dst, FPURegister src) {
|
| + inline void Move_d(FPURegister dst, FPURegister src) {
|
| if (!dst.is(src)) {
|
| mov_d(dst, src);
|
| }
|
| }
|
|
|
| + inline void Move_s(FPURegister dst, FPURegister src) {
|
| + if (!dst.is(src)) {
|
| + mov_s(dst, src);
|
| + }
|
| + }
|
| +
|
| + inline void Move(FPURegister dst, FPURegister src) { Move_d(dst, src); }
|
| +
|
| inline void Move(Register dst_low, Register dst_high, FPURegister src) {
|
| mfc1(dst_low, src);
|
| mfhc1(dst_high, src);
|
| }
|
|
|
| + inline void Move(Register dst, FPURegister src) { dmfc1(dst, src); }
|
| +
|
| + inline void Move(FPURegister dst, Register src) { dmtc1(src, dst); }
|
| +
|
| inline void FmoveHigh(Register dst_high, FPURegister src) {
|
| mfhc1(dst_high, src);
|
| }
|
| @@ -313,6 +325,17 @@ class MacroAssembler: public Assembler {
|
| void Movt(Register rd, Register rs, uint16_t cc = 0);
|
| void Movf(Register rd, Register rs, uint16_t cc = 0);
|
|
|
| + // Min, Max macros.
|
| + // On pre-r6 these functions may modify at and t8 registers.
|
| + void MinNaNCheck_d(FPURegister dst, FPURegister src1, FPURegister src2,
|
| + Label* nan = nullptr);
|
| + void MaxNaNCheck_d(FPURegister dst, FPURegister src1, FPURegister src2,
|
| + Label* nan = nullptr);
|
| + void MinNaNCheck_s(FPURegister dst, FPURegister src1, FPURegister src2,
|
| + Label* nan = nullptr);
|
| + void MaxNaNCheck_s(FPURegister dst, FPURegister src1, FPURegister src2,
|
| + Label* nan = nullptr);
|
| +
|
| void Clz(Register rd, Register rs);
|
|
|
| // Jump unconditionally to given label.
|
|
|