catch possibly occurring trap with stores in the HP
authorceriel <none@none>
Mon, 11 Apr 1988 12:51:22 +0000 (12:51 +0000)
committerceriel <none@none>
Mon, 11 Apr 1988 12:51:22 +0000 (12:51 +0000)
lang/cem/libcc/mon/brk.e
lang/cem/libcc/mon/sbrk.e

index 9e4d448..548cc30 100644 (file)
@@ -1,10 +1,54 @@
 #
+#include <em_abs.h>
+
  mes 2,EM_WSIZE,EM_PSIZE
+
+.1
+ bss EM_PSIZE,0,0
+.2
+ bss EM_WSIZE,0,0
+
+ pro $ctch,0
+ lol 0
+ loc EHEAP
+ beq *1
+ lae .1
+ loi EM_PSIZE
+ sig
+ asp EM_PSIZE
+ lol 0
+ trp
+ rtt
+1
+ loc 1
+ ste .2
+ rtt
+ end
+
+
  exp $brk
  pro $brk,0
  lal 0
  loi EM_PSIZE
- str 2          ; The - possibly - occurring traps should be caught
+ lpi $ctch
+ sig
+ lae .1
+ sti EM_PSIZE
+ loc 0
+ ste .2
+ str 2          ; The - possibly - occurring trap is caught
+ lae .1
+ loi EM_PSIZE
+ sig
+ asp EM_PSIZE
+ loe .2
+ zgt *1
  zer EM_PSIZE
  ret EM_PSIZE
+1
+ loc -1
+ loc EM_WSIZE
+ loc EM_PSIZE
+ cii
+ ret EM_PSIZE
  end
index bed0138..ce32376 100644 (file)
@@ -1,11 +1,56 @@
 #
+#include <em_abs.h>
+
  mes 2,EM_WSIZE,EM_PSIZE
+
+.1
+ bss EM_PSIZE,0,0
+.2
+ bss EM_WSIZE,0,0
+
+ pro $ctch,0
+ lol 0
+ loc EHEAP
+ beq *1
+ lae .1
+ loi EM_PSIZE
+ sig
+ asp EM_PSIZE
+ lol 0
+ trp
+ rtt
+1
+ loc 1
+ ste .2
+ rtt
+ end
+
+
  exp $sbrk
  pro $sbrk,0
  lor 2
  lor 2
+ lpi $ctch
+ sig
+ lae .1
+ sti EM_PSIZE
+ loc 0
+ ste .2
  lol 0
  ads EM_WSIZE
- str 2          ; The - possibly - occurring traps should be caught
+ str 2          ; The - possibly - occurring trap is caught
+ lae .1
+ loi EM_PSIZE
+ sig
+ asp EM_PSIZE
+ loe .2
+ zgt *1
+ ret EM_PSIZE
+1
+ asp EM_PSIZE
+ loc -1
+ loc EM_WSIZE
+ loc EM_PSIZE
+ cii
  ret EM_PSIZE
  end