Index: src/ia32/lithium-codegen-ia32.h |
diff --git a/src/ia32/lithium-codegen-ia32.h b/src/ia32/lithium-codegen-ia32.h |
index 63d15f4d62f7eae12171e753a6b77e7805762bef..44ddaffcd41ab038c00db70110761f8d9bb5331e 100644 |
--- a/src/ia32/lithium-codegen-ia32.h |
+++ b/src/ia32/lithium-codegen-ia32.h |
@@ -55,7 +55,6 @@ class LCodeGen BASE_EMBEDDED { |
current_instruction_(-1), |
instructions_(chunk->instructions()), |
deoptimizations_(4, info->zone()), |
- jump_table_(4, info->zone()), |
deoptimization_literals_(8, info->zone()), |
inlined_function_count_(0), |
scope_(info->scope()), |
@@ -65,7 +64,6 @@ class LCodeGen BASE_EMBEDDED { |
dynamic_frame_alignment_(false), |
osr_pc_offset_(-1), |
last_lazy_deopt_pc_(0), |
- frame_is_built_(false), |
safepoints_(info->zone()), |
resolver_(this), |
expected_safepoint_kind_(Safepoint::kSimple) { |
@@ -80,20 +78,10 @@ class LCodeGen BASE_EMBEDDED { |
Heap* heap() const { return isolate()->heap(); } |
Zone* zone() const { return zone_; } |
- bool NeedsEagerFrame() const { |
- return GetStackSlotCount() > 0 || |
- info()->is_non_deferred_calling() || |
- !info()->IsStub(); |
- } |
- bool NeedsDeferredFrame() const { |
- return !NeedsEagerFrame() && info()->is_deferred_calling(); |
- } |
- |
// Support for converting LOperands to assembler types. |
Operand ToOperand(LOperand* op) const; |
Register ToRegister(LOperand* op) const; |
XMMRegister ToDoubleRegister(LOperand* op) const; |
- bool IsX87TopOfStack(LOperand* op) const; |
bool IsInteger32(LConstantOperand* op) const; |
Immediate ToInteger32Immediate(LOperand* op) const { |
@@ -102,9 +90,6 @@ class LCodeGen BASE_EMBEDDED { |
Handle<Object> ToHandle(LConstantOperand* op) const; |
- // A utility for instructions that return floating point values on X87. |
- void HandleX87FPReturnValue(LInstruction* instr); |
- |
// The operand denoting the second word (the one with a higher address) of |
// a double stack slot. |
Operand HighOperand(LOperand* op); |
@@ -137,7 +122,7 @@ class LCodeGen BASE_EMBEDDED { |
Label* map_check); |
void DoCheckMapCommon(Register reg, Handle<Map> map, |
- CompareMapMode mode, LInstruction* instr); |
+ CompareMapMode mode, LEnvironment* env); |
// Parallel move support. |
void DoParallelMove(LParallelMove* move); |
@@ -187,7 +172,7 @@ class LCodeGen BASE_EMBEDDED { |
Register temporary2); |
int GetStackSlotCount() const { return chunk()->spill_slot_count(); } |
- int GetParameterCount() const { return info()->num_parameters(); } |
+ int GetParameterCount() const { return scope()->num_parameters(); } |
void Abort(const char* reason); |
void Comment(const char* format, ...); |
@@ -199,7 +184,9 @@ class LCodeGen BASE_EMBEDDED { |
bool GeneratePrologue(); |
bool GenerateBody(); |
bool GenerateDeferredCode(); |
- bool GenerateJumpTable(); |
+ // Pad the reloc info to ensure that we have enough space to patch during |
+ // deoptimization. |
+ bool GenerateRelocPadding(); |
bool GenerateSafepointTable(); |
enum SafepointMode { |
@@ -369,23 +356,10 @@ class LCodeGen BASE_EMBEDDED { |
MacroAssembler* const masm_; |
CompilationInfo* const info_; |
- struct JumpTableEntry { |
- inline JumpTableEntry(Address entry, bool frame, bool is_lazy) |
- : label(), |
- address(entry), |
- needs_frame(frame), |
- is_lazy_deopt(is_lazy) { } |
- Label label; |
- Address address; |
- bool needs_frame; |
- bool is_lazy_deopt; |
- }; |
- |
int current_block_; |
int current_instruction_; |
const ZoneList<LInstruction*>* instructions_; |
ZoneList<LEnvironment*> deoptimizations_; |
- ZoneList<JumpTableEntry> jump_table_; |
ZoneList<Handle<Object> > deoptimization_literals_; |
int inlined_function_count_; |
Scope* const scope_; |
@@ -395,7 +369,6 @@ class LCodeGen BASE_EMBEDDED { |
bool dynamic_frame_alignment_; |
int osr_pc_offset_; |
int last_lazy_deopt_pc_; |
- bool frame_is_built_; |
// Builder that keeps track of safepoints in the code. The table |
// itself is emitted at the end of the generated code. |
@@ -413,7 +386,6 @@ class LCodeGen BASE_EMBEDDED { |
ASSERT(codegen_->expected_safepoint_kind_ == Safepoint::kSimple); |
codegen_->masm_->PushSafepointRegisters(); |
codegen_->expected_safepoint_kind_ = Safepoint::kWithRegisters; |
- ASSERT(codegen_->info()->is_calling()); |
} |
~PushSafepointRegistersScope() { |