| Index: src/arm/macro-assembler-arm.h
|
| ===================================================================
|
| --- src/arm/macro-assembler-arm.h (revision 8618)
|
| +++ src/arm/macro-assembler-arm.h (working copy)
|
| @@ -98,20 +98,20 @@
|
|
|
| // Jump, Call, and Ret pseudo instructions implementing inter-working.
|
| void Jump(Register target, Condition cond = al);
|
| - void Jump(byte* target, RelocInfo::Mode rmode, Condition cond = al);
|
| + void Jump(Address target, RelocInfo::Mode rmode, Condition cond = al);
|
| void Jump(Handle<Code> code, RelocInfo::Mode rmode, Condition cond = al);
|
| int CallSize(Register target, Condition cond = al);
|
| void Call(Register target, Condition cond = al);
|
| - int CallSize(byte* target, RelocInfo::Mode rmode, Condition cond = al);
|
| - void Call(byte* target, RelocInfo::Mode rmode, Condition cond = al);
|
| - int CallSize(Handle<Code> code, RelocInfo::Mode rmode, Condition cond = al);
|
| + int CallSize(Address target, RelocInfo::Mode rmode, Condition cond = al);
|
| + void Call(Address target, RelocInfo::Mode rmode, Condition cond = al);
|
| + int CallSize(Handle<Code> code,
|
| + RelocInfo::Mode rmode = RelocInfo::CODE_TARGET,
|
| + unsigned ast_id = kNoASTId,
|
| + Condition cond = al);
|
| void Call(Handle<Code> code,
|
| - RelocInfo::Mode rmode,
|
| + RelocInfo::Mode rmode = RelocInfo::CODE_TARGET,
|
| + unsigned ast_id = kNoASTId,
|
| Condition cond = al);
|
| - void CallWithAstId(Handle<Code> code,
|
| - RelocInfo::Mode rmode,
|
| - unsigned ast_id,
|
| - Condition cond = al);
|
| void Ret(Condition cond = al);
|
|
|
| // Emit code to discard a non-negative number of pointer-sized elements
|
| @@ -151,11 +151,9 @@
|
|
|
| // Register move. May do nothing if the registers are identical.
|
| void Move(Register dst, Handle<Object> value);
|
| - void Move(Register dst, Register src);
|
| + void Move(Register dst, Register src, Condition cond = al);
|
| void Move(DoubleRegister dst, DoubleRegister src);
|
|
|
| - // Jumps to the label at the index given by the Smi in "index".
|
| - void SmiJumpTable(Register index, Vector<Label*> targets);
|
| // Load an object from the root table.
|
| void LoadRoot(Register destination,
|
| Heap::RootListIndex index,
|
| @@ -285,6 +283,9 @@
|
| RememberedSetAction remembered_set_action = EMIT_REMEMBERED_SET,
|
| SmiCheck smi_check = INLINE_SMI_CHECK);
|
|
|
| + // Push a handle.
|
| + void Push(Handle<Object> handle);
|
| +
|
| // Push two registers. Pushes leftmost register first (to highest address).
|
| void Push(Register src1, Register src2, Condition cond = al) {
|
| ASSERT(!src1.is(src2));
|
| @@ -404,7 +405,11 @@
|
| const Register fpscr_flags,
|
| const Condition cond = al);
|
|
|
| + void Vmov(const DwVfpRegister dst,
|
| + const double imm,
|
| + const Condition cond = al);
|
|
|
| +
|
| // ---------------------------------------------------------------------------
|
| // Activation frames
|
|
|
| @@ -449,27 +454,28 @@
|
| const ParameterCount& expected,
|
| const ParameterCount& actual,
|
| InvokeFlag flag,
|
| - const CallWrapper& call_wrapper = NullCallWrapper(),
|
| - CallKind call_kind = CALL_AS_METHOD);
|
| + const CallWrapper& call_wrapper,
|
| + CallKind call_kind);
|
|
|
| void InvokeCode(Handle<Code> code,
|
| const ParameterCount& expected,
|
| const ParameterCount& actual,
|
| RelocInfo::Mode rmode,
|
| InvokeFlag flag,
|
| - CallKind call_kind = CALL_AS_METHOD);
|
| + CallKind call_kind);
|
|
|
| // Invoke the JavaScript function in the given register. Changes the
|
| // current context to the context in the function before invoking.
|
| void InvokeFunction(Register function,
|
| const ParameterCount& actual,
|
| InvokeFlag flag,
|
| - const CallWrapper& call_wrapper = NullCallWrapper(),
|
| - CallKind call_kind = CALL_AS_METHOD);
|
| + const CallWrapper& call_wrapper,
|
| + CallKind call_kind);
|
|
|
| void InvokeFunction(JSFunction* function,
|
| const ParameterCount& actual,
|
| - InvokeFlag flag);
|
| + InvokeFlag flag,
|
| + CallKind call_kind);
|
|
|
| void IsObjectJSObjectType(Register heap_object,
|
| Register map,
|
| @@ -520,6 +526,16 @@
|
| Register scratch,
|
| Label* miss);
|
|
|
| +
|
| + void LoadFromNumberDictionary(Label* miss,
|
| + Register elements,
|
| + Register key,
|
| + Register result,
|
| + Register t0,
|
| + Register t1,
|
| + Register t2);
|
| +
|
| +
|
| inline void MarkCode(NopMarkerTypes type) {
|
| nop(type);
|
| }
|
| @@ -669,6 +685,12 @@
|
| InstanceType type);
|
|
|
|
|
| + // Check if a map for a JSObject indicates that the object has fast elements.
|
| + // Jump to the specified label if it does not.
|
| + void CheckFastElements(Register map,
|
| + Register scratch,
|
| + Label* fail);
|
| +
|
| // Check if the map of an object is equal to a specified map (either
|
| // given directly or as an index into the root list) and branch to
|
| // label if not. Skip the smi check if not required (object is known
|
| @@ -1117,10 +1139,6 @@
|
| int num_double_arguments);
|
|
|
| void Jump(intptr_t target, RelocInfo::Mode rmode, Condition cond = al);
|
| - int CallSize(intptr_t target, RelocInfo::Mode rmode, Condition cond = al);
|
| - void Call(intptr_t target,
|
| - RelocInfo::Mode rmode,
|
| - Condition cond = al);
|
|
|
| // Helper functions for generating invokes.
|
| void InvokePrologue(const ParameterCount& expected,
|
| @@ -1129,8 +1147,8 @@
|
| Register code_reg,
|
| Label* done,
|
| InvokeFlag flag,
|
| - const CallWrapper& call_wrapper = NullCallWrapper(),
|
| - CallKind call_kind = CALL_AS_METHOD);
|
| + const CallWrapper& call_wrapper,
|
| + CallKind call_kind);
|
|
|
| // Activation support.
|
| void EnterFrame(StackFrame::Type type);
|
|
|