foav.h 797 B

12345678910111213141516171819202122
  1. #ifndef __FOAV_H__
  2. #define __FOAV_H__
  3. // -DFOAV_ENABLE=0 to disable, -DFOAV_ENABLE=1 (or just -DFOAV_ENAVLE) to enable
  4. #ifndef FOAV_ENABLE
  5. // Defaults to enable
  6. #define FOAV_ENABLE 1
  7. #endif
  8. #if FOAV_ENABLE == 0
  9. #define FOAV_SAFE(var)
  10. #define FOAV_SAFE2(var1,var2)
  11. #define FOAV_SAFE_CNTXT(context, var)
  12. #define FOAV_SAFE2_CNTXT(context,var1,var2)
  13. #else
  14. #define FOAV_SAFE(var) __asm__ ("# FOAV " #var " (%0)"::"X"(var):);
  15. #define FOAV_SAFE2(var1,var2) __asm__ ("# FOAV " #var1 " (%0)\n\t# FOAV " #var2 " (%1)"::"X"(var1),"X"(var2):);
  16. #define FOAV_SAFE_CNTXT(context, var) __asm__ ("# FOAV " #context " " #var " (%0)"::"X"(var):);
  17. #define FOAV_SAFE2_CNTXT(context,var1,var2) __asm__ ("# FOAV " #context " " #var1 " (%0)\n\t# FOAV " #context " " #var2 " (%1)"::"X"(var1),"X"(var2):);
  18. #endif
  19. #endif