From: SourceForge.net <no...@so...> - 2005-10-25 20:38:44
|
Bugs item #1337835, was opened at 2005-10-25 22:38 Message generated for change (Tracker Item Submitted) made by Item Submitter You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1337835&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: Live range problems Group: None Status: Open Resolution: None Priority: 5 Submitted By: Bernhard Held (bernhardheld) Assigned to: Nobody/Anonymous (nobody) Summary: genIpop overwrites acc Initial Comment: char e; void foo (unsigned long ul, bit b, char c) reentrant { if (b && (long) ul < 0) e = 0; if (ul && b && c) e = 1; } genIpop (which restores bit b!?) overwrites the result of the comparison ((long) ul < 0) in acc. This happens only with reentrant (resp. stack-auto) and a bit in the parameter list. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1337835&group_id=599 |
From: SourceForge.net <no...@so...> - 2005-10-27 14:22:13
|
Bugs item #1337835, was opened at 2005-10-25 22:38 Message generated for change (Settings changed) made by maartenbrock You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1337835&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: Live range problems >Group: fixed >Status: Closed >Resolution: Fixed Priority: 5 Submitted By: Bernhard Held (bernhardheld) >Assigned to: Maarten Brock (maartenbrock) Summary: genIpop overwrites acc Initial Comment: char e; void foo (unsigned long ul, bit b, char c) reentrant { if (b && (long) ul < 0) e = 0; if (ul && b && c) e = 1; } genIpop (which restores bit b!?) overwrites the result of the comparison ((long) ul < 0) in acc. This happens only with reentrant (resp. stack-auto) and a bit in the parameter list. ---------------------------------------------------------------------- >Comment By: Maarten Brock (maartenbrock) Date: 2005-10-27 16:22 Message: Logged In: YES user_id=888171 Fixed in SDCC 2.5.3 #1129 ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=1337835&group_id=599 |
From: Bernhard H. <sdc...@be...> - 2005-10-28 18:57:02
|
> Fixed in SDCC 2.5.3 #1129 Impressive fix! Thanks a lot, Bernhard |
From: Maarten B. <sou...@ds...> - 2005-10-28 19:51:29
|
Bernhard, > > Fixed in SDCC 2.5.3 #1129 > Impressive fix! > > Thanks a lot, > Bernhard Thanks, but I just as well might thank you for finding the bug :-) I'm afraid the bit/bool variables in stack-auto have not yet seen many testing in the field, because there has been no feedback whatsoever sofar. And I don't believe I made it that flawless. Currently I'm working on a new memory model: medium which stores everything in pdata by default. I hope it will hold nicely between small and large, putting slocs in data, stack in idata and parameters and variables in pdata. Only really large stuff must be put by the user in xdata. At least that's the thought. And I'm also still considering to create 2 byte generic pointers with max. 32k code, 16k xdata, 256 pdata, 256 idata. Should be ideal for most smaller systems. Greetings, Maarten |