Implement Reactor breakpoints
For LLVM, uses the debugtrap intrinsic which is more debugging specific
than the trap intrinsic. The Subzero implementationuses a Trap
intrinsic. Both translate to 'int 3' on x86.
Bug: b/135997638
Change-Id: I6eca71e74752c4646baeade9a39b338e17053336
Reviewed-on: https://swiftshader-review.googlesource.com/c/SwiftShader/+/33369
Reviewed-by: Ben Clayton <bclayton@google.com>
Kokoro-Presubmit: kokoro <noreply+kokoro@google.com>
Tested-by: Nicolas Capens <nicolascapens@google.com>
diff --git a/src/Reactor/LLVMReactor.cpp b/src/Reactor/LLVMReactor.cpp
index 343bf3c..d1c6eb2 100644
--- a/src/Reactor/LLVMReactor.cpp
+++ b/src/Reactor/LLVMReactor.cpp
@@ -3732,6 +3732,13 @@
for (auto arg : args) { arguments.push_back(V(arg)); }
return V(::builder->CreateCall(funcPtr, arguments));
}
+
+ void Breakpoint()
+ {
+ llvm::Function *debugtrap = llvm::Intrinsic::getDeclaration(::module, llvm::Intrinsic::debugtrap);
+
+ ::builder->CreateCall(debugtrap);
+ }
}
namespace rr
@@ -4293,12 +4300,6 @@
}
#endif // ENABLE_RR_PRINT
- void Break()
- {
- auto trap = ::llvm::Intrinsic::getDeclaration(module, llvm::Intrinsic::trap);
- builder->CreateCall(trap);
- }
-
void Nop()
{
auto voidTy = ::llvm::Type::getVoidTy(*context);