summaryrefslogtreecommitdiff
path: root/src/arch/x86/isa/insts/general_purpose/control_transfer/call.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/arch/x86/isa/insts/general_purpose/control_transfer/call.py')
-rw-r--r--src/arch/x86/isa/insts/general_purpose/control_transfer/call.py12
1 files changed, 8 insertions, 4 deletions
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 870788099..f18a062a6 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
@@ -44,7 +44,8 @@ def macroop CALL_NEAR_I
limm t1, imm
rdip t7
# Check target of call
- stupd t7, ss, [0, t0, rsp], "-env.dataSize"
+ st t7, ss, [0, t0, rsp], "-env.dataSize"
+ subi rsp, rsp, ssz
wrip t7, t1
};
@@ -55,7 +56,8 @@ def macroop CALL_NEAR_R
rdip t1
# Check target of call
- stupd t1, ss, [0, t0, rsp], "-env.dataSize"
+ st t1, ss, [0, t0, rsp], "-env.dataSize"
+ subi rsp, rsp, ssz
wripi reg, 0
};
@@ -67,7 +69,8 @@ def macroop CALL_NEAR_M
rdip t7
ld t1, seg, sib, disp
# Check target of call
- stupd t7, ss, [0, t0, rsp], "-env.dataSize"
+ st t7, ss, [0, t0, rsp], "-env.dataSize"
+ subi rsp, rsp, ssz
wripi t1, 0
};
@@ -79,7 +82,8 @@ def macroop CALL_NEAR_P
rdip t7
ld t1, seg, riprel, disp
# Check target of call
- stupd t7, ss, [0, t0, rsp], "-env.dataSize"
+ st t7, ss, [0, t0, rsp], "-env.dataSize"
+ subi rsp, rsp, ssz
wripi t1, 0
};
'''