diff options
author | Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | 2024-02-29 09:44:37 -0500 |
---|---|---|
committer | Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | 2024-02-29 09:44:37 -0500 |
commit | 1f37e931aa2cd53026a45792382613d8b1ad8715 (patch) | |
tree | 98a28ffbda508ca6ad70260570ee92e9473d12d1 | |
parent | 500b4c059124ad291e337ff95a5927f3421e6489 (diff) | |
download | librseq-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.h | 10 |
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" |