diff options
Diffstat (limited to 'deps/v8/src/arm/lithium-codegen-arm.h')
-rw-r--r-- | deps/v8/src/arm/lithium-codegen-arm.h | 52 |
1 files changed, 11 insertions, 41 deletions
diff --git a/deps/v8/src/arm/lithium-codegen-arm.h b/deps/v8/src/arm/lithium-codegen-arm.h index ead8489034..393b6423e3 100644 --- a/deps/v8/src/arm/lithium-codegen-arm.h +++ b/deps/v8/src/arm/lithium-codegen-arm.h @@ -51,10 +51,9 @@ class LCodeGen BASE_EMBEDDED { current_instruction_(-1), instructions_(chunk->instructions()), deoptimizations_(4), - deopt_jump_table_(4), deoptimization_literals_(8), inlined_function_count_(0), - scope_(info->scope()), + scope_(chunk->graph()->info()->scope()), status_(UNUSED), deferred_(8), osr_pc_offset_(-1), @@ -66,10 +65,6 @@ class LCodeGen BASE_EMBEDDED { // Simple accessors. MacroAssembler* masm() const { return masm_; } - CompilationInfo* info() const { return info_; } - Isolate* isolate() const { return info_->isolate(); } - Factory* factory() const { return isolate()->factory(); } - Heap* heap() const { return isolate()->heap(); } // Support for converting LOperands to assembler types. // LOperand must be a register. @@ -108,15 +103,13 @@ class LCodeGen BASE_EMBEDDED { void DoDeferredNumberTagI(LNumberTagI* instr); void DoDeferredTaggedToI(LTaggedToI* instr); void DoDeferredMathAbsTaggedHeapNumber(LUnaryMathOperation* instr); - void DoDeferredStackCheck(LStackCheck* instr); + void DoDeferredStackCheck(LGoto* instr); void DoDeferredStringCharCodeAt(LStringCharCodeAt* instr); - void DoDeferredStringCharFromCode(LStringCharFromCode* instr); void DoDeferredLInstanceOfKnownGlobal(LInstanceOfKnownGlobal* instr, Label* map_check); // Parallel move support. void DoParallelMove(LParallelMove* move); - void DoGap(LGap* instr); // Emit frame translation commands for an environment. void WriteTranslation(LEnvironment* environment, Translation* translation); @@ -140,7 +133,7 @@ class LCodeGen BASE_EMBEDDED { bool is_aborted() const { return status_ == ABORTED; } int strict_mode_flag() const { - return info()->is_strict_mode() ? kStrictMode : kNonStrictMode; + return info_->is_strict() ? kStrictMode : kNonStrictMode; } LChunk* chunk() const { return chunk_; } @@ -148,7 +141,7 @@ class LCodeGen BASE_EMBEDDED { HGraph* graph() const { return chunk_->graph(); } Register scratch0() { return r9; } - DwVfpRegister double_scratch0() { return d15; } + DwVfpRegister double_scratch0() { return d0; } int GetNextEmittedBlock(int block); LInstruction* GetNextInstruction(); @@ -160,8 +153,8 @@ class LCodeGen BASE_EMBEDDED { Register temporary, Register temporary2); - int GetStackSlotCount() const { return chunk()->spill_slot_count(); } - int GetParameterCount() const { return scope()->num_parameters(); } + int StackSlotCount() const { return chunk()->spill_slot_count(); } + int ParameterCount() const { return scope()->num_parameters(); } void Abort(const char* format, ...); void Comment(const char* format, ...); @@ -173,7 +166,6 @@ class LCodeGen BASE_EMBEDDED { bool GeneratePrologue(); bool GenerateBody(); bool GenerateDeferredCode(); - bool GenerateDeoptJumpTable(); bool GenerateSafepointTable(); enum SafepointMode { @@ -190,14 +182,14 @@ class LCodeGen BASE_EMBEDDED { LInstruction* instr, SafepointMode safepoint_mode); - void CallRuntime(const Runtime::Function* function, + void CallRuntime(Runtime::Function* function, int num_arguments, LInstruction* instr); void CallRuntime(Runtime::FunctionId id, int num_arguments, LInstruction* instr) { - const Runtime::Function* function = Runtime::FunctionForId(id); + Runtime::Function* function = Runtime::FunctionForId(id); CallRuntime(function, num_arguments, instr); } @@ -209,8 +201,7 @@ class LCodeGen BASE_EMBEDDED { // to be in edi. void CallKnownFunction(Handle<JSFunction> function, int arity, - LInstruction* instr, - CallKind call_kind); + LInstruction* instr); void LoadHeapObject(Register result, Handle<HeapObject> object); @@ -237,10 +228,6 @@ class LCodeGen BASE_EMBEDDED { void DoMathFloor(LUnaryMathOperation* instr); void DoMathRound(LUnaryMathOperation* instr); void DoMathSqrt(LUnaryMathOperation* instr); - void DoMathPowHalf(LUnaryMathOperation* instr); - void DoMathLog(LUnaryMathOperation* instr); - void DoMathCos(LUnaryMathOperation* instr); - void DoMathSin(LUnaryMathOperation* instr); // Support for recording safepoint and position information. void RecordSafepoint(LPointerMap* pointers, @@ -256,17 +243,13 @@ class LCodeGen BASE_EMBEDDED { int arguments, int deoptimization_index); void RecordPosition(int position); - int LastSafepointEnd() { - return static_cast<int>(safepoints_.GetPcAfterGap()); - } static Condition TokenToCondition(Token::Value op, bool is_unsigned); - void EmitGoto(int block); + void EmitGoto(int block, LDeferredCode* deferred_stack_check = NULL); void EmitBranch(int left_block, int right_block, Condition cc); void EmitCmpI(LOperand* left, LOperand* right); void EmitNumberUntagD(Register input, DoubleRegister result, - bool deoptimize_on_undefined, LEnvironment* env); // Emits optimized code for typeof x == "y". Modifies input register. @@ -280,6 +263,7 @@ class LCodeGen BASE_EMBEDDED { // true and false label should be made, to optimize fallthrough. Condition EmitIsObject(Register input, Register temp1, + Register temp2, Label* is_not_object, Label* is_object); @@ -287,19 +271,6 @@ class LCodeGen BASE_EMBEDDED { // Caller should branch on equal condition. void EmitIsConstructCall(Register temp1, Register temp2); - void EmitLoadFieldOrConstantFunction(Register result, - Register object, - Handle<Map> type, - Handle<String> name); - - struct JumpTableEntry { - explicit inline JumpTableEntry(Address entry) - : label(), - address(entry) { } - Label label; - Address address; - }; - LChunk* const chunk_; MacroAssembler* const masm_; CompilationInfo* const info_; @@ -308,7 +279,6 @@ class LCodeGen BASE_EMBEDDED { int current_instruction_; const ZoneList<LInstruction*>* instructions_; ZoneList<LEnvironment*> deoptimizations_; - ZoneList<JumpTableEntry> deopt_jump_table_; ZoneList<Handle<Object> > deoptimization_literals_; int inlined_function_count_; Scope* const scope_; |