Index: src/ia32/lithium-codegen-ia32.h |
diff --git a/src/ia32/lithium-codegen-ia32.h b/src/ia32/lithium-codegen-ia32.h |
index f4542eecddb4511f032125605c8d572281a1450d..d7718937428eff65ed227cf39377bc4d1bcbe9df 100644 |
--- a/src/ia32/lithium-codegen-ia32.h |
+++ b/src/ia32/lithium-codegen-ia32.h |
@@ -38,7 +38,6 @@ class LCodeGen: public LCodeGenBase { |
support_aligned_spilled_doubles_(false), |
osr_pc_offset_(-1), |
frame_is_built_(false), |
- x87_stack_(assembler), |
safepoints_(info->zone()), |
resolver_(this), |
expected_safepoint_kind_(Safepoint::kSimple) { |
@@ -67,7 +66,6 @@ class LCodeGen: public LCodeGenBase { |
Operand ToOperand(LOperand* op) const; |
Register ToRegister(LOperand* op) const; |
XMMRegister ToDoubleRegister(LOperand* op) const; |
- X87Register ToX87Register(LOperand* op) const; |
bool IsInteger32(LConstantOperand* op) const; |
bool IsSmi(LConstantOperand* op) const; |
@@ -76,36 +74,6 @@ class LCodeGen: public LCodeGenBase { |
} |
double ToDouble(LConstantOperand* op) const; |
- // Support for non-sse2 (x87) floating point stack handling. |
- // These functions maintain the mapping of physical stack registers to our |
- // virtual registers between instructions. |
- enum X87OperandType { kX87DoubleOperand, kX87FloatOperand, kX87IntOperand }; |
- |
- void X87Mov(X87Register reg, Operand src, |
- X87OperandType operand = kX87DoubleOperand); |
- void X87Mov(Operand src, X87Register reg, |
- X87OperandType operand = kX87DoubleOperand); |
- |
- void X87PrepareBinaryOp( |
- X87Register left, X87Register right, X87Register result); |
- |
- void X87LoadForUsage(X87Register reg); |
- void X87LoadForUsage(X87Register reg1, X87Register reg2); |
- void X87PrepareToWrite(X87Register reg) { x87_stack_.PrepareToWrite(reg); } |
- void X87CommitWrite(X87Register reg) { x87_stack_.CommitWrite(reg); } |
- |
- void X87Fxch(X87Register reg, int other_slot = 0) { |
- x87_stack_.Fxch(reg, other_slot); |
- } |
- void X87Free(X87Register reg) { |
- x87_stack_.Free(reg); |
- } |
- |
- |
- bool X87StackEmpty() { |
- return x87_stack_.depth() == 0; |
- } |
- |
Handle<Object> ToHandle(LConstantOperand* op) const; |
// The operand denoting the second word (the one with a higher address) of |
@@ -265,7 +233,6 @@ class LCodeGen: public LCodeGenBase { |
Register ToRegister(int index) const; |
XMMRegister ToDoubleRegister(int index) const; |
- X87Register ToX87Register(int index) const; |
int32_t ToRepresentation(LConstantOperand* op, const Representation& r) const; |
int32_t ToInteger32(LConstantOperand* op) const; |
ExternalReference ToExternalReference(LConstantOperand* op) const; |
@@ -313,15 +280,6 @@ class LCodeGen: public LCodeGenBase { |
LEnvironment* env, |
NumberUntagDMode mode = NUMBER_CANDIDATE_IS_ANY_TAGGED); |
- void EmitNumberUntagDNoSSE2( |
- Register input, |
- Register temp, |
- X87Register res_reg, |
- bool allow_undefined_as_nan, |
- bool deoptimize_on_minus_zero, |
- LEnvironment* env, |
- NumberUntagDMode mode = NUMBER_CANDIDATE_IS_ANY_TAGGED); |
- |
// Emits optimized code for typeof x == "y". Modifies input register. |
// Returns the condition on which a final split to |
// true and false label should be made, to optimize fallthrough. |
@@ -369,12 +327,6 @@ class LCodeGen: public LCodeGenBase { |
// register, or a stack slot operand. |
void EmitPushTaggedOperand(LOperand* operand); |
- void X87Fld(Operand src, X87OperandType opts); |
- |
- void EmitFlushX87ForDeopt(); |
- void FlushX87StackIfNecessary(LInstruction* instr) { |
- x87_stack_.FlushIfNecessary(instr, this); |
- } |
friend class LGapResolver; |
#ifdef _MSC_VER |
@@ -397,56 +349,6 @@ class LCodeGen: public LCodeGenBase { |
int osr_pc_offset_; |
bool frame_is_built_; |
- class X87Stack { |
- public: |
- explicit X87Stack(MacroAssembler* masm) |
- : stack_depth_(0), is_mutable_(true), masm_(masm) { } |
- explicit X87Stack(const X87Stack& other) |
- : stack_depth_(other.stack_depth_), is_mutable_(false), masm_(masm()) { |
- for (int i = 0; i < stack_depth_; i++) { |
- stack_[i] = other.stack_[i]; |
- } |
- } |
- bool operator==(const X87Stack& other) const { |
- if (stack_depth_ != other.stack_depth_) return false; |
- for (int i = 0; i < stack_depth_; i++) { |
- if (!stack_[i].is(other.stack_[i])) return false; |
- } |
- return true; |
- } |
- bool Contains(X87Register reg); |
- void Fxch(X87Register reg, int other_slot = 0); |
- void Free(X87Register reg); |
- void PrepareToWrite(X87Register reg); |
- void CommitWrite(X87Register reg); |
- void FlushIfNecessary(LInstruction* instr, LCodeGen* cgen); |
- void LeavingBlock(int current_block_id, LGoto* goto_instr); |
- int depth() const { return stack_depth_; } |
- void pop() { |
- ASSERT(is_mutable_); |
- stack_depth_--; |
- } |
- void push(X87Register reg) { |
- ASSERT(is_mutable_); |
- ASSERT(stack_depth_ < X87Register::kNumAllocatableRegisters); |
- stack_[stack_depth_] = reg; |
- stack_depth_++; |
- } |
- |
- MacroAssembler* masm() const { return masm_; } |
- Isolate* isolate() const { return masm_->isolate(); } |
- |
- private: |
- int ArrayIndex(X87Register reg); |
- int st2idx(int pos); |
- |
- X87Register stack_[X87Register::kNumAllocatableRegisters]; |
- int stack_depth_; |
- bool is_mutable_; |
- MacroAssembler* masm_; |
- }; |
- X87Stack x87_stack_; |
- |
// Builder that keeps track of safepoints in the code. The table |
// itself is emitted at the end of the generated code. |
SafepointTableBuilder safepoints_; |
@@ -485,11 +387,10 @@ class LCodeGen: public LCodeGenBase { |
class LDeferredCode : public ZoneObject { |
public: |
- explicit LDeferredCode(LCodeGen* codegen, const LCodeGen::X87Stack& x87_stack) |
+ explicit LDeferredCode(LCodeGen* codegen) |
: codegen_(codegen), |
external_exit_(NULL), |
- instruction_index_(codegen->current_instruction_), |
- x87_stack_(x87_stack) { |
+ instruction_index_(codegen->current_instruction_) { |
codegen->AddDeferredCode(this); |
} |
@@ -502,7 +403,6 @@ class LDeferredCode : public ZoneObject { |
Label* exit() { return external_exit_ != NULL ? external_exit_ : &exit_; } |
Label* done() { return codegen_->NeedsDeferredFrame() ? &done_ : exit(); } |
int instruction_index() const { return instruction_index_; } |
- const LCodeGen::X87Stack& x87_stack() const { return x87_stack_; } |
protected: |
LCodeGen* codegen() const { return codegen_; } |
@@ -515,7 +415,6 @@ class LDeferredCode : public ZoneObject { |
Label* external_exit_; |
Label done_; |
int instruction_index_; |
- LCodeGen::X87Stack x87_stack_; |
}; |
} } // namespace v8::internal |