#define pop_x pop.w\r
#define mov_x mov.w\r
#define cmp_x cmp.w\r
-#else /* DATA_MODEL_SMALL__ */\r
+#endif\r
+\r
+#ifdef __DATA_MODEL_MEDIUM__\r
+ #define pushm_x pushm.a\r
+ #define popm_x popm.a\r
+ #define push_x pushx.a\r
+ #define pop_x popx.a\r
+ #define mov_x mov.w\r
+ #define cmp_x cmp.w\r
+#endif\r
+\r
+#ifdef __DATA_MODEL_LARGE__\r
#define pushm_x pushm.a\r
#define popm_x popm.a\r
#define push_x pushx.a\r
#define pop_x popx.a\r
#define mov_x movx.a\r
#define cmp_x cmpx.a\r
-#endif /* __DATA_MODEL_SMALL__\r
+#endif\r
+\r
+#ifndef pushm_x\r
+ #error The assembler options must define one of the following symbols: __DATA_MODEL_SMALL__, __DATA_MODEL_MEDIUM__, or __DATA_MODEL_LARGE__\r
+#endif\r
\r
#endif /* DATA_MODEL_H */\r
\r