llvm-project/compiler-rt/lib/xray
Dean Michael Berris 0d86810158 [XRay][x86_64] Define a tail exit trampoline.
Summary:
We define a new trampoline that's a hybrid between the exit and entry
trampolines with the following properties:

- Saves all of the callee-saved registers according to the x86_64
  calling conventions.
- Indicate to the log handler function being called that this is a
  function exit event.

This fixes a bug that is a result of not saving enough of the register
states, and that the log handler is clobbering registers that would be
used by the function being tail-exited into manifesting as runtime
errors.

Reviewers: rSerge, echristo, majnemer

Subscribers: mehdi_amini, llvm-commits

Differential Revision: https://reviews.llvm.org/D26020

llvm-svn: 285787
2016-11-02 04:11:29 +00:00
..
CMakeLists.txt [XRay] ARM 32-bit no-Thumb support in compiler-rt 2016-09-20 14:35:57 +00:00
xray_arm.cc [compiler-rt][XRay] Support tail call sleds 2016-10-13 23:56:54 +00:00
xray_flags.cc [compiler-rt][XRay] re-submitting r276117, with fixes for build breakage due to extraneous and missing dependencies and attempts to build on unsupported OSes 2016-07-21 07:39:55 +00:00
xray_flags.h [compiler-rt][XRay] re-submitting r276117, with fixes for build breakage due to extraneous and missing dependencies and attempts to build on unsupported OSes 2016-07-21 07:39:55 +00:00
xray_flags.inc [compiler-rt][XRay] Initial per-thread inmemory logging implementation 2016-08-26 06:39:33 +00:00
xray_init.cc [compiler-rt] Do not introduce __sanitizer namespace globally 2016-09-15 21:02:18 +00:00
xray_inmemory_log.cc [compiler-rt][XRay][NFC] clang-format XRay sources 2016-10-06 07:09:40 +00:00
xray_interface.cc [compiler-rt][XRay] Support tail call sleds 2016-10-13 23:56:54 +00:00
xray_interface_internal.h [XRay][x86_64] Define a tail exit trampoline. 2016-11-02 04:11:29 +00:00
xray_trampoline_arm.S [XRay] ARM 32-bit no-Thumb support in compiler-rt 2016-09-20 14:35:57 +00:00
xray_trampoline_x86_64.S [XRay][x86_64] Define a tail exit trampoline. 2016-11-02 04:11:29 +00:00
xray_x86_64.cc [XRay][x86_64] Define a tail exit trampoline. 2016-11-02 04:11:29 +00:00