mirror of
https://github.com/torvalds/linux.git
synced 2026-06-02 03:24:19 +02:00
selftests/bpf: Verify zero-extension behavior in load-acquire tests
Verify that 8-, 16- and 32-bit load-acquires are zero-extending by using immediate values with their highest bit set. Do the same for the 64-bit variant to keep the style consistent. Acked-by: Björn Töpel <bjorn@kernel.org> Reviewed-by: Pu Lehui <pulehui@huawei.com> Tested-by: Björn Töpel <bjorn@rivosinc.com> # QEMU/RVA23 Signed-off-by: Peilin Ye <yepeilin@google.com> Link: https://lore.kernel.org/r/11097fd515f10308b3941469ee4c86cb8872db3f.1746588351.git.yepeilin@google.com Signed-off-by: Alexei Starovoitov <ast@kernel.org>
This commit is contained in:
parent
6e492ffcab
commit
0357f29de8
|
|
@ -15,7 +15,7 @@ __naked void load_acquire_8(void)
|
|||
{
|
||||
asm volatile (
|
||||
"r0 = 0;"
|
||||
"w1 = 0x12;"
|
||||
"w1 = 0xfe;"
|
||||
"*(u8 *)(r10 - 1) = w1;"
|
||||
".8byte %[load_acquire_insn];" // w2 = load_acquire((u8 *)(r10 - 1));
|
||||
"if r2 == r1 goto 1f;"
|
||||
|
|
@ -35,7 +35,7 @@ __naked void load_acquire_16(void)
|
|||
{
|
||||
asm volatile (
|
||||
"r0 = 0;"
|
||||
"w1 = 0x1234;"
|
||||
"w1 = 0xfedc;"
|
||||
"*(u16 *)(r10 - 2) = w1;"
|
||||
".8byte %[load_acquire_insn];" // w2 = load_acquire((u16 *)(r10 - 2));
|
||||
"if r2 == r1 goto 1f;"
|
||||
|
|
@ -55,7 +55,7 @@ __naked void load_acquire_32(void)
|
|||
{
|
||||
asm volatile (
|
||||
"r0 = 0;"
|
||||
"w1 = 0x12345678;"
|
||||
"w1 = 0xfedcba09;"
|
||||
"*(u32 *)(r10 - 4) = w1;"
|
||||
".8byte %[load_acquire_insn];" // w2 = load_acquire((u32 *)(r10 - 4));
|
||||
"if r2 == r1 goto 1f;"
|
||||
|
|
@ -75,7 +75,7 @@ __naked void load_acquire_64(void)
|
|||
{
|
||||
asm volatile (
|
||||
"r0 = 0;"
|
||||
"r1 = 0x1234567890abcdef ll;"
|
||||
"r1 = 0xfedcba0987654321 ll;"
|
||||
"*(u64 *)(r10 - 8) = r1;"
|
||||
".8byte %[load_acquire_insn];" // r2 = load_acquire((u64 *)(r10 - 8));
|
||||
"if r2 == r1 goto 1f;"
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user