mirror of
https://github.com/logicog/RTLPlayground.git
synced 2026-08-30 14:52:51 +08:00
Replace manual SFR_DATA_0 and SFR_DATA_8 pair read and write with SFR_DATA_U16.
Also added SFR_SMI_REG_U16. Doing pval = reg_h; pval <<= 8; pval |= reg_l; dont always optimized by the compiler a some places, not all. A snipped of the diff between two .asm files. 5414,5424c5414,5416 < ; rtlplayground.c:1382: uint16_t pval = SFR_DATA_8; < ; rtlplayground.c:1383: pval <<= 8; < mov r7,_SFR_DATA_8 < mov r6,#0x00 < ; rtlplayground.c:1384: pval |= SFR_DATA_0; < mov r4,_SFR_DATA_0 < mov r5,#0x00 < mov a,r6 < orl ar4,a < mov a,r7 < orl ar5,a --- > ; rtlplayground.c:1382: uint16_t pval = SFR_DATA_U16; > mov r6,((_SFR_DATA_U16 >> 0) & 0xFF) > mov r7,((_SFR_DATA_U16 >> 8) & 0xFF)
This commit is contained in:
committed by
René van Dorst
parent
9dafeab490
commit
b8928a8bcd
@@ -21,6 +21,7 @@ __sfr __at(0xa7) SFR_DATA_0;
|
||||
#define SFR_EXEC_WRITE_SMI 11
|
||||
|
||||
/* SFR control registers for phy access via SMI/MDIO */
|
||||
__sfr16 __at(0xc2c3) SFR_SMI_REG_U16;
|
||||
__sfr __at(0xc2) SFR_SMI_REG_H;
|
||||
__sfr __at(0xc3) SFR_SMI_REG_L;
|
||||
__sfr __at(0xc4) SFR_SMI_DEV;
|
||||
|
||||
Reference in New Issue
Block a user