Revision: 4741
Author: [email protected]
Date: Thu May 27 05:22:23 2010
Log: To be reverted.
Add extra checks for bad stack content in X64 RE-macro-assembler,
to check for crash that is only reproducible with the buildbot and
only in release mode.
http://code.google.com/p/v8/source/detail?r=4741
Modified:
/branches/bleeding_edge/src/x64/regexp-macro-assembler-x64.cc
=======================================
--- /branches/bleeding_edge/src/x64/regexp-macro-assembler-x64.cc Mon May
17 08:41:35 2010
+++ /branches/bleeding_edge/src/x64/regexp-macro-assembler-x64.cc Thu May
27 05:22:23 2010
@@ -1245,17 +1245,38 @@
void RegExpMacroAssemblerX64::SafeCall(Label* to) {
__ call(to);
+//// TESTING CODE - REVERT WHEN TEST IS DONE.
+ __ nop();
+//// END TESTING CODE
}
void RegExpMacroAssemblerX64::SafeCallTarget(Label* label) {
__ bind(label);
+ //// TESTING CODE - REVERT WHEN TEST IS DONE.
+ __ movq(rax, Operand(rsp, 0));
+ __ movb(rax, Operand(rax, 0));
+ __ cmpb(rax, Immediate(0x90)); // Points to nop.
+ Label ok;
+ __ j(equal, &ok);
+ __ int3();
+ __ bind(&ok);
+ //// END TESTING CODE
__ subq(Operand(rsp, 0), code_object_pointer());
}
void RegExpMacroAssemblerX64::SafeReturn() {
__ addq(Operand(rsp, 0), code_object_pointer());
+//// TESTING CODE - REVERT WHEN TEST IS DONE.
+ __ movq(rax, Operand(rsp, 0));
+ __ movb(rax, Operand(rax, 0));
+ __ cmpb(rax, Immediate(0x90)); // Points to nop.
+ Label ok;
+ __ j(equal, &ok);
+ __ int3();
+ __ bind(&ok);
+//// END TESTING CODE
__ ret(0);
}
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev