OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 |
OLD | NEW |