| OLD | NEW |
| 1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 643 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 654 // Must preserve the result register. | 654 // Must preserve the result register. |
| 655 void PopTryHandler(); | 655 void PopTryHandler(); |
| 656 | 656 |
| 657 // Passes thrown value to the handler of top of the try handler chain. | 657 // Passes thrown value to the handler of top of the try handler chain. |
| 658 void Throw(Register value); | 658 void Throw(Register value); |
| 659 | 659 |
| 660 // Propagates an uncatchable exception to the top of the current JS stack's | 660 // Propagates an uncatchable exception to the top of the current JS stack's |
| 661 // handler chain. | 661 // handler chain. |
| 662 void ThrowUncatchable(Register value); | 662 void ThrowUncatchable(Register value); |
| 663 | 663 |
| 664 // Throw a message string as an exception. |
| 665 void Throw(BailoutReason reason); |
| 666 |
| 667 // Throw a message string as an exception if a condition is not true. |
| 668 void ThrowIf(Condition cc, BailoutReason reason); |
| 669 |
| 664 // --------------------------------------------------------------------------- | 670 // --------------------------------------------------------------------------- |
| 665 // Inline caching support | 671 // Inline caching support |
| 666 | 672 |
| 667 // Generate code for checking access rights - used for security checks | 673 // Generate code for checking access rights - used for security checks |
| 668 // on access to global objects across environments. The holder register | 674 // on access to global objects across environments. The holder register |
| 669 // is left untouched, whereas both scratch registers are clobbered. | 675 // is left untouched, whereas both scratch registers are clobbered. |
| 670 void CheckAccessGlobalProxy(Register holder_reg, | 676 void CheckAccessGlobalProxy(Register holder_reg, |
| 671 Register scratch, | 677 Register scratch, |
| 672 Label* miss); | 678 Label* miss); |
| 673 | 679 |
| (...skipping 367 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1041 // Call a runtime routine. | 1047 // Call a runtime routine. |
| 1042 void CallRuntime(const Runtime::Function* f, | 1048 void CallRuntime(const Runtime::Function* f, |
| 1043 int num_arguments, | 1049 int num_arguments, |
| 1044 SaveFPRegsMode save_doubles = kDontSaveFPRegs); | 1050 SaveFPRegsMode save_doubles = kDontSaveFPRegs); |
| 1045 void CallRuntimeSaveDoubles(Runtime::FunctionId id) { | 1051 void CallRuntimeSaveDoubles(Runtime::FunctionId id) { |
| 1046 const Runtime::Function* function = Runtime::FunctionForId(id); | 1052 const Runtime::Function* function = Runtime::FunctionForId(id); |
| 1047 CallRuntime(function, function->nargs, kSaveFPRegs); | 1053 CallRuntime(function, function->nargs, kSaveFPRegs); |
| 1048 } | 1054 } |
| 1049 | 1055 |
| 1050 // Convenience function: Same as above, but takes the fid instead. | 1056 // Convenience function: Same as above, but takes the fid instead. |
| 1051 void CallRuntime(Runtime::FunctionId id, int num_arguments) { | 1057 void CallRuntime(Runtime::FunctionId id, |
| 1052 CallRuntime(Runtime::FunctionForId(id), num_arguments); | 1058 int num_arguments, |
| 1059 SaveFPRegsMode save_doubles = kDontSaveFPRegs) { |
| 1060 CallRuntime(Runtime::FunctionForId(id), num_arguments, save_doubles); |
| 1053 } | 1061 } |
| 1054 | 1062 |
| 1055 // Convenience function: call an external reference. | 1063 // Convenience function: call an external reference. |
| 1056 void CallExternalReference(const ExternalReference& ext, | 1064 void CallExternalReference(const ExternalReference& ext, |
| 1057 int num_arguments); | 1065 int num_arguments); |
| 1058 | 1066 |
| 1059 // Tail call of a runtime routine (jump). | 1067 // Tail call of a runtime routine (jump). |
| 1060 // Like JumpToExternalReference, but also takes care of passing the number | 1068 // Like JumpToExternalReference, but also takes care of passing the number |
| 1061 // of parameters. | 1069 // of parameters. |
| 1062 void TailCallExternalReference(const ExternalReference& ext, | 1070 void TailCallExternalReference(const ExternalReference& ext, |
| (...skipping 271 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1334 Label* failure); | 1342 Label* failure); |
| 1335 | 1343 |
| 1336 // Check if instance type is sequential ASCII string and jump to label if | 1344 // Check if instance type is sequential ASCII string and jump to label if |
| 1337 // it is not. | 1345 // it is not. |
| 1338 void JumpIfInstanceTypeIsNotSequentialAscii(Register type, | 1346 void JumpIfInstanceTypeIsNotSequentialAscii(Register type, |
| 1339 Register scratch, | 1347 Register scratch, |
| 1340 Label* failure); | 1348 Label* failure); |
| 1341 | 1349 |
| 1342 void JumpIfNotUniqueName(Register reg, Label* not_unique_name); | 1350 void JumpIfNotUniqueName(Register reg, Label* not_unique_name); |
| 1343 | 1351 |
| 1352 void EmitSeqStringSetCharCheck(Register string, |
| 1353 Register index, |
| 1354 Register value, |
| 1355 uint32_t encoding_mask); |
| 1356 |
| 1344 // --------------------------------------------------------------------------- | 1357 // --------------------------------------------------------------------------- |
| 1345 // Patching helpers. | 1358 // Patching helpers. |
| 1346 | 1359 |
| 1347 // Get the location of a relocated constant (its address in the constant pool) | 1360 // Get the location of a relocated constant (its address in the constant pool) |
| 1348 // from its load site. | 1361 // from its load site. |
| 1349 void GetRelocatedValueLocation(Register ldr_location, | 1362 void GetRelocatedValueLocation(Register ldr_location, |
| 1350 Register result); | 1363 Register result); |
| 1351 | 1364 |
| 1352 | 1365 |
| 1353 void ClampUint8(Register output_reg, Register input_reg); | 1366 void ClampUint8(Register output_reg, Register input_reg); |
| (...skipping 162 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1516 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) | 1529 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
| 1517 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 1530 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
| 1518 #else | 1531 #else |
| 1519 #define ACCESS_MASM(masm) masm-> | 1532 #define ACCESS_MASM(masm) masm-> |
| 1520 #endif | 1533 #endif |
| 1521 | 1534 |
| 1522 | 1535 |
| 1523 } } // namespace v8::internal | 1536 } } // namespace v8::internal |
| 1524 | 1537 |
| 1525 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ | 1538 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ |
| OLD | NEW |