We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
Initial source code:
if( send_u >= 0){ SEND(send_u + 6) send_u = -1; }//if
generates following object code:
00C11A9E D7000000 EXTS #0x0000,#1 00C11AA2 F2F418FD MOV R4,DPP3:0x3D18 00C11AA6 6D13 JMPR CC_N,0xC11ACE 46: SEND(send_u + 6) 00C11AA8 F054 MOV R5,R4 00C11AAA 5C24 SHL R4,#0x02 00C11AAC 2045 SUB R4,R5 00C11AAE 5C24 SHL R4,#0x02 00C11AB0 2045 SUB R4,R5 00C11AB2 5C14 SHL R4,#0x01 00C11AB4 E6F88440 MOV R8,#0x4084 00C11AB8 0084 ADD R8,R4 00C11ABA E6F40002 MOV R4,#0x0200 00C11ABE E6F5C000 MOV R5,#0x00C0 00C11AC2 DAC14417 CALLS ?C_SCALLI(0xC11744)
When I add to the initial source code label:
if( send_u >= 0){ some_label_: SEND(send_u + 6) send_u = -1; }//if
compiler generates another object code:
00C11A9E D7000000 EXTS #0x0000,#1 00C11AA2 F2F418FD MOV R4,DPP3:0x3D18 00C11AA6 6D17 JMPR CC_N,0xC11AD6 45: fpp_cycle_3_2:; 46: SEND(send_u + 6) 00C11AA8 D7000000 EXTS #0x0000,#1 00C11AAC F2F418FD MOV R4,DPP3:0x3D18 00C11AB0 F054 MOV R5,R4 00C11AB2 5C24 SHL R4,#0x02 00C11AB4 2045 SUB R4,R5 00C11AB6 5C24 SHL R4,#0x02 00C11AB8 2045 SUB R4,R5 00C11ABA 5C14 SHL R4,#0x01 00C11ABC E6F88440 MOV R8,#0x4084 00C11AC0 0084 ADD R8,R4 00C11AC2 E6F40002 MOV R4,#0x0200 00C11AC6 E6F5C000 MOV R5,#0x00C0 00C11ACA DAC14417 CALLS ?C_SCALLI(0xC11744)
Why does compiler do this?
I got it. It is for correct behaviour if "goto" to added label is used.