diff --git a/mm/include/command_macros_base.h b/mm/include/command_macros_base.h index a52ee1667..22603821f 100644 --- a/mm/include/command_macros_base.h +++ b/mm/include/command_macros_base.h @@ -6,6 +6,9 @@ * Each macro packs bytes (B), halfwords (H) and words (W, for consistency) into a single word */ +// 2S2H [Port] Order B and H variables for endianness +#ifdef IS_BIGENDIAN + #define CMD_BBBB(a, b, c, d) (_SHIFTL(a, 24, 8) | _SHIFTL(b, 16, 8) | _SHIFTL(c, 8, 8) | _SHIFTL(d, 0, 8)) #define CMD_BBH(a, b, c) (_SHIFTL(a, 24, 8) | _SHIFTL(b, 16, 8) | _SHIFTL(c, 0, 16)) @@ -14,6 +17,18 @@ #define CMD_HH(a, b) (_SHIFTL(a, 16, 16) | _SHIFTL(b, 0, 16)) +#else + +#define CMD_BBBB(a, b, c, d) (_SHIFTL(a, 0, 8) | _SHIFTL(b, 8, 8) | _SHIFTL(c, 16, 8) | _SHIFTL(d, 24, 8)) + +#define CMD_BBH(a, b, c) (_SHIFTL(a, 0, 8) | _SHIFTL(b, 8, 8) | _SHIFTL(c, 16, 16)) + +#define CMD_HBB(a, b, c) (_SHIFTL(a, 0, 16) | _SHIFTL(b, 16, 8) | _SHIFTL(c, 24, 8)) + +#define CMD_HH(a, b) (_SHIFTL(a, 0, 16) | _SHIFTL(b, 16, 16)) + +#endif + #define CMD_W(a) (a) #define CMD_F(a) (a)