X-Git-Url: http://j8takagi.net/cgi-bin/gitweb.cgi?p=YACASL2.git;a=blobdiff_plain;f=src%2Fexec.c;fp=src%2Fexec.c;h=074b0435d2e4b6a4627afcd123774752025e133e;hp=3ef778dff4628a2e4840ae151f9c656ca523118e;hb=cf87afdb65ffcb317b7bc9c52c79a29f2936642e;hpb=0b153de269505fe25552d3f1ee2a21dc049239c3 diff --git a/src/exec.c b/src/exec.c index 3ef778d..074b043 100644 --- a/src/exec.c +++ b/src/exec.c @@ -370,14 +370,15 @@ void addl(WORD r, WORD val) void subl(WORD r, WORD val) { - long s; + unsigned long o, s; - if((s = sys->cpu->gr[r] + (~val + 1)) > 0x10000) { + o = sys->cpu->gr[r]; + if((s = o + (~val + 1)) > 0x10000) { s -= 0x10000; } sys->cpu->gr[r] = (WORD)s; addl_subl_flagset(s); - if(r < val) { + if(o < val) { sys->cpu->fr += OF; } }