mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-08-30 14:52:51 +08:00
Merge pull request #331 from DrDoof/fix/reg-macros-braces
regs: wrap REG_SET and REG_WRITE, and fix what that uncovers
This commit is contained in:
+16
-8
@@ -305,32 +305,40 @@
|
||||
|
||||
#ifdef REGDBG
|
||||
|
||||
#define REG_SET(r, v) SFR_DATA_24 = (((uint32_t)v) >> 24) & 0xff; \
|
||||
#define REG_SET(r, v) do { \
|
||||
SFR_DATA_24 = (((uint32_t)v) >> 24) & 0xff; \
|
||||
SFR_DATA_16 = (((uint32_t)v) >> 16) & 0xff; \
|
||||
SFR_DATA_8 = (((uint16_t)v) >> 8 & 0xff); \
|
||||
SFR_DATA_0 = (v) & 0xff; \
|
||||
reg_write(r); \
|
||||
write_char('R'); print_byte(r >> 8); print_byte(r); write_char('-'); \
|
||||
print_byte(((v) >> 24) & 0xff); print_byte((v) >> 16 & 0xff); print_byte((v) >> 8 & 0xff); print_byte( (v) & 0xff); write_char(' ');
|
||||
print_byte(((v) >> 24) & 0xff); print_byte((v) >> 16 & 0xff); print_byte((v) >> 8 & 0xff); print_byte( (v) & 0xff); write_char(' '); \
|
||||
} while (0)
|
||||
|
||||
#define REG_WRITE(r, v24, v16, v8, v0) SFR_DATA_24 = (v24); \
|
||||
#define REG_WRITE(r, v24, v16, v8, v0) do { \
|
||||
SFR_DATA_24 = (v24); \
|
||||
SFR_DATA_16 = (v16); \
|
||||
SFR_DATA_8 = (v8); \
|
||||
SFR_DATA_0 = (v0); \
|
||||
reg_write(r); \
|
||||
write_char('R'); print_byte(r>>8); print_byte(r); write_char('-'); print_byte(v24); print_byte(v16); print_byte(v8); print_byte(v0); write_char(' ');
|
||||
write_char('R'); print_byte(r>>8); print_byte(r); write_char('-'); print_byte(v24); print_byte(v16); print_byte(v8); print_byte(v0); write_char(' '); \
|
||||
} while (0)
|
||||
#else
|
||||
#define REG_SET(r, v) SFR_DATA_24 = (((uint32_t)v) >> 24) & 0xff; \
|
||||
#define REG_SET(r, v) do { \
|
||||
SFR_DATA_24 = (((uint32_t)v) >> 24) & 0xff; \
|
||||
SFR_DATA_16 = (((uint32_t)v) >> 16) & 0xff; \
|
||||
SFR_DATA_8 = (((uint16_t)v) >> 8 & 0xff); \
|
||||
SFR_DATA_0 = (v) & 0xff; \
|
||||
reg_write(r);
|
||||
reg_write(r); \
|
||||
} while (0)
|
||||
|
||||
#define REG_WRITE(r, v24, v16, v8, v0) SFR_DATA_24 = (v24); \
|
||||
#define REG_WRITE(r, v24, v16, v8, v0) do { \
|
||||
SFR_DATA_24 = (v24); \
|
||||
SFR_DATA_16 = (v16); \
|
||||
SFR_DATA_8 = (v8); \
|
||||
SFR_DATA_0 = (v0); \
|
||||
reg_write(r);
|
||||
reg_write(r); \
|
||||
} while (0)
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user