From: <no...@so...> - 2001-08-08 03:36:36
|
Bugs item #448984, was opened at 2001-08-07 20:36 You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=100599&aid=448984&group_id=599 Category: z80 port Group: None Status: Open Resolution: None Priority: 5 Submitted By: Michael Hope (michaelh) Assigned to: Michael Hope (michaelh) Summary: Incorrect code for rem = rem - (a*1024) Initial Comment: From: Nick Dolling <ndo...@ap...> To: mic...@ju... Subject: GBDK 2.95-2 bug(?) report Hi, I'm by no means a c expert, but I think I may have come across a bug in this release, relating to a right shift or multiply by 2^n. rem = rem - (1024*quot); // this doesn't work it generates this.. lda hl,4(sp) // point to quot ld b,(hl) // load LSB of quot in b (MSB of result) ld c,#0x00 // fill LSB of result w/ zeros inc hl // I think this is the problem ld a,(hl) // loads MSB of quot (should be LSB?) add a,a // shift right once add a,a // shift right again ld b,a // save result quot <<= 10; rem = rem- quot; // this works OK quot *= 1024; rem = rem- quot; // so does this ---------------------------------------------------------------------- You can respond by visiting: http://sourceforge.net/tracker/?func=detail&atid=100599&aid=448984&group_id=599 |