| Index: src/x64/lithium-codegen-x64.cc
|
| diff --git a/src/x64/lithium-codegen-x64.cc b/src/x64/lithium-codegen-x64.cc
|
| index 4ee430ba70541a1f2c70c97a2bfb5d23eb9058e6..83a8cb249841051b0a1ac62d50d59be5085823f6 100644
|
| --- a/src/x64/lithium-codegen-x64.cc
|
| +++ b/src/x64/lithium-codegen-x64.cc
|
| @@ -2604,7 +2604,7 @@ void LCodeGen::DoInstanceSize(LInstanceSize* instr) {
|
| }
|
|
|
|
|
| -void LCodeGen::DoCompareGenericAndBranch(LCompareGenericAndBranch* instr) {
|
| +void LCodeGen::DoCmpT(LCmpT* instr) {
|
| Token::Value op = instr->op();
|
|
|
| Handle<Code> ic = CompareIC::GetUninitialized(isolate(), op);
|
| @@ -2613,7 +2613,12 @@ void LCodeGen::DoCompareGenericAndBranch(LCompareGenericAndBranch* instr) {
|
| Condition condition = TokenToCondition(op, false);
|
| Label true_value, done;
|
| __ testq(rax, rax);
|
| - EmitBranch(instr, condition);
|
| + __ j(condition, &true_value, Label::kNear);
|
| + __ LoadRoot(ToRegister(instr->result()), Heap::kFalseValueRootIndex);
|
| + __ jmp(&done, Label::kNear);
|
| + __ bind(&true_value);
|
| + __ LoadRoot(ToRegister(instr->result()), Heap::kTrueValueRootIndex);
|
| + __ bind(&done);
|
| }
|
|
|
|
|
|
|