memdirect.h 1.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*
  2. Direct unchecked memory access
  3. */
  4. /* $Id$ */
  5. /* The set of macros is neither systematic nor exhaustive; its contents
  6. were suggested by expediency rather than by completeness.
  7. */
  8. /* Loading from memory */
  9. #define p_in_stack(a) i2p((psize == 2) \
  10. ? (btol(stack_loc(a)) | (btol(stack_loc(a+1))<<8)) \
  11. : (btol(stack_loc(a)) | (btol(stack_loc(a+1))<<8) | \
  12. (btol(stack_loc(a+2))<<16) | \
  13. (btol(stack_loc(a+3))<<24)))
  14. #define p_in_data(a) i2p((psize == 2) \
  15. ? (btol(data_loc(a)) | (btol(data_loc(a+1))<<8)) \
  16. : (btol(data_loc(a)) | (btol(data_loc(a+1))<<8) | \
  17. (btol(data_loc(a+2))<<16) | \
  18. (btol(data_loc(a+3))<<24)))
  19. #define p_in_text(a) i2p((psize == 2) \
  20. ? (btol(text_loc(a)) | (btol(text_loc(a+1))<<8)) \
  21. : (btol(text_loc(a)) | (btol(text_loc(a+1))<<8) | \
  22. (btol(text_loc(a+2))<<16) | \
  23. (btol(text_loc(a+3))<<24)))
  24. #define p_in_FRA(a) i2p((psize == 2) \
  25. ? (btol(FRA[a]) | (btol(FRA[a+1])<<8)) \
  26. : (btol(FRA[a]) | (btol(FRA[a+1])<<8) | \
  27. (btol(FRA[a+2])<<16) | \
  28. (btol(FRA[a+3])<<24)))
  29. #define w_in_stack(a) ((wsize == 2) \
  30. ? (btol(stack_loc(a)) | (btos(stack_loc(a+1))<<8)) \
  31. : (btol(stack_loc(a)) | (btol(stack_loc(a+1))<<8) | \
  32. (btol(stack_loc(a+2))<<16) | \
  33. (btos(stack_loc(a+3))<<24)))
  34. #define w_in_data(a) ((wsize == 2) \
  35. ? (btol(data_loc(a)) | (btos(data_loc(a+1))<<8)) \
  36. : (btol(data_loc(a)) | (btol(data_loc(a+1))<<8) | \
  37. (btol(data_loc(a+2))<<16) | \
  38. (btos(data_loc(a+3))<<24)))
  39. #define w_in_FRA(a) ((wsize == 2) \
  40. ? (btol(FRA[a]) | (btos(FRA[a+1])<<8)) \
  41. : (btol(FRA[a]) | (btol(FRA[a+1])<<8) | \
  42. (btol(FRA[a+2])<<16) | \
  43. (btos(FRA[a+3])<<24)))
  44. #define LIN_in_stack(a) ((LINSIZE == 2) \
  45. ? (btol(stack_loc(a)) | (btol(stack_loc(a+1))<<8)) \
  46. : (btol(stack_loc(a)) | (btol(stack_loc(a+1))<<8) | \
  47. (btol(stack_loc(a+2))<<16) | \
  48. (btol(stack_loc(a+3))<<24)))