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, |