X86: Fix the microcode for the LODS instruction.
authorGabe Black <gblack@eecs.umich.edu>
Sun, 1 Feb 2009 08:28:28 +0000 (00:28 -0800)
committerGabe Black <gblack@eecs.umich.edu>
Sun, 1 Feb 2009 08:28:28 +0000 (00:28 -0800)
src/arch/x86/isa/insts/general_purpose/string/load_string.py

index 8d144dc4d6d12859632a10d9e64d596f70502b05..14198701ab2699d8a7ddb5763cca2bd642407b3d 100644 (file)
@@ -61,9 +61,9 @@ def macroop LODS_M {
     subi t4, t0, dsz, dataSize=asz
     mov t3, t3, t4, flags=(nCEZF,), dataSize=asz
 
-    ld rax, seg, [1, t0, rdi]
+    ld rax, seg, [1, t0, rsi]
 
-    add rdi, rdi, t3, dataSize=asz
+    add rsi, rsi, t3, dataSize=asz
 };
 
 def macroop LODS_E_M {
@@ -76,10 +76,10 @@ def macroop LODS_E_M {
     mov t3, t3, t4, flags=(nCEZF,), dataSize=asz
 
 topOfLoop:
-    ld rax, seg, [1, t0, rdi]
+    ld rax, seg, [1, t0, rsi]
 
     subi rcx, rcx, 1, flags=(EZF,), dataSize=asz
-    add rdi, rdi, t3, dataSize=asz
+    add rsi, rsi, t3, dataSize=asz
     br label("topOfLoop"), flags=(nCEZF,)
 end:
     fault "NoFault"