Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(2)

Side by Side Diff: src/arm/macro-assembler-arm.h

Issue 110573004: Merge bleeding_edge 17696:18016. (Closed) Base URL: https://v8.googlecode.com/svn/branches/experimental/parser
Patch Set: Created 7 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
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
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
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
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
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_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698