vendor/v8/src/ia32/lithium-codegen-ia32.h in mustang-0.0.1 vs vendor/v8/src/ia32/lithium-codegen-ia32.h in mustang-0.1.0

- old
+ new

@@ -54,21 +54,25 @@ current_instruction_(-1), instructions_(chunk->instructions()), deoptimizations_(4), deoptimization_literals_(8), inlined_function_count_(0), - scope_(chunk->graph()->info()->scope()), + scope_(info->scope()), status_(UNUSED), deferred_(8), osr_pc_offset_(-1), deoptimization_reloc_size(), resolver_(this) { PopulateDeoptimizationLiteralsWithInlinedFunctions(); } // 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. Operand ToOperand(LOperand* op) const; Register ToRegister(LOperand* op) const; XMMRegister ToDoubleRegister(LOperand* op) const; @@ -92,10 +96,11 @@ void DoDeferredNumberTagI(LNumberTagI* instr); void DoDeferredTaggedToI(LTaggedToI* instr); void DoDeferredMathAbsTaggedHeapNumber(LUnaryMathOperation* 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); @@ -122,11 +127,11 @@ bool is_generating() const { return status_ == GENERATING; } bool is_done() const { return status_ == DONE; } bool is_aborted() const { return status_ == ABORTED; } int strict_mode_flag() const { - return info_->is_strict() ? kStrictMode : kNonStrictMode; + return info()->is_strict() ? kStrictMode : kNonStrictMode; } LChunk* chunk() const { return chunk_; } Scope* scope() const { return scope_; } HGraph* graph() const { return chunk_->graph(); } @@ -159,15 +164,15 @@ bool GenerateRelocPadding(); bool GenerateSafepointTable(); void CallCode(Handle<Code> code, RelocInfo::Mode mode, LInstruction* instr, bool adjusted = true); - void CallRuntime(Runtime::Function* fun, int argc, LInstruction* instr, + void CallRuntime(const Runtime::Function* fun, int argc, LInstruction* instr, bool adjusted = true); void CallRuntime(Runtime::FunctionId id, int argc, LInstruction* instr, bool adjusted = true) { - Runtime::Function* function = Runtime::FunctionForId(id); + const Runtime::Function* function = Runtime::FunctionForId(id); CallRuntime(function, argc, instr, adjusted); } // Generate a direct call to a known function. Expects the function // to be in edi. @@ -239,9 +244,13 @@ // Emits optimized code for %_IsConstructCall(). // Caller should branch on equal condition. void EmitIsConstructCall(Register temp); + void EmitLoadField(Register result, + Register object, + Handle<Map> type, + Handle<String> name); LChunk* const chunk_; MacroAssembler* const masm_; CompilationInfo* const info_;