Advertisement
Guest User

ptr.inc

a guest
Jul 26th, 2012
62
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.79 KB | None | 0 0
  1. #if defined _ptr_included
  2. #endinput
  3. #endif
  4. #define _ptr_included
  5.  
  6. stock Pointer:GetPointer(...)
  7. {
  8. #emit LOAD.S.pri 12
  9. #emit RETN
  10.  
  11. return Pointer:0;
  12. }
  13.  
  14. stock SetData(Pointer:ptr, value, idx = 0)
  15. {
  16. #emit LOAD.S.pri idx // PRI = idx
  17. #emit SMUL.C 4 // PRI = 4 * idx
  18. #emit LOAD.S.alt ptr // ALT = ptr
  19. #emit ADD // PRI = ptr + 4 * idx
  20. #emit LOAD.S.alt value // ALT = value
  21. #emit XCHG // ALT = ptr + 4 * idx, PRI = value
  22. #emit STOR.I // [ptr + 4 * idx] = value ([ALT] = PRI)
  23. }
  24.  
  25. stock GetData(Pointer:ptr, idx = 0)
  26. {
  27. #emit LOAD.S.pri idx // PRI = idx
  28. #emit SMUL.C 4 // PRI = 4 * idx
  29. #emit LOAD.S.alt ptr // ALT = ptr
  30. #emit ADD // PRI = ptr + 4 * idx
  31. #emit LOAD.I // PRI = [PRI] = [ptr + 4 * idx]
  32. #emit RETN
  33.  
  34. return 0;
  35. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement