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);
}