From: SourceForge.net <no...@so...> - 2010-05-03 10:27:13
|
Bugs item #2995824, was opened at 2010-05-03 12:27 Message generated for change (Tracker Item Submitted) made by mlatal You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=2995824&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: mcs51(8051) target Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Mirek Latal (mlatal) Assigned to: Nobody/Anonymous (nobody) Summary: Wrong push/pop ar6 in a for loop Initial Comment: SDCC errorneously generates a push/pop ar6 pair in a nested for loop. It worked in an old 2.5.0 version, in the new 2.9.0 (tested in 2.9.0 stable and some night builds up to sdcc-20100502-5817) it produces error. Command sdcc -c -mmcs51 --stack-auto aes.c produces code, in vhich "push ar6" is inside the for loop 0040 76 00 178 mov @r0,#0x00 0042 179 00103$: 180 ; aes.c:50: dbuf[byte]= mult(MIXCON[mixi+3], str[3]); 0042 C0 06 181 push ar6 0044 A8*00 182 mov r0,_bp 0046 08 183 inc r0 and the "pop ar6" outside the loop. 0090 F6 229 mov @r0,a 0091 DF AF 230 djnz r7,00103$ 231 ; aes.c:49: for (i=0; i<4; i++) { 0093 D0 06 232 pop ar6 233 ; aes.c:46: for (col=0; col<4; col++) { 0095 8D 02 234 mov ar2,r5 0097 0E 235 inc r6 0098 80 98 236 sjmp 00104$ It leads to a stack overflow and crash. M. Latal mlatal(at)post(dot)cz ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=2995824&group_id=599 |
From: SourceForge.net <no...@so...> - 2010-05-15 08:34:00
|
Bugs item #2995824, was opened at 2010-05-03 12:27 Message generated for change (Settings changed) made by frief You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=2995824&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: mcs51(8051) target Group: None Status: Open >Resolution: Duplicate Priority: 5 Private: No Submitted By: Mirek Latal (mlatal) Assigned to: Nobody/Anonymous (nobody) Summary: Wrong push/pop ar6 in a for loop Initial Comment: SDCC errorneously generates a push/pop ar6 pair in a nested for loop. It worked in an old 2.5.0 version, in the new 2.9.0 (tested in 2.9.0 stable and some night builds up to sdcc-20100502-5817) it produces error. Command sdcc -c -mmcs51 --stack-auto aes.c produces code, in vhich "push ar6" is inside the for loop 0040 76 00 178 mov @r0,#0x00 0042 179 00103$: 180 ; aes.c:50: dbuf[byte]= mult(MIXCON[mixi+3], str[3]); 0042 C0 06 181 push ar6 0044 A8*00 182 mov r0,_bp 0046 08 183 inc r0 and the "pop ar6" outside the loop. 0090 F6 229 mov @r0,a 0091 DF AF 230 djnz r7,00103$ 231 ; aes.c:49: for (i=0; i<4; i++) { 0093 D0 06 232 pop ar6 233 ; aes.c:46: for (col=0; col<4; col++) { 0095 8D 02 234 mov ar2,r5 0097 0E 235 inc r6 0098 80 98 236 sjmp 00104$ It leads to a stack overflow and crash. M. Latal mlatal(at)post(dot)cz ---------------------------------------------------------------------- >Comment By: Frieder Ferlemann (frief) Date: 2010-05-15 10:33 Message: This seems to have been reported for SDCC 2.8.0 too (bug #2989562) http://sourceforge.net/tracker/?func=detail&aid=2989562&group_id=599&atid=100599 ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=2995824&group_id=599 |
From: SourceForge.net <no...@so...> - 2010-08-26 17:26:07
|
Bugs item #2995824, was opened at 2010-05-03 12:27 Message generated for change (Settings changed) made by maartenbrock You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=2995824&group_id=599 Please note that this message will contain a full copy of the comment thread, including the initial issue submission, for this request, not just the latest update. Category: mcs51(8051) target >Group: fixed >Status: Closed >Resolution: Fixed Priority: 5 Private: No Submitted By: Mirek Latal (mlatal) >Assigned to: Maarten Brock (maartenbrock) Summary: Wrong push/pop ar6 in a for loop Initial Comment: SDCC errorneously generates a push/pop ar6 pair in a nested for loop. It worked in an old 2.5.0 version, in the new 2.9.0 (tested in 2.9.0 stable and some night builds up to sdcc-20100502-5817) it produces error. Command sdcc -c -mmcs51 --stack-auto aes.c produces code, in vhich "push ar6" is inside the for loop 0040 76 00 178 mov @r0,#0x00 0042 179 00103$: 180 ; aes.c:50: dbuf[byte]= mult(MIXCON[mixi+3], str[3]); 0042 C0 06 181 push ar6 0044 A8*00 182 mov r0,_bp 0046 08 183 inc r0 and the "pop ar6" outside the loop. 0090 F6 229 mov @r0,a 0091 DF AF 230 djnz r7,00103$ 231 ; aes.c:49: for (i=0; i<4; i++) { 0093 D0 06 232 pop ar6 233 ; aes.c:46: for (col=0; col<4; col++) { 0095 8D 02 234 mov ar2,r5 0097 0E 235 inc r6 0098 80 98 236 sjmp 00104$ It leads to a stack overflow and crash. M. Latal mlatal(at)post(dot)cz ---------------------------------------------------------------------- >Comment By: Maarten Brock (maartenbrock) Date: 2010-08-26 19:26 Message: 2989562 was not reported for 2.8.0 but also for 2.9.0. Besides it turned out to be related but not the same bug. This time it was genDjnz which forgot to pop. On top of that this bug report also revealed another bug in ds390 genCast when both source and destination are return-use-only (ruonly). Now fixed in SDCC 2.9.7 #5947. ---------------------------------------------------------------------- Comment By: Frieder Ferlemann (frief) Date: 2010-05-15 10:33 Message: This seems to have been reported for SDCC 2.8.0 too (bug #2989562) http://sourceforge.net/tracker/?func=detail&aid=2989562&group_id=599&atid=100599 ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=2995824&group_id=599 |