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. git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@4741 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
This commit is contained in:
parent
0dd031aa01
commit
72f192296d
@ -1245,17 +1245,38 @@ void RegExpMacroAssemblerX64::BranchOrBacktrack(Condition condition,
|
|||||||
|
|
||||||
void RegExpMacroAssemblerX64::SafeCall(Label* to) {
|
void RegExpMacroAssemblerX64::SafeCall(Label* to) {
|
||||||
__ call(to);
|
__ call(to);
|
||||||
|
//// TESTING CODE - REVERT WHEN TEST IS DONE.
|
||||||
|
__ nop();
|
||||||
|
//// END TESTING CODE
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void RegExpMacroAssemblerX64::SafeCallTarget(Label* label) {
|
void RegExpMacroAssemblerX64::SafeCallTarget(Label* label) {
|
||||||
__ bind(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());
|
__ subq(Operand(rsp, 0), code_object_pointer());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void RegExpMacroAssemblerX64::SafeReturn() {
|
void RegExpMacroAssemblerX64::SafeReturn() {
|
||||||
__ addq(Operand(rsp, 0), code_object_pointer());
|
__ 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);
|
__ ret(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user