Index: src/ia32/lithium-codegen-ia32.cc |
=================================================================== |
--- src/ia32/lithium-codegen-ia32.cc (revision 9901) |
+++ src/ia32/lithium-codegen-ia32.cc (working copy) |
@@ -1716,33 +1716,6 @@ |
} |
-Condition LCodeGen::EmitIsString(Register input, |
- Register temp1, |
- Label* is_not_string, |
- Label* is_string) { |
- __ JumpIfSmi(input, is_not_string); |
- |
- Condition cond = masm_->IsObjectStringType(input, temp1, temp1); |
- |
- return cond; |
-} |
- |
- |
-void LCodeGen::DoIsStringAndBranch(LIsStringAndBranch* instr) { |
- Register reg = ToRegister(instr->InputAt(0)); |
- Register temp = ToRegister(instr->TempAt(0)); |
- |
- int true_block = chunk_->LookupDestination(instr->true_block_id()); |
- int false_block = chunk_->LookupDestination(instr->false_block_id()); |
- Label* true_label = chunk_->GetAssemblyLabel(true_block); |
- Label* false_label = chunk_->GetAssemblyLabel(false_block); |
- |
- Condition true_cond = EmitIsString(reg, temp, false_label, true_label); |
- |
- EmitBranch(true_block, false_block, true_cond); |
-} |
- |
- |
void LCodeGen::DoIsSmiAndBranch(LIsSmiAndBranch* instr) { |
Operand input = ToOperand(instr->InputAt(0)); |
@@ -1770,41 +1743,6 @@ |
} |
-static Condition ComputeCompareCondition(Token::Value op) { |
- switch (op) { |
- case Token::EQ_STRICT: |
- case Token::EQ: |
- return equal; |
- case Token::LT: |
- return less; |
- case Token::GT: |
- return greater; |
- case Token::LTE: |
- return less_equal; |
- case Token::GTE: |
- return greater_equal; |
- default: |
- UNREACHABLE(); |
- return no_condition; |
- } |
-} |
- |
- |
-void LCodeGen::DoStringCompareAndBranch(LStringCompareAndBranch* instr) { |
- Token::Value op = instr->op(); |
- int true_block = chunk_->LookupDestination(instr->true_block_id()); |
- int false_block = chunk_->LookupDestination(instr->false_block_id()); |
- |
- Handle<Code> ic = CompareIC::GetUninitialized(op); |
- CallCode(ic, RelocInfo::CODE_TARGET, instr); |
- |
- Condition condition = ComputeCompareCondition(op); |
- __ test(eax, Operand(eax)); |
- |
- EmitBranch(true_block, false_block, condition); |
-} |
- |
- |
static InstanceType TestType(HHasInstanceTypeAndBranch* instr) { |
InstanceType from = instr->from(); |
InstanceType to = instr->to(); |
@@ -2078,6 +2016,26 @@ |
} |
+static Condition ComputeCompareCondition(Token::Value op) { |
+ switch (op) { |
+ case Token::EQ_STRICT: |
+ case Token::EQ: |
+ return equal; |
+ case Token::LT: |
+ return less; |
+ case Token::GT: |
+ return greater; |
+ case Token::LTE: |
+ return less_equal; |
+ case Token::GTE: |
+ return greater_equal; |
+ default: |
+ UNREACHABLE(); |
+ return no_condition; |
+ } |
+} |
+ |
+ |
void LCodeGen::DoCmpT(LCmpT* instr) { |
Token::Value op = instr->op(); |