diff options
Diffstat (limited to 'private/mvdm/softpc.new/base/ccpu386/push.c')
-rw-r--r-- | private/mvdm/softpc.new/base/ccpu386/push.c | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/private/mvdm/softpc.new/base/ccpu386/push.c b/private/mvdm/softpc.new/base/ccpu386/push.c new file mode 100644 index 000000000..f0e250a06 --- /dev/null +++ b/private/mvdm/softpc.new/base/ccpu386/push.c @@ -0,0 +1,68 @@ +/*[ + +push.c + +LOCAL CHAR SccsID[]="@(#)push.c 1.6 07/05/94"; + +PUSH CPU Functions. +------------------- + +]*/ + + +#include <insignia.h> + +#include <host_def.h> +#include <xt.h> +#include <c_main.h> +#include <c_addr.h> +#include <c_bsic.h> +#include <c_prot.h> +#include <c_seg.h> +#include <c_stack.h> +#include <c_xcptn.h> +#include <c_reg.h> +#include <push.h> + + +/* + ===================================================================== + EXTERNAL ROUTINES START HERE + ===================================================================== + */ + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* Generic - one size fits all 'push'. */ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +PUSH + +IFN1( + IU32, op1 + ) + + + { + validate_stack_space(USE_SP, (ISM32)NR_ITEMS_1); + spush(op1); + } + + +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +/* 'push' segment register (always write 16 bits, in a 16/32 bit hole)*/ +/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ +GLOBAL VOID +PUSH_SR + +IFN1( + IU32, op1 + ) + + + { + validate_stack_space(USE_SP, (ISM32)NR_ITEMS_1); + spush16(op1); + } + + |