Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stddef.h>
- #include <stdint.h>
- /*
- /data/software/venus-master/build/tmp/work/cortexa7hf-neon-vfpv4-oe-linux-gnueabi/nodejs/22.15.0/recipe-sysroot-native/usr/bin/arm-oe-linux-gnueabi/arm-oe-linux-gnueabi-gcc -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=/data/software/venus-master/build/tmp/work/cortexa7hf-neon-vfpv4-oe-linux-gnueabi/nodejs/22.15.0/recipe-sysroot -O2 -c -o ldrd.o ldrd.c
- */
- extern uint8_t *ext_base;
- int64_t *add_addr(uint8_t *array_buffer, size_t addr)
- {
- return (int64_t *) (array_buffer + addr);
- }
- // ldrd r2, [r1, r2]
- void test(void *dummy, uint8_t *base, size_t addr)
- {
- int64_t *p = add_addr(base, addr);
- int64_t value2 = __atomic_load_n(p, __ATOMIC_SEQ_CST);
- }
- // ldrd r0, [r3, r0]
- int64_t test_r0(size_t addr)
- {
- int64_t *p = add_addr(ext_base, addr);
- return __atomic_load_n(p, __ATOMIC_SEQ_CST);
- }
- ----------------------------------------------------------------------------------
- Disassembly of section .text:
- 00000000 <add_addr>:
- 0: e0800001 add r0, r0, r1
- 4: e12fff1e bx lr
- 00000008 <test>:
- 8: f57ff05b dmb ish
- c: e18120d2 ldrd r2, [r1, r2]
- 10: f57ff05b dmb ish
- 14: e12fff1e bx lr
- 00000018 <test_r0>:
- 18: e3003000 movw r3, #0
- 1c: e3403000 movt r3, #0
- 20: e5933000 ldr r3, [r3]
- 24: f57ff05b dmb ish
- 28: e18300d0 ldrd r0, [r3, r0]
- 2c: f57ff05b dmb ish
- 30: e12fff1e bx lr
Advertisement
Add Comment
Please, Sign In to add comment