OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 835 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
846 ASSERT(right->representation().IsSmiOrTagged()); | 846 ASSERT(right->representation().IsSmiOrTagged()); |
847 | 847 |
848 LOperand* left_operand = UseFixed(left, x1); | 848 LOperand* left_operand = UseFixed(left, x1); |
849 LOperand* right_operand = UseFixed(right, x0); | 849 LOperand* right_operand = UseFixed(right, x0); |
850 LArithmeticT* result = | 850 LArithmeticT* result = |
851 new(zone()) LArithmeticT(op, left_operand, right_operand); | 851 new(zone()) LArithmeticT(op, left_operand, right_operand); |
852 return MarkAsCall(DefineFixed(result, x0), instr); | 852 return MarkAsCall(DefineFixed(result, x0), instr); |
853 } | 853 } |
854 | 854 |
855 | 855 |
856 #define UNIMPLEMENTED_INSTRUCTION() \ | |
857 do { \ | |
858 info_->set_bailout_reason(kUnimplementedHydrogenInstruction); \ | |
859 status_ = ABORTED; \ | |
860 return NULL; \ | |
861 } while (0) | |
862 | |
863 | |
864 LInstruction* LChunkBuilder::DoBoundsCheckBaseIndexInformation( | 856 LInstruction* LChunkBuilder::DoBoundsCheckBaseIndexInformation( |
865 HBoundsCheckBaseIndexInformation* instr) { | 857 HBoundsCheckBaseIndexInformation* instr) { |
866 UNREACHABLE(); | 858 UNREACHABLE(); |
867 return NULL; | 859 return NULL; |
868 } | 860 } |
869 | 861 |
870 | 862 |
871 LInstruction* LChunkBuilder::DoAbnormalExit(HAbnormalExit* instr) { | 863 LInstruction* LChunkBuilder::DoAbnormalExit(HAbnormalExit* instr) { |
872 // The control instruction marking the end of a block that completed abruptly | 864 // The control instruction marking the end of a block that completed abruptly |
873 // (e.g., threw an exception). There is nothing specific to do. | 865 // (e.g., threw an exception). There is nothing specific to do. |
(...skipping 610 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1484 | 1476 |
1485 | 1477 |
1486 LInstruction* LChunkBuilder::DoEnvironmentMarker(HEnvironmentMarker* instr) { | 1478 LInstruction* LChunkBuilder::DoEnvironmentMarker(HEnvironmentMarker* instr) { |
1487 UNREACHABLE(); | 1479 UNREACHABLE(); |
1488 return NULL; | 1480 return NULL; |
1489 } | 1481 } |
1490 | 1482 |
1491 | 1483 |
1492 LInstruction* LChunkBuilder::DoForceRepresentation( | 1484 LInstruction* LChunkBuilder::DoForceRepresentation( |
1493 HForceRepresentation* instr) { | 1485 HForceRepresentation* instr) { |
1494 UNIMPLEMENTED_INSTRUCTION(); | 1486 // All HForceRepresentation instructions should be eliminated in the |
| 1487 // representation change phase of Hydrogen. |
| 1488 UNREACHABLE(); |
| 1489 return NULL; |
1495 } | 1490 } |
1496 | 1491 |
1497 | 1492 |
1498 LInstruction* LChunkBuilder::DoFunctionLiteral(HFunctionLiteral* instr) { | 1493 LInstruction* LChunkBuilder::DoFunctionLiteral(HFunctionLiteral* instr) { |
1499 return MarkAsCall(DefineFixed(new(zone()) LFunctionLiteral, x0), instr); | 1494 return MarkAsCall(DefineFixed(new(zone()) LFunctionLiteral, x0), instr); |
1500 } | 1495 } |
1501 | 1496 |
1502 | 1497 |
1503 LInstruction* LChunkBuilder::DoGetCachedArrayIndex( | 1498 LInstruction* LChunkBuilder::DoGetCachedArrayIndex( |
1504 HGetCachedArrayIndex* instr) { | 1499 HGetCachedArrayIndex* instr) { |
(...skipping 1036 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2541 LInstruction* LChunkBuilder::DoWrapReceiver(HWrapReceiver* instr) { | 2536 LInstruction* LChunkBuilder::DoWrapReceiver(HWrapReceiver* instr) { |
2542 LOperand* receiver = UseRegister(instr->receiver()); | 2537 LOperand* receiver = UseRegister(instr->receiver()); |
2543 LOperand* function = UseRegisterAtStart(instr->function()); | 2538 LOperand* function = UseRegisterAtStart(instr->function()); |
2544 LOperand* temp = TempRegister(); | 2539 LOperand* temp = TempRegister(); |
2545 LWrapReceiver* result = new(zone()) LWrapReceiver(receiver, function, temp); | 2540 LWrapReceiver* result = new(zone()) LWrapReceiver(receiver, function, temp); |
2546 return AssignEnvironment(DefineAsRegister(result)); | 2541 return AssignEnvironment(DefineAsRegister(result)); |
2547 } | 2542 } |
2548 | 2543 |
2549 | 2544 |
2550 } } // namespace v8::internal | 2545 } } // namespace v8::internal |
OLD | NEW |