git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@230
4a8a32a2-be11-0410-ad9d-
d568d2c75423
/* if increment 16 bits in register */
if (sameRegs(AOP(IC_LEFT(ic)), AOP(IC_RESULT(ic))) &&
/* if increment 16 bits in register */
if (sameRegs(AOP(IC_LEFT(ic)), AOP(IC_RESULT(ic))) &&
- (size > 1) &&
- (icount == 1)) {
- symbol *tlbl = newiTempLabel(NULL);
- emitcode("inc","%s",aopGet(AOP(IC_RESULT(ic)),LSB,FALSE));
- emit2("!shortjp nz,!tlabel", tlbl->key+100);
-
- emitcode("inc","%s",aopGet(AOP(IC_RESULT(ic)),MSB16,FALSE));
- if(size == 4) {
- wassert(0);
+ size > 1 &&
+ icount == 1
+ ) {
+ int offset = 0;
+ symbol *tlbl = NULL;
+ while (size--) {
+ if (offset) {
+ emitLabel(tlbl->key+100);
+ }
+ emitcode("inc","%s",aopGet(AOP(IC_RESULT(ic)), offset++, FALSE));
+ if (size) {
+ tlbl = newiTempLabel(NULL);
+ emit2("!shortjp nz,!tlabel", tlbl->key+100);
+ }
- emitLabel(tlbl->key+100);