From 4049c9f76afd17c983eed923940eb7338229561d Mon Sep 17 00:00:00 2001 From: Gabe Black Date: Tue, 2 Oct 2007 22:19:53 -0700 Subject: X86: Put ldst into the microcode (the earlier changeset didn't really). Also clean things up as much as possible so that faulting won't break an instruction. More microops which verify addresses are needed. --HG-- extra : convert_revision : 7c6050cb4798d287fe7d3cc4bb8c20dfa40ad2be --- .../x86/isa/insts/general_purpose/control_transfer/call.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'src/arch/x86/isa/insts/general_purpose/control_transfer/call.py') diff --git a/src/arch/x86/isa/insts/general_purpose/control_transfer/call.py b/src/arch/x86/isa/insts/general_purpose/control_transfer/call.py index 504e9ab0a..f4f856974 100644 --- a/src/arch/x86/isa/insts/general_purpose/control_transfer/call.py +++ b/src/arch/x86/isa/insts/general_purpose/control_transfer/call.py @@ -61,8 +61,9 @@ def macroop CALL_NEAR_I limm t1, imm rdip t7 + # Check target of call + st t7, ss, [0, t0, rsp], "-env.dataSize" subi rsp, rsp, dsz - st t7, ss, [0, t0, rsp] wrip t7, t1 }; @@ -72,8 +73,9 @@ def macroop CALL_NEAR_R .adjust_env oszIn64Override rdip t1 + # Check target of call + st t1, ss, [0, t0, rsp], "-env.dataSize" subi rsp, rsp, dsz - st t1, ss, [0, t0, rsp] wripi reg, 0 }; @@ -84,8 +86,9 @@ def macroop CALL_NEAR_M rdip t7 ld t1, seg, sib, disp + # Check target of call + st t7, ss, [0, t0, rsp], "-env.dataSize" subi rsp, rsp, dsz - st t7, ss, [0, t0, rsp] wripi t1, 0 }; @@ -96,8 +99,9 @@ def macroop CALL_NEAR_P rdip t7 ld t1, seg, riprel, disp + # Check target of call + st t7, ss, [0, t0, rsp], "-env.dataSize" subi rsp, rsp, dsz - st t7, ss, [0, t0, rsp] wripi t1, 0 }; ''' -- cgit v1.2.3