aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>2024-02-29 09:44:37 -0500
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>2024-02-29 09:44:37 -0500
commit1f37e931aa2cd53026a45792382613d8b1ad8715 (patch)
tree98a28ffbda508ca6ad70260570ee92e9473d12d1
parent500b4c059124ad291e337ff95a5927f3421e6489 (diff)
downloadlibrseq-1f37e931aa2cd53026a45792382613d8b1ad8715.tar.gz
mips: Introduce RSEQ_ASM_U32
This will allow moving __RSEQ_ASM_DEFINE_TABLE and RSEQ_ASM_DEFINE_EXIT_POINT to a generic common header file. Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com> Change-Id: I5a68ce2782bc36d5fc8c030ca7716e41e925cd54
-rw-r--r--include/rseq/arch/mips.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/include/rseq/arch/mips.h b/include/rseq/arch/mips.h
index 9bb00f5..641b278 100644
--- a/include/rseq/arch/mips.h
+++ b/include/rseq/arch/mips.h
@@ -117,13 +117,16 @@ do { \
# endif
#endif
+#define RSEQ_ASM_U32(x) ".word " x
+
/* Only used in RSEQ_ASM_DEFINE_TABLE. */
#define __RSEQ_ASM_DEFINE_TABLE(label, version, flags, start_ip, \
post_commit_offset, abort_ip) \
".pushsection __rseq_cs, \"aw\"\n\t" \
".balign 32\n\t" \
__rseq_str(label) ":\n\t" \
- ".word " __rseq_str(version) ", " __rseq_str(flags) "\n\t" \
+ RSEQ_ASM_U32(__rseq_str(version)) "\n\t" \
+ RSEQ_ASM_U32(__rseq_str(flags)) "\n\t" \
RSEQ_ASM_U64_PTR(__rseq_str(start_ip)) "\n\t" \
RSEQ_ASM_U64_PTR(__rseq_str(post_commit_offset)) "\n\t" \
RSEQ_ASM_U64_PTR(__rseq_str(abort_ip)) "\n\t" \
@@ -181,11 +184,12 @@ do { \
start_ip, post_commit_offset, abort_ip) \
".balign 32\n\t" \
__rseq_str(table_label) ":\n\t" \
- ".word " __rseq_str(version) ", " __rseq_str(flags) "\n\t" \
+ RSEQ_ASM_U32(__rseq_str(version)) "\n\t" \
+ RSEQ_ASM_U32(__rseq_str(flags)) "\n\t" \
RSEQ_ASM_U64_PTR(__rseq_str(start_ip)) "\n\t" \
RSEQ_ASM_U64_PTR(__rseq_str(post_commit_offset)) "\n\t" \
RSEQ_ASM_U64_PTR(__rseq_str(abort_ip)) "\n\t" \
- ".word " __rseq_str(RSEQ_SIG) "\n\t" \
+ RSEQ_ASM_U32(__rseq_str(RSEQ_SIG)) "\n\t" \
__rseq_str(label) ":\n\t" \
teardown \
"b %l[" __rseq_str(abort_label) "]\n\t"