Guest User

Untitled

a guest
May 14th, 2025
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.39 KB | None | 0 0
  1. #include <stddef.h>
  2. #include <stdint.h>
  3.  
  4. /*
  5. /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
  6. */
  7.  
  8. extern uint8_t *ext_base;
  9.  
  10. int64_t *add_addr(uint8_t *array_buffer, size_t addr)
  11. {
  12. return (int64_t *) (array_buffer + addr);
  13. }
  14.  
  15. // ldrd r2, [r1, r2]
  16. void test(void *dummy, uint8_t *base, size_t addr)
  17. {
  18. int64_t *p = add_addr(base, addr);
  19. int64_t value2 = __atomic_load_n(p, __ATOMIC_SEQ_CST);
  20. }
  21.  
  22. // ldrd r0, [r3, r0]
  23. int64_t test_r0(size_t addr)
  24. {
  25. int64_t *p = add_addr(ext_base, addr);
  26. return __atomic_load_n(p, __ATOMIC_SEQ_CST);
  27. }
  28.  
  29. ----------------------------------------------------------------------------------
  30.  
  31. Disassembly of section .text:
  32.  
  33. 00000000 <add_addr>:
  34. 0: e0800001 add r0, r0, r1
  35. 4: e12fff1e bx lr
  36.  
  37. 00000008 <test>:
  38. 8: f57ff05b dmb ish
  39. c: e18120d2 ldrd r2, [r1, r2]
  40. 10: f57ff05b dmb ish
  41. 14: e12fff1e bx lr
  42.  
  43. 00000018 <test_r0>:
  44. 18: e3003000 movw r3, #0
  45. 1c: e3403000 movt r3, #0
  46. 20: e5933000 ldr r3, [r3]
  47. 24: f57ff05b dmb ish
  48. 28: e18300d0 ldrd r0, [r3, r0]
  49. 2c: f57ff05b dmb ish
  50. 30: e12fff1e bx lr
  51.  
Advertisement
Add Comment
Please, Sign In to add comment