From: frief Date: Sat, 22 Mar 2003 21:39:01 +0000 (+0000) Subject: (genCodePointerGet): quicker code for bug #700797 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=300a872d4041bd4ee19455c58cc89ed5dce81057;p=fw%2Fsdcc (genCodePointerGet): quicker code for bug #700797 git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@2409 4a8a32a2-be11-0410-ad9d-d568d2c75423 --- diff --git a/src/mcs51/gen.c b/src/mcs51/gen.c index 638ad61b..8ca01753 100644 --- a/src/mcs51/gen.c +++ b/src/mcs51/gen.c @@ -7522,11 +7522,19 @@ genCodePointerGet (operand * left, while (size--) { - emitcode ("clr", "a"); - emitcode ("movc", "a,@a+dptr"); - aopPut (AOP (result), "a", offset++); - if (size || pi) - emitcode ("inc", "dptr"); + if (pi) + { + emitcode ("clr", "a"); + emitcode ("movc", "a,@a+dptr"); + aopPut (AOP (result), "a", offset++); + emitcode ("inc", "dptr"); + } + else + { + emitcode ("mov", "a,#0x%02x", offset); + emitcode ("movc", "a,@a+dptr"); + aopPut (AOP (result), "a", offset++); + } } }