X86: Implement LEAVE
authorGabe Black <gblack@eecs.umich.edu>
Mon, 30 Jul 2007 20:19:11 +0000 (13:19 -0700)
committerGabe Black <gblack@eecs.umich.edu>
Mon, 30 Jul 2007 20:19:11 +0000 (13:19 -0700)
--HG--
extra : convert_revision : c642d5018ece82c644e1cfa389b2d3dbd6ab5ffd

src/arch/x86/isa/insts/data_transfer/stack_operations.py

index 1c13b44b4dbc1b3fa45309f8b0c1dc1db10a5467..082e24485cef4cb4b50e028c0c2aa08366aa94d3 100644 (file)
@@ -141,6 +141,15 @@ def macroop POPA {
     ld rax, ss, [0, t0, rsp], "7 * env.dataSize"
     addi rsp, rsp, "8 * env.dataSize"
 };
+
+def macroop LEAVE {
+    # Make the default data size of pops 64 bits in 64 bit mode
+    .adjust_env oszIn64Override
+
+    mov rsp, rsp, rbp
+    ld rbp, ss, [0, t0, rsp]
+    addi rsp, rsp, dsz
+};
 '''
 #let {{
 #    class ENTER(Inst):