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

Reply via email to