Hi,

When I OR or AND an xdata location with a number, for instance to set a
bit in a register, the compiler generates an extra instruction to move
the old xdata contents into r2.  E.g.:

;       src/myfile.c:305: MY_REG &= ~BIT0;
;       genAssign
;       genAnd
        mov     dptr,#_MY_REG
        movx    a,@dptr
        mov     r2,a
;       Peephole 248.b  optimized and to xdata
        anl     a,#0xFE
        movx    @dptr,a

r2 is not then used anywhere, so why does this happen, and is there
anything I can do to stop it happening?

Mary-Ann

-------------------------------------------------------------------------
This SF.net email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >> http://get.splunk.com/
_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to