Hi,
it looks to me that the source code line numbers in the .asm file
for PIC16 port do match. Lines are missing and the code
generated does not correspond to the referred to lines.
Is this a known issue? Any workarounds? Worth reporting as bug?
br Kusti
Below is an example, starting from C-source code line 135:
int32_t get_position(uint8_t i) {
uint8_t stp;
uint8_t dlt;
uint32_t pos;
uint8_t dir;
do {
stp = g_low_pri_isr_guard;
dlt = g_stepper_states[i].last_steps - g_stepper_states[i].steps;
pos = g_stepper_states[i].position;
dir = g_stepper_states[i].last_dir;
} while (stp != g_low_pri_isr_guard);
if (dir)
pos += dlt;
else
pos -= dlt;
return pos;
}
This gets compiled to:
; ; Starting pCode block
S_main__get_position code
_get_position:
; .line 135; main.c stp = g_low_pri_isr_guard;
MOVFF FSR2L, POSTDEC1
MOVFF FSR1L, FSR2L
MOVFF r0x00, POSTDEC1
MOVFF r0x01, POSTDEC1
MOVFF r0x02, POSTDEC1
MOVFF r0x03, POSTDEC1
MOVFF r0x04, POSTDEC1
MOVFF r0x05, POSTDEC1
MOVFF r0x06, POSTDEC1
MOVFF r0x07, POSTDEC1
MOVFF r0x08, POSTDEC1
MOVFF r0x09, POSTDEC1
MOVFF r0x0a, POSTDEC1
MOVFF r0x0b, POSTDEC1
MOVFF r0x0c, POSTDEC1
MOVFF r0x0d, POSTDEC1
MOVFF r0x0e, POSTDEC1
MOVLW 0x02
MOVFF PLUSW2, r0x00
; ;multiply lit val:0x11 by variable r0x00 and store in r0x00
; .line 140; main.c if (dir)
MOVF r0x00, W
MULLW 0x11
MOVF PRODH, W
MOVWF r0x01
MOVFF PRODL, r0x00
MOVLW LOW(_g_stepper_states)
ADDWF r0x00, F
MOVLW HIGH(_g_stepper_states)
ADDWFC r0x01, F
MOVF r0x00, W
ADDLW 0x08
MOVWF r0x02
MOVLW 0x00
ADDWFC r0x01, W
MOVWF r0x03
MOVF r0x00, W
ADDLW 0x06
MOVWF r0x04
MOVLW 0x00
ADDWFC r0x01, W
MOVWF r0x05
MOVF r0x00, W
ADDLW 0x0d
MOVWF r0x06
MOVLW 0x00
ADDWFC r0x01, W
MOVWF r0x07
MOVLW 0x09
ADDWF r0x00, F
BTFSC STATUS, 0
INCF r0x01, F
_00117_DS_:
; .line 141; main.c pos += dlt;
MOVFF _g_low_pri_isr_guard, r0x08
This e-mail may contain confidential or privileged information. If you are not
the intended recipient (or have received this e-mail in error) please notify
the sender immediately and destroy this e-mail. Any unauthorized copying,
disclosure or distribution of the material in this e-mail is strictly
forbidden. We will not be liable for direct, indirect, special or consequential
damages arising from alteration of the contents of this message by a third
party or as a result of any virus being passed on or as of transmission of this
e-mail in general.
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk
_______________________________________________
Sdcc-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/sdcc-user