Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #if defined _ptr_included
- #endinput
- #endif
- #define _ptr_included
- stock Pointer:GetPointer(...)
- {
- #emit LOAD.S.pri 12
- #emit RETN
- return Pointer:0;
- }
- stock SetData(Pointer:ptr, value, idx = 0)
- {
- #emit LOAD.S.pri idx // PRI = idx
- #emit SMUL.C 4 // PRI = 4 * idx
- #emit LOAD.S.alt ptr // ALT = ptr
- #emit ADD // PRI = ptr + 4 * idx
- #emit LOAD.S.alt value // ALT = value
- #emit XCHG // ALT = ptr + 4 * idx, PRI = value
- #emit STOR.I // [ptr + 4 * idx] = value ([ALT] = PRI)
- }
- stock GetData(Pointer:ptr, idx = 0)
- {
- #emit LOAD.S.pri idx // PRI = idx
- #emit SMUL.C 4 // PRI = 4 * idx
- #emit LOAD.S.alt ptr // ALT = ptr
- #emit ADD // PRI = ptr + 4 * idx
- #emit LOAD.I // PRI = [PRI] = [ptr + 4 * idx]
- #emit RETN
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement