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:
Ciro Santilli 六四事件 法轮功
2019-12-18 00:00:00 +00:00
parent c2c962e214
commit a59c773124
5 changed files with 87 additions and 20 deletions

View 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);
}

View File

@@ -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;