aboutsummaryrefslogtreecommitdiffstats
path: root/steamvr/image-wait/trampoline.S
diff options
context:
space:
mode:
Diffstat (limited to 'steamvr/image-wait/trampoline.S')
-rw-r--r--steamvr/image-wait/trampoline.S26
1 files changed, 26 insertions, 0 deletions
diff --git a/steamvr/image-wait/trampoline.S b/steamvr/image-wait/trampoline.S
new file mode 100644
index 0000000..6c7dbc4
--- /dev/null
+++ b/steamvr/image-wait/trampoline.S
@@ -0,0 +1,26 @@
+/* SPDX-FileCopyrightText: 2026 Tomasz Kramkowski <tomasz@kramkow.ski>
+ * SPDX-License-Identifier: CC0-1.0
+ */
+
+.intel_syntax noprefix
+.section .text.entry,"ax",@progbits
+.global input_wait
+input_wait:
+ push rdi
+ push rsi
+ push rdx
+ push rcx
+ sub rsp, 8
+ call register_image_wait
+ add rsp, 8
+ pop rcx
+ pop rdx
+ pop rsi
+ pop rdi
+
+ # Replay the three displaced instructions, then resume the original function.
+ push rbp
+ mov rax, rsi
+ mov r9d, edx
+ jmp resume_transition
+.section .note.GNU-stack,"",@progbits