| OLD | NEW |
| 1 // Copyright 2011 the V8 project authors. All rights reserved. | 1 // Copyright 2011 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 1074 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1085 } | 1085 } |
| 1086 | 1086 |
| 1087 | 1087 |
| 1088 LInstruction* LChunkBuilder::DoCallKeyed(HCallKeyed* instr) { | 1088 LInstruction* LChunkBuilder::DoCallKeyed(HCallKeyed* instr) { |
| 1089 Abort("Unimplemented: %s", "DoCallKeyed"); | 1089 Abort("Unimplemented: %s", "DoCallKeyed"); |
| 1090 return NULL; | 1090 return NULL; |
| 1091 } | 1091 } |
| 1092 | 1092 |
| 1093 | 1093 |
| 1094 LInstruction* LChunkBuilder::DoCallNamed(HCallNamed* instr) { | 1094 LInstruction* LChunkBuilder::DoCallNamed(HCallNamed* instr) { |
| 1095 Abort("Unimplemented: %s", "DoCallNamed"); | 1095 argument_count_ -= instr->argument_count(); |
| 1096 return NULL; | 1096 return MarkAsCall(DefineFixed(new LCallNamed, rax), instr); |
| 1097 } | 1097 } |
| 1098 | 1098 |
| 1099 | 1099 |
| 1100 LInstruction* LChunkBuilder::DoCallGlobal(HCallGlobal* instr) { | 1100 LInstruction* LChunkBuilder::DoCallGlobal(HCallGlobal* instr) { |
| 1101 Abort("Unimplemented: %s", "DoCallGlobal"); | 1101 Abort("Unimplemented: %s", "DoCallGlobal"); |
| 1102 return NULL; | 1102 return NULL; |
| 1103 } | 1103 } |
| 1104 | 1104 |
| 1105 | 1105 |
| 1106 LInstruction* LChunkBuilder::DoCallKnownGlobal(HCallKnownGlobal* instr) { | 1106 LInstruction* LChunkBuilder::DoCallKnownGlobal(HCallKnownGlobal* instr) { |
| 1107 Abort("Unimplemented: %s", "DoCallKnownGlobal"); | 1107 argument_count_ -= instr->argument_count(); |
| 1108 return NULL; | 1108 return MarkAsCall(DefineFixed(new LCallKnownGlobal, rax), instr); |
| 1109 } | 1109 } |
| 1110 | 1110 |
| 1111 | 1111 |
| 1112 LInstruction* LChunkBuilder::DoCallNew(HCallNew* instr) { | 1112 LInstruction* LChunkBuilder::DoCallNew(HCallNew* instr) { |
| 1113 LOperand* constructor = UseFixed(instr->constructor(), rdi); | 1113 LOperand* constructor = UseFixed(instr->constructor(), rdi); |
| 1114 argument_count_ -= instr->argument_count(); | 1114 argument_count_ -= instr->argument_count(); |
| 1115 LCallNew* result = new LCallNew(constructor); | 1115 LCallNew* result = new LCallNew(constructor); |
| 1116 return MarkAsCall(DefineFixed(result, rax), instr); | 1116 return MarkAsCall(DefineFixed(result, rax), instr); |
| 1117 } | 1117 } |
| 1118 | 1118 |
| (...skipping 192 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1311 } | 1311 } |
| 1312 | 1312 |
| 1313 | 1313 |
| 1314 LInstruction* LChunkBuilder::DoClassOfTest(HClassOfTest* instr) { | 1314 LInstruction* LChunkBuilder::DoClassOfTest(HClassOfTest* instr) { |
| 1315 Abort("Unimplemented: %s", "DoClassOfTest"); | 1315 Abort("Unimplemented: %s", "DoClassOfTest"); |
| 1316 return NULL; | 1316 return NULL; |
| 1317 } | 1317 } |
| 1318 | 1318 |
| 1319 | 1319 |
| 1320 LInstruction* LChunkBuilder::DoJSArrayLength(HJSArrayLength* instr) { | 1320 LInstruction* LChunkBuilder::DoJSArrayLength(HJSArrayLength* instr) { |
| 1321 Abort("Unimplemented: %s", "DoJSArrayLength"); | 1321 LOperand* array = UseRegisterAtStart(instr->value()); |
| 1322 return NULL; | 1322 return DefineAsRegister(new LJSArrayLength(array)); |
| 1323 } | 1323 } |
| 1324 | 1324 |
| 1325 | 1325 |
| 1326 LInstruction* LChunkBuilder::DoFixedArrayLength(HFixedArrayLength* instr) { | 1326 LInstruction* LChunkBuilder::DoFixedArrayLength(HFixedArrayLength* instr) { |
| 1327 Abort("Unimplemented: %s", "DoFixedArrayLength"); | 1327 Abort("Unimplemented: %s", "DoFixedArrayLength"); |
| 1328 return NULL; | 1328 return NULL; |
| 1329 } | 1329 } |
| 1330 | 1330 |
| 1331 | 1331 |
| 1332 LInstruction* LChunkBuilder::DoValueOf(HValueOf* instr) { | 1332 LInstruction* LChunkBuilder::DoValueOf(HValueOf* instr) { |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1415 } | 1415 } |
| 1416 | 1416 |
| 1417 | 1417 |
| 1418 LInstruction* LChunkBuilder::DoCheckNonSmi(HCheckNonSmi* instr) { | 1418 LInstruction* LChunkBuilder::DoCheckNonSmi(HCheckNonSmi* instr) { |
| 1419 LOperand* value = UseRegisterAtStart(instr->value()); | 1419 LOperand* value = UseRegisterAtStart(instr->value()); |
| 1420 return AssignEnvironment(new LCheckSmi(value, zero)); | 1420 return AssignEnvironment(new LCheckSmi(value, zero)); |
| 1421 } | 1421 } |
| 1422 | 1422 |
| 1423 | 1423 |
| 1424 LInstruction* LChunkBuilder::DoCheckInstanceType(HCheckInstanceType* instr) { | 1424 LInstruction* LChunkBuilder::DoCheckInstanceType(HCheckInstanceType* instr) { |
| 1425 Abort("Unimplemented: %s", "DoCheckInstanceType"); | 1425 LOperand* value = UseRegisterAtStart(instr->value()); |
| 1426 return NULL; | 1426 LCheckInstanceType* result = new LCheckInstanceType(value); |
| 1427 return AssignEnvironment(result); |
| 1427 } | 1428 } |
| 1428 | 1429 |
| 1429 | 1430 |
| 1430 LInstruction* LChunkBuilder::DoCheckPrototypeMaps(HCheckPrototypeMaps* instr) { | 1431 LInstruction* LChunkBuilder::DoCheckPrototypeMaps(HCheckPrototypeMaps* instr) { |
| 1431 LOperand* temp = TempRegister(); | 1432 LOperand* temp = TempRegister(); |
| 1432 LCheckPrototypeMaps* result = new LCheckPrototypeMaps(temp); | 1433 LCheckPrototypeMaps* result = new LCheckPrototypeMaps(temp); |
| 1433 return AssignEnvironment(result); | 1434 return AssignEnvironment(result); |
| 1434 } | 1435 } |
| 1435 | 1436 |
| 1436 | 1437 |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1478 | 1479 |
| 1479 LInstruction* LChunkBuilder::DoLoadGlobal(HLoadGlobal* instr) { | 1480 LInstruction* LChunkBuilder::DoLoadGlobal(HLoadGlobal* instr) { |
| 1480 LLoadGlobal* result = new LLoadGlobal; | 1481 LLoadGlobal* result = new LLoadGlobal; |
| 1481 return instr->check_hole_value() | 1482 return instr->check_hole_value() |
| 1482 ? AssignEnvironment(DefineAsRegister(result)) | 1483 ? AssignEnvironment(DefineAsRegister(result)) |
| 1483 : DefineAsRegister(result); | 1484 : DefineAsRegister(result); |
| 1484 } | 1485 } |
| 1485 | 1486 |
| 1486 | 1487 |
| 1487 LInstruction* LChunkBuilder::DoStoreGlobal(HStoreGlobal* instr) { | 1488 LInstruction* LChunkBuilder::DoStoreGlobal(HStoreGlobal* instr) { |
| 1488 return new LStoreGlobal(UseRegisterAtStart(instr->value())); | 1489 LStoreGlobal* result = new LStoreGlobal(UseRegister(instr->value()), |
| 1490 TempRegister()); |
| 1491 return instr->check_hole_value() ? AssignEnvironment(result) : result; |
| 1489 } | 1492 } |
| 1490 | 1493 |
| 1491 | 1494 |
| 1492 LInstruction* LChunkBuilder::DoLoadContextSlot(HLoadContextSlot* instr) { | 1495 LInstruction* LChunkBuilder::DoLoadContextSlot(HLoadContextSlot* instr) { |
| 1493 Abort("Unimplemented: %s", "DoLoadContextSlot"); | 1496 Abort("Unimplemented: %s", "DoLoadContextSlot"); |
| 1494 return NULL; | 1497 return NULL; |
| 1495 } | 1498 } |
| 1496 | 1499 |
| 1497 | 1500 |
| 1498 LInstruction* LChunkBuilder::DoStoreContextSlot(HStoreContextSlot* instr) { | 1501 LInstruction* LChunkBuilder::DoStoreContextSlot(HStoreContextSlot* instr) { |
| (...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1719 | 1722 |
| 1720 | 1723 |
| 1721 LInstruction* LChunkBuilder::DoLeaveInlined(HLeaveInlined* instr) { | 1724 LInstruction* LChunkBuilder::DoLeaveInlined(HLeaveInlined* instr) { |
| 1722 Abort("Unimplemented: %s", "DoLeaveInlined"); | 1725 Abort("Unimplemented: %s", "DoLeaveInlined"); |
| 1723 return NULL; | 1726 return NULL; |
| 1724 } | 1727 } |
| 1725 | 1728 |
| 1726 } } // namespace v8::internal | 1729 } } // namespace v8::internal |
| 1727 | 1730 |
| 1728 #endif // V8_TARGET_ARCH_X64 | 1731 #endif // V8_TARGET_ARCH_X64 |
| OLD | NEW |