From: SourceForge.net <no...@so...> - 2010-08-08 13:27:38
|
Bugs item #3041519, was opened at 2010-08-08 15:27 Message generated for change (Tracker Item Submitted) made by maartenbrock You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3041519&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: Simulator Group: None Status: Open Resolution: None Priority: 5 Private: No Submitted By: Maarten Brock (maartenbrock) Assigned to: Nobody/Anonymous (nobody) Summary: muldiv fails under test-z80 Initial Comment: When using the rrz80 simulator from sdcc-extra the muldiv regression test fails: gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.out:6:--- FAIL: "Assertion failed" on i/5 == 20 at gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.c:78 gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.out:7:--- FAIL: "Assertion failed" on i/25 == -2 at gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.c:85 gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.out:8:--- FAIL: "Assertion failed" on i/4 == -12 at gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.c:89 gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.out:6:--- FAIL: "Assertion failed" on i/5 == 20 at gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.c:78 gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.out:7:--- FAIL: "Assertion failed" on i/25 == -2 at gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.c:85 gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.out:8:--- FAIL: "Assertion failed" on i/4 == -12 at gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.c:89 Tested with svn revision 5917. ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3041519&group_id=599 |
From: SourceForge.net <no...@so...> - 2010-08-08 16:57:01
|
Bugs item #3041519, was opened at 2010-08-08 15:27 Message generated for change (Comment added) made by spth You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3041519&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: None Group: None Status: Open Resolution: None >Priority: 7 Private: No Submitted By: Maarten Brock (maartenbrock) Assigned to: Nobody/Anonymous (nobody) Summary: muldiv fails under test-z80 Initial Comment: When using the rrz80 simulator from sdcc-extra the muldiv regression test fails: gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.out:6:--- FAIL: "Assertion failed" on i/5 == 20 at gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.c:78 gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.out:7:--- FAIL: "Assertion failed" on i/25 == -2 at gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.c:85 gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.out:8:--- FAIL: "Assertion failed" on i/4 == -12 at gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.c:89 gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.out:6:--- FAIL: "Assertion failed" on i/5 == 20 at gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.c:78 gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.out:7:--- FAIL: "Assertion failed" on i/25 == -2 at gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.c:85 gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.out:8:--- FAIL: "Assertion failed" on i/4 == -12 at gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.c:89 Tested with svn revision 5917. ---------------------------------------------------------------------- >Comment By: Philipp Krause (spth) Date: 2010-08-08 18:56 Message: It seems this is a bug in the Z80 port and in the ucz80 simulator. I've tried in two other emulators (xmess and Meka). On these emulators I see (int)(i/5) == -13087 for volatile signed long i = 100 using sdcc #5918. Philipp ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3041519&group_id=599 |
From: SourceForge.net <no...@so...> - 2010-08-08 17:12:34
|
Bugs item #3041519, was opened at 2010-08-08 15:27 Message generated for change (Comment added) made by spth You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3041519&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: None Group: None Status: Open Resolution: None Priority: 7 Private: No Submitted By: Maarten Brock (maartenbrock) Assigned to: Nobody/Anonymous (nobody) Summary: muldiv fails under test-z80 Initial Comment: When using the rrz80 simulator from sdcc-extra the muldiv regression test fails: gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.out:6:--- FAIL: "Assertion failed" on i/5 == 20 at gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.c:78 gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.out:7:--- FAIL: "Assertion failed" on i/25 == -2 at gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.c:85 gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.out:8:--- FAIL: "Assertion failed" on i/4 == -12 at gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.c:89 gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.out:6:--- FAIL: "Assertion failed" on i/5 == 20 at gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.c:78 gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.out:7:--- FAIL: "Assertion failed" on i/25 == -2 at gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.c:85 gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.out:8:--- FAIL: "Assertion failed" on i/4 == -12 at gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.c:89 Tested with svn revision 5917. ---------------------------------------------------------------------- >Comment By: Philipp Krause (spth) Date: 2010-08-08 19:12 Message: Hmm, the code sdcc #5919 generates for_divslong.c seems nonsensical: __divslong: push ix ld ix,#0 add ix,sp ld hl,#-10 add hl,sp ld sp,hl ;../_divslong.c:264: (y < 0 ? -y : y)); ld a,11 (ix) jp PO,00113$ ld doesn't affect the parity flag. The add hl, rr doesn't, add ix, rr doesnt. Neither does the push ix. Thus we jump depending on the value the parity flag had before entering the function. Philipp ---------------------------------------------------------------------- Comment By: Philipp Krause (spth) Date: 2010-08-08 18:56 Message: It seems this is a bug in the Z80 port and in the ucz80 simulator. I've tried in two other emulators (xmess and Meka). On these emulators I see (int)(i/5) == -13087 for volatile signed long i = 100 using sdcc #5918. Philipp ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3041519&group_id=599 |
From: SourceForge.net <no...@so...> - 2010-08-08 17:51:53
|
Bugs item #3041519, was opened at 2010-08-08 15:27 Message generated for change (Comment added) made by maartenbrock You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3041519&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: None Group: None Status: Open Resolution: None Priority: 7 Private: No Submitted By: Maarten Brock (maartenbrock) Assigned to: Nobody/Anonymous (nobody) Summary: muldiv fails under test-z80 Initial Comment: When using the rrz80 simulator from sdcc-extra the muldiv regression test fails: gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.out:6:--- FAIL: "Assertion failed" on i/5 == 20 at gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.c:78 gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.out:7:--- FAIL: "Assertion failed" on i/25 == -2 at gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.c:85 gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.out:8:--- FAIL: "Assertion failed" on i/4 == -12 at gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.c:89 gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.out:6:--- FAIL: "Assertion failed" on i/5 == 20 at gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.c:78 gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.out:7:--- FAIL: "Assertion failed" on i/25 == -2 at gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.c:85 gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.out:8:--- FAIL: "Assertion failed" on i/4 == -12 at gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.c:89 Tested with svn revision 5917. ---------------------------------------------------------------------- >Comment By: Maarten Brock (maartenbrock) Date: 2010-08-08 19:51 Message: Sorry, my fault. The check for PO in genCmp must only be performed when there were SUB/SBC opcodes before it. I can move it before the release label, but then the GameBoy code won't see it. But does the GBZ80 have a P flag with overflow functionality like the Z80? ---------------------------------------------------------------------- Comment By: Philipp Krause (spth) Date: 2010-08-08 19:12 Message: Hmm, the code sdcc #5919 generates for_divslong.c seems nonsensical: __divslong: push ix ld ix,#0 add ix,sp ld hl,#-10 add hl,sp ld sp,hl ;../_divslong.c:264: (y < 0 ? -y : y)); ld a,11 (ix) jp PO,00113$ ld doesn't affect the parity flag. The add hl, rr doesn't, add ix, rr doesnt. Neither does the push ix. Thus we jump depending on the value the parity flag had before entering the function. Philipp ---------------------------------------------------------------------- Comment By: Philipp Krause (spth) Date: 2010-08-08 18:56 Message: It seems this is a bug in the Z80 port and in the ucz80 simulator. I've tried in two other emulators (xmess and Meka). On these emulators I see (int)(i/5) == -13087 for volatile signed long i = 100 using sdcc #5918. Philipp ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3041519&group_id=599 |
From: SourceForge.net <no...@so...> - 2010-08-08 18:01:08
|
Bugs item #3041519, was opened at 2010-08-08 15:27 Message generated for change (Comment added) made by spth You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3041519&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: None Group: None Status: Open Resolution: None Priority: 7 Private: No Submitted By: Maarten Brock (maartenbrock) Assigned to: Nobody/Anonymous (nobody) Summary: muldiv fails under test-z80 Initial Comment: When using the rrz80 simulator from sdcc-extra the muldiv regression test fails: gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.out:6:--- FAIL: "Assertion failed" on i/5 == 20 at gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.c:78 gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.out:7:--- FAIL: "Assertion failed" on i/25 == -2 at gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.c:85 gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.out:8:--- FAIL: "Assertion failed" on i/4 == -12 at gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.c:89 gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.out:6:--- FAIL: "Assertion failed" on i/5 == 20 at gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.c:78 gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.out:7:--- FAIL: "Assertion failed" on i/25 == -2 at gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.c:85 gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.out:8:--- FAIL: "Assertion failed" on i/4 == -12 at gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.c:89 Tested with svn revision 5917. ---------------------------------------------------------------------- >Comment By: Philipp Krause (spth) Date: 2010-08-08 20:01 Message: AFAIK the flag itself is there in the gbz80. However you can't use it for conditional jump / ret / call. Philipp ---------------------------------------------------------------------- Comment By: Maarten Brock (maartenbrock) Date: 2010-08-08 19:51 Message: Sorry, my fault. The check for PO in genCmp must only be performed when there were SUB/SBC opcodes before it. I can move it before the release label, but then the GameBoy code won't see it. But does the GBZ80 have a P flag with overflow functionality like the Z80? ---------------------------------------------------------------------- Comment By: Philipp Krause (spth) Date: 2010-08-08 19:12 Message: Hmm, the code sdcc #5919 generates for_divslong.c seems nonsensical: __divslong: push ix ld ix,#0 add ix,sp ld hl,#-10 add hl,sp ld sp,hl ;../_divslong.c:264: (y < 0 ? -y : y)); ld a,11 (ix) jp PO,00113$ ld doesn't affect the parity flag. The add hl, rr doesn't, add ix, rr doesnt. Neither does the push ix. Thus we jump depending on the value the parity flag had before entering the function. Philipp ---------------------------------------------------------------------- Comment By: Philipp Krause (spth) Date: 2010-08-08 18:56 Message: It seems this is a bug in the Z80 port and in the ucz80 simulator. I've tried in two other emulators (xmess and Meka). On these emulators I see (int)(i/5) == -13087 for volatile signed long i = 100 using sdcc #5918. Philipp ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3041519&group_id=599 |
From: SourceForge.net <no...@so...> - 2010-08-08 19:33:25
|
Bugs item #3041519, was opened at 2010-08-08 15:27 Message generated for change (Comment added) made by maartenbrock You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3041519&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: z80 port >Group: fixed >Status: Closed >Resolution: Fixed Priority: 7 Private: No Submitted By: Maarten Brock (maartenbrock) >Assigned to: Maarten Brock (maartenbrock) Summary: muldiv fails under test-z80 Initial Comment: When using the rrz80 simulator from sdcc-extra the muldiv regression test fails: gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.out:6:--- FAIL: "Assertion failed" on i/5 == 20 at gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.c:78 gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.out:7:--- FAIL: "Assertion failed" on i/25 == -2 at gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.c:85 gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.out:8:--- FAIL: "Assertion failed" on i/4 == -12 at gen/z80/muldiv/muldiv_storage_none_type_long_attr_volatile.c:89 gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.out:6:--- FAIL: "Assertion failed" on i/5 == 20 at gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.c:78 gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.out:7:--- FAIL: "Assertion failed" on i/25 == -2 at gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.c:85 gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.out:8:--- FAIL: "Assertion failed" on i/4 == -12 at gen/z80/muldiv/muldiv_storage_static_type_long_attr_volatile.c:89 Tested with svn revision 5917. ---------------------------------------------------------------------- >Comment By: Maarten Brock (maartenbrock) Date: 2010-08-08 21:33 Message: Fixed it for the Z80 in #5919. The GBZ80 will fail bug1757671.c regression test. The last opcode that modified the P/V flag before the call was probably INC 0(IY) for numTests++. Since the two test sets report a different number of tests and test cases I assume this resulted in the difference in the P/V flag. Otherwise there might still be a bug in the ucz80 simulator P/V flag. ---------------------------------------------------------------------- Comment By: Philipp Krause (spth) Date: 2010-08-08 20:01 Message: AFAIK the flag itself is there in the gbz80. However you can't use it for conditional jump / ret / call. Philipp ---------------------------------------------------------------------- Comment By: Maarten Brock (maartenbrock) Date: 2010-08-08 19:51 Message: Sorry, my fault. The check for PO in genCmp must only be performed when there were SUB/SBC opcodes before it. I can move it before the release label, but then the GameBoy code won't see it. But does the GBZ80 have a P flag with overflow functionality like the Z80? ---------------------------------------------------------------------- Comment By: Philipp Krause (spth) Date: 2010-08-08 19:12 Message: Hmm, the code sdcc #5919 generates for_divslong.c seems nonsensical: __divslong: push ix ld ix,#0 add ix,sp ld hl,#-10 add hl,sp ld sp,hl ;../_divslong.c:264: (y < 0 ? -y : y)); ld a,11 (ix) jp PO,00113$ ld doesn't affect the parity flag. The add hl, rr doesn't, add ix, rr doesnt. Neither does the push ix. Thus we jump depending on the value the parity flag had before entering the function. Philipp ---------------------------------------------------------------------- Comment By: Philipp Krause (spth) Date: 2010-08-08 18:56 Message: It seems this is a bug in the Z80 port and in the ucz80 simulator. I've tried in two other emulators (xmess and Meka). On these emulators I see (int)(i/5) == -13087 for volatile signed long i = 100 using sdcc #5918. Philipp ---------------------------------------------------------------------- You can respond by visiting: https://sourceforge.net/tracker/?func=detail&atid=100599&aid=3041519&group_id=599 |