| Index: src/mips/lithium-codegen-mips.cc
|
| ===================================================================
|
| --- src/mips/lithium-codegen-mips.cc (revision 9901)
|
| +++ src/mips/lithium-codegen-mips.cc (working copy)
|
| @@ -1728,36 +1728,6 @@
|
| }
|
|
|
|
|
| -Condition LCodeGen::EmitIsString(Register input,
|
| - Register temp1,
|
| - Label* is_not_string,
|
| - Label* is_string) {
|
| - __ JumpIfSmi(input, is_not_string);
|
| - __ GetObjectType(input, temp1, temp1);
|
| - __ Branch(is_not_string, ge, temp1, Operand(FIRST_NONSTRING_TYPE));
|
| -
|
| - return lt;
|
| -}
|
| -
|
| -
|
| -void LCodeGen::DoIsStringAndBranch(LIsStringAndBranch* instr) {
|
| - Register reg = ToRegister(instr->InputAt(0));
|
| - Register temp1 = ToRegister(instr->TempAt(0));
|
| - Register temp2 = scratch0();
|
| -
|
| - 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, temp1, false_label, true_label);
|
| -
|
| - EmitBranch(true_block, false_block, true_cond, temp2,
|
| - Operand(LAST_NONCALLABLE_SPEC_OBJECT_TYPE));
|
| -}
|
| -
|
| -
|
| void LCodeGen::DoIsSmiAndBranch(LIsSmiAndBranch* instr) {
|
| int true_block = chunk_->LookupDestination(instr->true_block_id());
|
| int false_block = chunk_->LookupDestination(instr->false_block_id());
|
| @@ -1783,42 +1753,6 @@
|
| }
|
|
|
|
|
| -static Condition ComputeCompareCondition(Token::Value op) {
|
| - switch (op) {
|
| - case Token::EQ_STRICT:
|
| - case Token::EQ:
|
| - return eq;
|
| - case Token::LT:
|
| - return lt;
|
| - case Token::GT:
|
| - return gt;
|
| - case Token::LTE:
|
| - return le;
|
| - case Token::GTE:
|
| - return ge;
|
| - default:
|
| - UNREACHABLE();
|
| - return kNoCondition;
|
| - }
|
| -}
|
| -
|
| -
|
| -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);
|
| - // On MIPS there is no need for a "no inlined smi code" marker (nop).
|
| -
|
| - Condition condition = ComputeCompareCondition(op);
|
| -
|
| - EmitBranch(true_block, false_block, condition, at,
|
| - Operand(LAST_NONCALLABLE_SPEC_OBJECT_TYPE));
|
| -}
|
| -
|
| -
|
| static InstanceType TestType(HHasInstanceTypeAndBranch* instr) {
|
| InstanceType from = instr->from();
|
| InstanceType to = instr->to();
|
| @@ -2116,6 +2050,26 @@
|
| }
|
|
|
|
|
| +static Condition ComputeCompareCondition(Token::Value op) {
|
| + switch (op) {
|
| + case Token::EQ_STRICT:
|
| + case Token::EQ:
|
| + return eq;
|
| + case Token::LT:
|
| + return lt;
|
| + case Token::GT:
|
| + return gt;
|
| + case Token::LTE:
|
| + return le;
|
| + case Token::GTE:
|
| + return ge;
|
| + default:
|
| + UNREACHABLE();
|
| + return kNoCondition;
|
| + }
|
| +}
|
| +
|
| +
|
| void LCodeGen::DoCmpT(LCmpT* instr) {
|
| Token::Value op = instr->op();
|
|
|
|
|