Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/dosbox-staging/dosbox-staging.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjmarsh <jmarsh@vogons.org>2019-12-10 15:43:24 +0300
committerPatryk Obara <dreamer.tan@gmail.com>2019-12-10 15:43:24 +0300
commit91951478dc31192417bdbc9eb8effeda7f469c4f (patch)
tree1990192d26ea1e7329cd62148abb44e4aed0451c
parentfc321a7fa2ac6848c9174232dc3063f8a3bf749c (diff)
Adjust gen_needcarry implementationvogons/dyn-x86-carrypatch-1
Imported from: https://www.vogons.org/viewtopic.php?p=805825#p805825
-rw-r--r--src/cpu/core_dyn_x86/risc_x64.h6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/cpu/core_dyn_x86/risc_x64.h b/src/cpu/core_dyn_x86/risc_x64.h
index 731885f08..f4e0a40d1 100644
--- a/src/cpu/core_dyn_x86/risc_x64.h
+++ b/src/cpu/core_dyn_x86/risc_x64.h
@@ -469,7 +469,11 @@ static void gen_discardflags(void) {
}
static void gen_needcarry(void) {
- gen_needflags();
+ if (!x64gen.flagsactive) {
+ x64gen.flagsactive=true;
+ opcode(4).setea(4,-1,0,CALLSTACK+8).setimm(0,1).Emit16(0xBA0F); // bt [rsp+8/40], 0
+ opcode(4).set64().setea(4,-1,0,CALLSTACK+16).Emit8(0x8D); // lea rsp, [rsp+16/48]
+ }
}
static void gen_setzeroflag(void) {