From 489dfb314e545b3afe420783fcf3fb4b71a05bf6 Mon Sep 17 00:00:00 2001 From: Aleksandar Andrejevic Date: Wed, 16 Oct 2013 02:22:40 +0000 Subject: [PATCH] [SOFT386] Fix bugs in SF calculation. svn path=/branches/ntvdm/; revision=60687 --- lib/soft386/opcodes.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/soft386/opcodes.c b/lib/soft386/opcodes.c index 53533537f84..8f7488b392d 100644 --- a/lib/soft386/opcodes.c +++ b/lib/soft386/opcodes.c @@ -1663,7 +1663,7 @@ SOFT386_OPCODE_HANDLER(Soft386OpcodeOrModrm) State->Flags.Cf = FALSE; State->Flags.Of = FALSE; State->Flags.Zf = (Result == 0) ? TRUE : FALSE; - State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE; + State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE; State->Flags.Pf = Soft386CalculateParity(Result); /* Write back the result */ @@ -1930,7 +1930,7 @@ SOFT386_OPCODE_HANDLER(Soft386OpcodeAndModrm) State->Flags.Cf = FALSE; State->Flags.Of = FALSE; State->Flags.Zf = (Result == 0) ? TRUE : FALSE; - State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE; + State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE; State->Flags.Pf = Soft386CalculateParity(Result); /* Write back the result */ @@ -2197,7 +2197,7 @@ SOFT386_OPCODE_HANDLER(Soft386OpcodeXorModrm) State->Flags.Cf = FALSE; State->Flags.Of = FALSE; State->Flags.Zf = (Result == 0) ? TRUE : FALSE; - State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE; + State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE; State->Flags.Pf = Soft386CalculateParity(Result); /* Write back the result */ @@ -2454,7 +2454,7 @@ SOFT386_OPCODE_HANDLER(Soft386OpcodeTestModrm) State->Flags.Cf = FALSE; State->Flags.Of = FALSE; State->Flags.Zf = (Result == 0) ? TRUE : FALSE; - State->Flags.Sf = (Result & SIGN_FLAG_LONG) ? TRUE : FALSE; + State->Flags.Sf = (Result & SIGN_FLAG_WORD) ? TRUE : FALSE; State->Flags.Pf = Soft386CalculateParity(Result); }