diff --git a/src/arch/x86/isa/insts/general_purpose/data_transfer/stack_operations.py b/src/arch/x86/isa/insts/general_purpose/data_transfer/stack_operations.py index c86e0e2415..acd2bb1d36 100644 --- a/src/arch/x86/isa/insts/general_purpose/data_transfer/stack_operations.py +++ b/src/arch/x86/isa/insts/general_purpose/data_transfer/stack_operations.py @@ -100,6 +100,12 @@ def macroop PUSH_P { subi rsp, rsp, ssz }; +def macroop PUSH_S { + rdsel t1, sr + st t1, ss, [1, t0, rsp], "-env.dataSize", addressSize=ssz + subi rsp, rsp, dsz, dataSize=ssz +}; + def macroop PUSHA { # Check all the stack addresses. We'll assume that if the beginning and # end are ok, then the stuff in the middle should be as well.