summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/arch/x86/isa/insts/general_purpose/control_transfer/loop.py6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/arch/x86/isa/insts/general_purpose/control_transfer/loop.py b/src/arch/x86/isa/insts/general_purpose/control_transfer/loop.py
index 55c1a7fea..919551e77 100644
--- a/src/arch/x86/isa/insts/general_purpose/control_transfer/loop.py
+++ b/src/arch/x86/isa/insts/general_purpose/control_transfer/loop.py
@@ -37,18 +37,24 @@
microcode = '''
def macroop LOOP_I {
+ # Make the default data size of pops 64 bits in 64 bit mode
+ .adjust_env oszIn64Override
rdip t1
subi rcx, rcx, 1, flags=(EZF,), dataSize=asz
wripi t1, imm, flags=(nCEZF,)
};
def macroop LOOPNE_I {
+ # Make the default data size of pops 64 bits in 64 bit mode
+ .adjust_env oszIn64Override
rdip t1
subi rcx, rcx, 1, flags=(EZF,), dataSize=asz
wripi t1, imm, flags=(CSTRnZnEZF,)
};
def macroop LOOPE_I {
+ # Make the default data size of pops 64 bits in 64 bit mode
+ .adjust_env oszIn64Override
rdip t1
subi rcx, rcx, 1, flags=(EZF,), dataSize=asz
wripi t1, imm, flags=(CSTRZnEZF,)