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 ThrowIfNot(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 660 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1334 Label* failure); | 1340 Label* failure); |
1335 | 1341 |
1336 // Check if instance type is sequential ASCII string and jump to label if | 1342 // Check if instance type is sequential ASCII string and jump to label if |
1337 // it is not. | 1343 // it is not. |
1338 void JumpIfInstanceTypeIsNotSequentialAscii(Register type, | 1344 void JumpIfInstanceTypeIsNotSequentialAscii(Register type, |
1339 Register scratch, | 1345 Register scratch, |
1340 Label* failure); | 1346 Label* failure); |
1341 | 1347 |
1342 void JumpIfNotUniqueName(Register reg, Label* not_unique_name); | 1348 void JumpIfNotUniqueName(Register reg, Label* not_unique_name); |
1343 | 1349 |
| 1350 void EmitSeqStringSetCharCheck(Register string, |
| 1351 Register index, |
| 1352 Register value, |
| 1353 uint32_t encoding_mask); |
| 1354 |
1344 // --------------------------------------------------------------------------- | 1355 // --------------------------------------------------------------------------- |
1345 // Patching helpers. | 1356 // Patching helpers. |
1346 | 1357 |
1347 // Get the location of a relocated constant (its address in the constant pool) | 1358 // Get the location of a relocated constant (its address in the constant pool) |
1348 // from its load site. | 1359 // from its load site. |
1349 void GetRelocatedValueLocation(Register ldr_location, | 1360 void GetRelocatedValueLocation(Register ldr_location, |
1350 Register result); | 1361 Register result); |
1351 | 1362 |
1352 | 1363 |
1353 void ClampUint8(Register output_reg, Register input_reg); | 1364 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__) | 1527 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) |
1517 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> | 1528 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> |
1518 #else | 1529 #else |
1519 #define ACCESS_MASM(masm) masm-> | 1530 #define ACCESS_MASM(masm) masm-> |
1520 #endif | 1531 #endif |
1521 | 1532 |
1522 | 1533 |
1523 } } // namespace v8::internal | 1534 } } // namespace v8::internal |
1524 | 1535 |
1525 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ | 1536 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ |
OLD | NEW |