From 352fd83771bfb649cc578a454c1d45711334e755 Mon Sep 17 00:00:00 2001 From: Mathieu Desnoyers Date: Fri, 21 Jan 2022 15:05:37 -0500 Subject: [PATCH] arm: refer to 32-bit pointer field for rseq_cs ptr This makes no technical difference on little-endian, but is clearer in case this code is ever used as reference for a port to a big endian 32-bit architecture. Signed-off-by: Mathieu Desnoyers Change-Id: Iaf77c2a1b8e6d8f08be0d26ecb84686a417a07d6 --- include/rseq/rseq-arm.h | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/include/rseq/rseq-arm.h b/include/rseq/rseq-arm.h index 0f3dd87..9ffce22 100644 --- a/include/rseq/rseq-arm.h +++ b/include/rseq/rseq-arm.h @@ -60,6 +60,8 @@ #define RSEQ_SIG 0xe7f5def3 /* udf #24035 ; 0x5de3 */ #endif +#define RSEQ_CS_PTR rseq_cs.ptr.ptr32 + #define rseq_smp_mb() __asm__ __volatile__ ("dmb" ::: "memory", "cc") #define rseq_smp_rmb() __asm__ __volatile__ ("dmb" ::: "memory", "cc") #define rseq_smp_wmb() __asm__ __volatile__ ("dmb" ::: "memory", "cc") @@ -183,7 +185,7 @@ int rseq_cmpeqv_storev(intptr_t *v, intptr_t expect, intptr_t newv, int cpu) : /* gcc asm goto does not allow outputs */ : [cpu_id] "r" (cpu), [current_cpu_id] "m" (rseq_get_abi()->cpu_id), - [rseq_cs] "m" (rseq_get_abi()->rseq_cs), + [rseq_cs] "m" (rseq_get_abi()->RSEQ_CS_PTR), [v] "m" (*v), [expect] "r" (expect), [newv] "r" (newv) @@ -254,7 +256,7 @@ int rseq_cmpnev_storeoffp_load(intptr_t *v, intptr_t expectnot, : /* gcc asm goto does not allow outputs */ : [cpu_id] "r" (cpu), [current_cpu_id] "m" (rseq_get_abi()->cpu_id), - [rseq_cs] "m" (rseq_get_abi()->rseq_cs), + [rseq_cs] "m" (rseq_get_abi()->RSEQ_CS_PTR), /* final store input */ [v] "m" (*v), [expectnot] "r" (expectnot), @@ -316,7 +318,7 @@ int rseq_addv(intptr_t *v, intptr_t count, int cpu) : /* gcc asm goto does not allow outputs */ : [cpu_id] "r" (cpu), [current_cpu_id] "m" (rseq_get_abi()->cpu_id), - [rseq_cs] "m" (rseq_get_abi()->rseq_cs), + [rseq_cs] "m" (rseq_get_abi()->RSEQ_CS_PTR), [v] "m" (*v), [count] "Ir" (count) RSEQ_INJECT_INPUT @@ -381,7 +383,7 @@ int rseq_cmpeqv_trystorev_storev(intptr_t *v, intptr_t expect, : /* gcc asm goto does not allow outputs */ : [cpu_id] "r" (cpu), [current_cpu_id] "m" (rseq_get_abi()->cpu_id), - [rseq_cs] "m" (rseq_get_abi()->rseq_cs), + [rseq_cs] "m" (rseq_get_abi()->RSEQ_CS_PTR), /* try store input */ [v2] "m" (*v2), [newv2] "r" (newv2), @@ -458,7 +460,7 @@ int rseq_cmpeqv_trystorev_storev_release(intptr_t *v, intptr_t expect, : /* gcc asm goto does not allow outputs */ : [cpu_id] "r" (cpu), [current_cpu_id] "m" (rseq_get_abi()->cpu_id), - [rseq_cs] "m" (rseq_get_abi()->rseq_cs), + [rseq_cs] "m" (rseq_get_abi()->RSEQ_CS_PTR), /* try store input */ [v2] "m" (*v2), [newv2] "r" (newv2), @@ -539,7 +541,7 @@ int rseq_cmpeqv_cmpeqv_storev(intptr_t *v, intptr_t expect, : /* gcc asm goto does not allow outputs */ : [cpu_id] "r" (cpu), [current_cpu_id] "m" (rseq_get_abi()->cpu_id), - [rseq_cs] "m" (rseq_get_abi()->rseq_cs), + [rseq_cs] "m" (rseq_get_abi()->RSEQ_CS_PTR), /* cmp2 input */ [v2] "m" (*v2), [expect2] "r" (expect2), @@ -661,7 +663,7 @@ int rseq_cmpeqv_trymemcpy_storev(intptr_t *v, intptr_t expect, : /* gcc asm goto does not allow outputs */ : [cpu_id] "r" (cpu), [current_cpu_id] "m" (rseq_get_abi()->cpu_id), - [rseq_cs] "m" (rseq_get_abi()->rseq_cs), + [rseq_cs] "m" (rseq_get_abi()->RSEQ_CS_PTR), /* final store input */ [v] "m" (*v), [expect] "r" (expect), @@ -785,7 +787,7 @@ int rseq_cmpeqv_trymemcpy_storev_release(intptr_t *v, intptr_t expect, : /* gcc asm goto does not allow outputs */ : [cpu_id] "r" (cpu), [current_cpu_id] "m" (rseq_get_abi()->cpu_id), - [rseq_cs] "m" (rseq_get_abi()->rseq_cs), + [rseq_cs] "m" (rseq_get_abi()->RSEQ_CS_PTR), /* final store input */ [v] "m" (*v), [expect] "r" (expect), -- 2.34.1