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

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

Issue 435020: Fast-compiler: Add stack limit checks to back edges of while, do-while and for. (Closed)
Patch Set: Created 11 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
OLDNEW
1 // Copyright 2006-2009 the V8 project authors. All rights reserved. 1 // Copyright 2006-2009 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 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 Condition cond = al); 72 Condition cond = al);
73 73
74 // Sets the remembered set bit for [address+offset], where address is the 74 // Sets the remembered set bit for [address+offset], where address is the
75 // address of the heap object 'object'. The address must be in the first 8K 75 // address of the heap object 'object'. The address must be in the first 8K
76 // of an allocated page. The 'scratch' register is used in the 76 // of an allocated page. The 'scratch' register is used in the
77 // implementation and all 3 registers are clobbered by the operation, as 77 // implementation and all 3 registers are clobbered by the operation, as
78 // well as the ip register. 78 // well as the ip register.
79 void RecordWrite(Register object, Register offset, Register scratch); 79 void RecordWrite(Register object, Register offset, Register scratch);
80 80
81 // --------------------------------------------------------------------------- 81 // ---------------------------------------------------------------------------
82 // Stack limit support
83
84 void StackLimitCheck(Label* on_stack_limit_hit);
85
86 // ---------------------------------------------------------------------------
82 // Activation frames 87 // Activation frames
83 88
84 void EnterInternalFrame() { EnterFrame(StackFrame::INTERNAL); } 89 void EnterInternalFrame() { EnterFrame(StackFrame::INTERNAL); }
85 void LeaveInternalFrame() { LeaveFrame(StackFrame::INTERNAL); } 90 void LeaveInternalFrame() { LeaveFrame(StackFrame::INTERNAL); }
86 91
87 void EnterConstructFrame() { EnterFrame(StackFrame::CONSTRUCT); } 92 void EnterConstructFrame() { EnterFrame(StackFrame::CONSTRUCT); }
88 void LeaveConstructFrame() { LeaveFrame(StackFrame::CONSTRUCT); } 93 void LeaveConstructFrame() { LeaveFrame(StackFrame::CONSTRUCT); }
89 94
90 // Enter specific kind of exit frame; either normal or debug mode. 95 // Enter specific kind of exit frame; either normal or debug mode.
91 // Expects the number of arguments in register r0 and 96 // Expects the number of arguments in register r0 and
(...skipping 305 matching lines...) Expand 10 before | Expand all | Expand 10 after
397 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__) 402 #define __FILE_LINE__ __FILE__ ":" CODE_COVERAGE_TOSTRING(__LINE__)
398 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm-> 403 #define ACCESS_MASM(masm) masm->stop(__FILE_LINE__); masm->
399 #else 404 #else
400 #define ACCESS_MASM(masm) masm-> 405 #define ACCESS_MASM(masm) masm->
401 #endif 406 #endif
402 407
403 408
404 } } // namespace v8::internal 409 } } // namespace v8::internal
405 410
406 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_ 411 #endif // V8_ARM_MACRO_ASSEMBLER_ARM_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698