aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorJuergen Ributzka <juergen@apple.com>2013-11-09 01:51:33 +0000
committerJuergen Ributzka <juergen@apple.com>2013-11-09 01:51:33 +0000
commitd4f5a615674aaabeee4e444e708d1fa00a41495e (patch)
tree37ab0cacf3e60a5d6660d7f4b65e64609d29046c /include
parent999ffb6085a6e24261680b41d4f43ad4ba8fd250 (diff)
downloadexternal_llvm-d4f5a615674aaabeee4e444e708d1fa00a41495e.zip
external_llvm-d4f5a615674aaabeee4e444e708d1fa00a41495e.tar.gz
external_llvm-d4f5a615674aaabeee4e444e708d1fa00a41495e.tar.bz2
[Stackmap] Materialize the jump address within the patchpoint noop slide.
This patch moves the jump address materialization inside the noop slide. This enables patching of the materialization itself or its complete removal. This patch also adds the ability to define scratch registers that can be used safely by the code called from the patchpoint intrinsic. At least one scratch register is required, because that one is used for the materialization of the jump address. This patch depends on D2009. Differential Revision: http://llvm-reviews.chandlerc.com/D2074 Reviewed by Andy git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194306 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Target/TargetLowering.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/llvm/Target/TargetLowering.h b/include/llvm/Target/TargetLowering.h
index 6944f73..5d6d1d2 100644
--- a/include/llvm/Target/TargetLowering.h
+++ b/include/llvm/Target/TargetLowering.h
@@ -2056,6 +2056,12 @@ public:
return VT.bitsLT(MinVT) ? MinVT : VT;
}
+ /// Returns a 0 terminated array of registers that can be safely used as
+ /// scratch registers.
+ virtual const uint16_t *getScratchRegisters(CallingConv::ID CC) const {
+ return NULL;
+ }
+
/// This callback is invoked by the type legalizer to legalize nodes with an
/// illegal operand type but legal result types. It replaces the
/// LowerOperation callback in the type Legalizer. The reason we can not do