mirror of
https://github.com/cirosantilli/linux-kernel-module-cheat.git
synced 2026-01-27 12:04:27 +01:00
userland/arch/aarch64/inline_asm/reg_var.c: use 64 bit variables
32-bit ones likely copy paste error from coming from arm v7. Also create userland/arch/aarch64/inline_asm/int_32.c: Also create aarch64_ldaxr_stlxr.cpp and start documenting LDAXR and STLXR.
This commit is contained in:
15
userland/arch/aarch64/inline_asm/inc_32.c
Normal file
15
userland/arch/aarch64/inline_asm/inc_32.c
Normal file
@@ -0,0 +1,15 @@
|
||||
/* https://cirosantilli.com/linux-kernel-module-cheat#gcc-inline-assembly */
|
||||
|
||||
#include <assert.h>
|
||||
#include <inttypes.h>
|
||||
|
||||
int main(void) {
|
||||
uint32_t io = 1;
|
||||
__asm__ (
|
||||
"add %w[io], %w[io], 1;"
|
||||
: [io] "+r" (io)
|
||||
:
|
||||
:
|
||||
);
|
||||
assert(io == 2);
|
||||
}
|
||||
@@ -4,10 +4,10 @@
|
||||
#include <inttypes.h>
|
||||
|
||||
int main(void) {
|
||||
register uint32_t x0 __asm__ ("x0");
|
||||
register uint32_t x1 __asm__ ("x1");
|
||||
uint32_t new_x0;
|
||||
uint32_t new_x1;
|
||||
register uint64_t x0 __asm__ ("x0");
|
||||
register uint64_t x1 __asm__ ("x1");
|
||||
uint64_t new_x0;
|
||||
uint64_t new_x1;
|
||||
{
|
||||
x0 = 1;
|
||||
x1 = 2;
|
||||
|
||||
Reference in New Issue
Block a user