diff --git a/Source/portable/IAR/MSP430X/data_model.h b/Source/portable/IAR/MSP430X/data_model.h index 08330590f1..988a94998e 100644 --- a/Source/portable/IAR/MSP430X/data_model.h +++ b/Source/portable/IAR/MSP430X/data_model.h @@ -61,14 +61,29 @@ #define pop_x pop.w #define mov_x mov.w #define cmp_x cmp.w -#else /* DATA_MODEL_SMALL__ */ +#endif + +#ifdef __DATA_MODEL_MEDIUM__ + #define pushm_x pushm.a + #define popm_x popm.a + #define push_x pushx.a + #define pop_x popx.a + #define mov_x mov.w + #define cmp_x cmp.w +#endif + +#ifdef __DATA_MODEL_LARGE__ #define pushm_x pushm.a #define popm_x popm.a #define push_x pushx.a #define pop_x popx.a #define mov_x movx.a #define cmp_x cmpx.a -#endif /* __DATA_MODEL_SMALL__ +#endif + +#ifndef pushm_x + #error The assembler options must define one of the following symbols: __DATA_MODEL_SMALL__, __DATA_MODEL_MEDIUM__, or __DATA_MODEL_LARGE__ +#endif #endif /* DATA_MODEL_H */