Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(100)

Side by Side Diff: src/arm/lithium-codegen-arm.cc

Issue 6167004: ARM: use existing transcendental cache stub for tagged inputs. (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge/
Patch Set: Created 9 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/arm/lithium-arm.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2010 the V8 project authors. All rights reserved. 1 // Copyright 2010 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 753 matching lines...) Expand 10 before | Expand all | Expand 10 after
764 StringAddStub stub(NO_STRING_ADD_FLAGS); 764 StringAddStub stub(NO_STRING_ADD_FLAGS);
765 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); 765 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
766 break; 766 break;
767 } 767 }
768 case CodeStub::StringCompare: { 768 case CodeStub::StringCompare: {
769 StringCompareStub stub; 769 StringCompareStub stub;
770 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr); 770 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
771 break; 771 break;
772 } 772 }
773 case CodeStub::TranscendentalCache: { 773 case CodeStub::TranscendentalCache: {
774 Abort("TranscendentalCache unimplemented."); 774 __ ldr(r0, MemOperand(sp, 0));
775 TranscendentalCacheStub stub(instr->transcendental_type());
776 CallCode(stub.GetCode(), RelocInfo::CODE_TARGET, instr);
775 break; 777 break;
776 } 778 }
777 default: 779 default:
778 UNREACHABLE(); 780 UNREACHABLE();
779 } 781 }
780 } 782 }
781 783
782 784
783 void LCodeGen::DoUnknownOSRValue(LUnknownOSRValue* instr) { 785 void LCodeGen::DoUnknownOSRValue(LUnknownOSRValue* instr) {
784 // Nothing to do. 786 // Nothing to do.
(...skipping 690 matching lines...) Expand 10 before | Expand all | Expand 10 after
1475 Token::Value op = instr->op(); 1477 Token::Value op = instr->op();
1476 1478
1477 Handle<Code> ic = CompareIC::GetUninitialized(op); 1479 Handle<Code> ic = CompareIC::GetUninitialized(op);
1478 CallCode(ic, RelocInfo::CODE_TARGET, instr); 1480 CallCode(ic, RelocInfo::CODE_TARGET, instr);
1479 1481
1480 Condition condition = ComputeCompareCondition(op); 1482 Condition condition = ComputeCompareCondition(op);
1481 if (op == Token::GT || op == Token::LTE) { 1483 if (op == Token::GT || op == Token::LTE) {
1482 condition = ReverseCondition(condition); 1484 condition = ReverseCondition(condition);
1483 } 1485 }
1484 __ cmp(r0, Operand(0)); 1486 __ cmp(r0, Operand(0));
1485 __ LoadRoot(ToRegister(instr->result()), Heap::kTrueValueRootIndex, 1487 __ LoadRoot(ToRegister(instr->result()),
1486 condition); 1488 Heap::kTrueValueRootIndex,
1487 __ LoadRoot(ToRegister(instr->result()), Heap::kFalseValueRootIndex, 1489 condition);
1488 NegateCondition(condition)); 1490 __ LoadRoot(ToRegister(instr->result()),
1491 Heap::kFalseValueRootIndex,
1492 NegateCondition(condition));
1489 } 1493 }
1490 1494
1491 1495
1492 void LCodeGen::DoCmpTAndBranch(LCmpTAndBranch* instr) { 1496 void LCodeGen::DoCmpTAndBranch(LCmpTAndBranch* instr) {
1493 Abort("DoCmpTAndBranch unimplemented."); 1497 Abort("DoCmpTAndBranch unimplemented.");
1494 } 1498 }
1495 1499
1496 1500
1497 void LCodeGen::DoReturn(LReturn* instr) { 1501 void LCodeGen::DoReturn(LReturn* instr) {
1498 if (FLAG_trace) { 1502 if (FLAG_trace) {
(...skipping 1149 matching lines...) Expand 10 before | Expand all | Expand 10 after
2648 2652
2649 2653
2650 void LCodeGen::DoOsrEntry(LOsrEntry* instr) { 2654 void LCodeGen::DoOsrEntry(LOsrEntry* instr) {
2651 Abort("DoOsrEntry unimplemented."); 2655 Abort("DoOsrEntry unimplemented.");
2652 } 2656 }
2653 2657
2654 2658
2655 #undef __ 2659 #undef __
2656 2660
2657 } } // namespace v8::internal 2661 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « src/arm/lithium-arm.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698