summaryrefslogtreecommitdiffstats
path: root/private/mvdm/softpc.new/base/ccpu386/push.c
diff options
context:
space:
mode:
Diffstat (limited to 'private/mvdm/softpc.new/base/ccpu386/push.c')
-rw-r--r--private/mvdm/softpc.new/base/ccpu386/push.c68
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);
+ }
+
+