X86: Use all 64 bits of the lstar register in the SYSCALL_64 macroop.
authorTim Harris <tharris@microsoft.com>
Mon, 7 Feb 2011 23:16:27 +0000 (15:16 -0800)
committerTim Harris <tharris@microsoft.com>
Mon, 7 Feb 2011 23:16:27 +0000 (15:16 -0800)
During SYSCALL_64, use dataSize=8 when handling new rip (ref
http://www.intel.com/Assets/PDF/manual/253668.pdf 5.8.8 IA32_LSTAR is a 64-bit
address)

src/arch/x86/isa/insts/general_purpose/system_calls.py

index b015c82fc201d648f5c6587ae3e4795ad2919a12..d6f1a39bf89cf6dfb5b43e5137512f353bd45213 100644 (file)
@@ -79,8 +79,8 @@ def macroop SYSCALL_64
     wrattr ss, t4
 
     # Set the new rip.
-    rdval t7, lstar
-    wrip t0, t7
+    rdval t7, lstar, dataSize=8
+    wrip t0, t7, dataSize=8
 
     # Mask the flags against sf_mask and leave RF turned off.
     rdval t3, sf_mask, dataSize=8