+
+ emitcode("ld", "a,%s",aopGet(AOP(right),0,FALSE));
+ emitcode("inc","a");
+ freeAsmop (right, NULL, ic);
+
+ tlbl = newiTempLabel(NULL);
+ tlbl1= newiTempLabel(NULL);
+ size = AOP_SIZE(result);
+ offset = size - 1;
+
+ emitcode(_shortJP, LABEL_STR, tlbl1->key+100);
+ emitcode("", LABEL_STR ":", tlbl->key+100);
+ while (size--) {
+ l = aopGet(AOP(result),offset--,FALSE);
+ if (first) {
+ if (is_signed)
+ emitcode("sra", "%s", l);
+ else
+ emitcode("srl", "%s", l);
+ first = 0;
+ }
+ else
+ emitcode("rr", "%s", l);
+ }
+ emitcode("", LABEL_STR ":", tlbl1->key+100);
+ emitcode("dec", "a");
+ emitcode(_shortJP, "nz," LABEL_STR, tlbl->key+100);
+
+ freeAsmop(left,NULL,ic);
+ freeAsmop(result,NULL,ic);