| Index: src/mips/macro-assembler-mips.h
|
| diff --git a/src/mips/macro-assembler-mips.h b/src/mips/macro-assembler-mips.h
|
| index 985ef0c830b82825641e5e1417954f98c4b88883..d85d966fd7300aeac1bcf4411579d6f4855217e3 100644
|
| --- a/src/mips/macro-assembler-mips.h
|
| +++ b/src/mips/macro-assembler-mips.h
|
| @@ -99,44 +99,11 @@ class MacroAssembler: public Assembler {
|
| // macro assembler.
|
| MacroAssembler(Isolate* isolate, void* buffer, int size);
|
|
|
| -// Arguments macros.
|
| + // Arguments macros.
|
| #define COND_TYPED_ARGS Condition cond, Register r1, const Operand& r2
|
| #define COND_ARGS cond, r1, r2
|
|
|
| -// Prototypes.
|
| -
|
| -// Prototypes for functions with no target (eg Ret()).
|
| -#define DECLARE_NOTARGET_PROTOTYPE(Name) \
|
| - void Name(BranchDelaySlot bd = PROTECT); \
|
| - void Name(COND_TYPED_ARGS, BranchDelaySlot bd = PROTECT); \
|
| - inline void Name(BranchDelaySlot bd, COND_TYPED_ARGS) { \
|
| - Name(COND_ARGS, bd); \
|
| - }
|
| -
|
| -// Prototypes for functions with a target.
|
| -
|
| -// Cases when relocation may be needed.
|
| -#define DECLARE_RELOC_PROTOTYPE(Name, target_type) \
|
| - void Name(target_type target, \
|
| - RelocInfo::Mode rmode, \
|
| - BranchDelaySlot bd = PROTECT); \
|
| - inline void Name(BranchDelaySlot bd, \
|
| - target_type target, \
|
| - RelocInfo::Mode rmode) { \
|
| - Name(target, rmode, bd); \
|
| - } \
|
| - void Name(target_type target, \
|
| - RelocInfo::Mode rmode, \
|
| - COND_TYPED_ARGS, \
|
| - BranchDelaySlot bd = PROTECT); \
|
| - inline void Name(BranchDelaySlot bd, \
|
| - target_type target, \
|
| - RelocInfo::Mode rmode, \
|
| - COND_TYPED_ARGS) { \
|
| - Name(target, rmode, COND_ARGS, bd); \
|
| - }
|
| -
|
| -// Cases when relocation is not needed.
|
| + // Cases when relocation is not needed.
|
| #define DECLARE_NORELOC_PROTOTYPE(Name, target_type) \
|
| void Name(target_type target, BranchDelaySlot bd = PROTECT); \
|
| inline void Name(BranchDelaySlot bd, target_type target) { \
|
| @@ -151,44 +118,44 @@ class MacroAssembler: public Assembler {
|
| Name(target, COND_ARGS, bd); \
|
| }
|
|
|
| -// Target prototypes.
|
| -
|
| -#define DECLARE_JUMP_CALL_PROTOTYPES(Name) \
|
| - DECLARE_NORELOC_PROTOTYPE(Name, Register) \
|
| - DECLARE_NORELOC_PROTOTYPE(Name, const Operand&) \
|
| - DECLARE_RELOC_PROTOTYPE(Name, byte*) \
|
| - DECLARE_RELOC_PROTOTYPE(Name, Handle<Code>)
|
| -
|
| #define DECLARE_BRANCH_PROTOTYPES(Name) \
|
| DECLARE_NORELOC_PROTOTYPE(Name, Label*) \
|
| DECLARE_NORELOC_PROTOTYPE(Name, int16_t)
|
|
|
| + DECLARE_BRANCH_PROTOTYPES(Branch)
|
| + DECLARE_BRANCH_PROTOTYPES(BranchAndLink)
|
|
|
| -DECLARE_JUMP_CALL_PROTOTYPES(Jump)
|
| -DECLARE_JUMP_CALL_PROTOTYPES(Call)
|
| -
|
| -DECLARE_BRANCH_PROTOTYPES(Branch)
|
| -DECLARE_BRANCH_PROTOTYPES(BranchAndLink)
|
| -
|
| -DECLARE_NOTARGET_PROTOTYPE(Ret)
|
| -
|
| +#undef DECLARE_BRANCH_PROTOTYPES
|
| #undef COND_TYPED_ARGS
|
| #undef COND_ARGS
|
| -#undef DECLARE_NOTARGET_PROTOTYPE
|
| -#undef DECLARE_NORELOC_PROTOTYPE
|
| -#undef DECLARE_RELOC_PROTOTYPE
|
| -#undef DECLARE_JUMP_CALL_PROTOTYPES
|
| -#undef DECLARE_BRANCH_PROTOTYPES
|
|
|
| - void CallWithAstId(Handle<Code> code,
|
| - RelocInfo::Mode rmode = RelocInfo::CODE_TARGET,
|
| - unsigned ast_id = kNoASTId,
|
| - Condition cond = al,
|
| - Register r1 = zero_reg,
|
| - const Operand& r2 = Operand(zero_reg));
|
|
|
| - int CallSize(Register reg);
|
| - int CallSize(Handle<Code> code, RelocInfo::Mode rmode);
|
| + // Jump, Call, and Ret pseudo instructions implementing inter-working.
|
| +#define COND_ARGS Condition cond = al, Register rs = zero_reg, \
|
| + const Operand& rt = Operand(zero_reg), BranchDelaySlot bd = PROTECT
|
| +
|
| + void Jump(Register target, COND_ARGS);
|
| + void Jump(intptr_t target, RelocInfo::Mode rmode, COND_ARGS);
|
| + void Jump(Address target, RelocInfo::Mode rmode, COND_ARGS);
|
| + void Jump(Handle<Code> code, RelocInfo::Mode rmode, COND_ARGS);
|
| + int CallSize(Register target, COND_ARGS);
|
| + void Call(Register target, COND_ARGS);
|
| + int CallSize(Address target, RelocInfo::Mode rmode, COND_ARGS);
|
| + void Call(Address target, RelocInfo::Mode rmode, COND_ARGS);
|
| + int CallSize(Handle<Code> code,
|
| + RelocInfo::Mode rmode = RelocInfo::CODE_TARGET,
|
| + unsigned ast_id = kNoASTId,
|
| + COND_ARGS);
|
| + void Call(Handle<Code> code,
|
| + RelocInfo::Mode rmode = RelocInfo::CODE_TARGET,
|
| + unsigned ast_id = kNoASTId,
|
| + COND_ARGS);
|
| + void Ret(COND_ARGS);
|
| + inline void Ret(BranchDelaySlot bd) {
|
| + Ret(al, zero_reg, Operand(zero_reg), bd);
|
| + }
|
| +
|
| +#undef COND_ARGS
|
|
|
| // Emit code to discard a non-negative number of pointer-sized elements
|
| // from the stack, clobbering only the sp register.
|
| @@ -1125,17 +1092,6 @@ DECLARE_NOTARGET_PROTOTYPE(Ret)
|
| void Jr(Label* L, BranchDelaySlot bdslot);
|
| void Jalr(Label* L, BranchDelaySlot bdslot);
|
|
|
| - void Jump(intptr_t target, RelocInfo::Mode rmode,
|
| - BranchDelaySlot bd = PROTECT);
|
| - void Jump(intptr_t target, RelocInfo::Mode rmode, Condition cond = cc_always,
|
| - Register r1 = zero_reg, const Operand& r2 = Operand(zero_reg),
|
| - BranchDelaySlot bd = PROTECT);
|
| - void Call(intptr_t target, RelocInfo::Mode rmode,
|
| - BranchDelaySlot bd = PROTECT);
|
| - void Call(intptr_t target, RelocInfo::Mode rmode, Condition cond = cc_always,
|
| - Register r1 = zero_reg, const Operand& r2 = Operand(zero_reg),
|
| - BranchDelaySlot bd = PROTECT);
|
| -
|
| // Helper functions for generating invokes.
|
| void InvokePrologue(const ParameterCount& expected,
|
| const ParameterCount& actual,
|
|
|