diff options
author | jmarsh <jmarsh@vogons.org> | 2019-12-10 15:43:24 +0300 |
---|---|---|
committer | Patryk Obara <dreamer.tan@gmail.com> | 2019-12-10 15:43:24 +0300 |
commit | 91951478dc31192417bdbc9eb8effeda7f469c4f (patch) | |
tree | 1990192d26ea1e7329cd62148abb44e4aed0451c | |
parent | fc321a7fa2ac6848c9174232dc3063f8a3bf749c (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.h | 6 |
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) { |