Update of /cvsroot/wisp/wisp/src/native
In directory usw-pr-cvs1:/tmp/cvs-serv30186/src/native
Modified Files:
misc.s misc.wth sys.s sys.wth
Log Message:
Made |length| return the slot count for record types.
Index: misc.s
===================================================================
RCS file: /cvsroot/wisp/wisp/src/native/misc.s,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- misc.s 18 Sep 2002 21:05:08 -0000 1.4
+++ misc.s 18 Sep 2002 21:05:44 -0000 1.5
@@ -1,5 +1,23 @@
.section .text
.align 16
+N_record_type_length:
+.byte 144,81,131,249,1,15,132,8,0,0,0,88,137,193,233
+.long N_signal_argcount - (.+4)
+.byte 88,88,137,195,131,227,3,80,80,133,219,15,132,8,0,0,0,88,106,19,233
+.byte 22,0,0,0,88,80,133,192,15,133,8,0,0,0,88,106,19,233,4,0,0,0,88,139
+.byte 0,80,88,61
+.long RT_record_type
+.byte 15,133,14,0,0,0,88,5,4,0,0,0,139,0,80,233
+.long encui$1 - (.+4)
+.byte 88,104
+.long WB_record_type_huh
+.byte 80,233
+.long raise$2 - (.+4)
+.byte 88,195
+.global N_record_type_length,NN_record_type_length
+.equiv NN_record_type_length, N_record_type_length + 1
+.section .text
+.align 16
N_pr_record_type_length_slot:
.byte 144,187,4,0,0,0,186
.long RT_record_type
@@ -31,7 +49,8 @@
.long RT_record_type
.byte 4,0,0,0
.long NN_record_type_huh
-.byte 19,0,0,0,19,0,0,0
+.byte 19,0,0,0
+.long NN_record_type_length
.global RT_record_type
.section .text
.align 16
Index: misc.wth
===================================================================
RCS file: /cvsroot/wisp/wisp/src/native/misc.wth,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- misc.wth 18 Sep 2002 21:05:08 -0000 1.4
+++ misc.wth 18 Sep 2002 21:05:44 -0000 1.5
@@ -10,6 +10,8 @@
(extern RT_record_type)
(extern WB_range)
+(extern WB_record_type_huh)
+(extern encui$1)
(extern decui$1)
(extern rvec)
@@ -24,11 +26,11 @@
swap RVEC_LEN rdecui cells 'rvec + cell! VOID)
(assemble RT_record_type
- (tetra RT_record_type) ; type pointer
- (tetra 4) ; slot count
- (tetra NN_record_type_huh) ; discriminator
- (tetra 19) ; FALSE ; |ref|
- (tetra 19)) ; FALSE ; |length|
+ (tetra RT_record_type) ; type pointer
+ (tetra 4) ; slot count
+ (tetra NN_record_type_huh) ; discriminator
+ (tetra 19) ; FALSE ; |ref|
+ (tetra NN_record_type_length)) ; |length|
(native record_type_huh
'RT_record_type go-discriminate)
@@ -42,5 +44,12 @@
(native pr_record_type_length_slot
'RT_record_type 4 go-access-slot)
+
+(native record_type_length dup 1 = argc drop
+ dup get-type 'RT_record_type = if
+ 1 cells + cell@ (flush) 'encui$1 jump
+ else
+ 'WB_record_type_huh swap go-raise
+ then)
; vim: ft=worth
Index: sys.s
===================================================================
RCS file: /cvsroot/wisp/wisp/src/native/sys.s,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -d -r1.10 -r1.11
--- sys.s 18 Sep 2002 21:01:03 -0000 1.10
+++ sys.s 18 Sep 2002 21:05:44 -0000 1.11
@@ -1137,20 +1137,3 @@
.long encsi$1 - (.+4)
.global N_unix_time,NN_unix_time
.equiv NN_unix_time, N_unix_time + 1
-.section .text
-.align 16
-dhexprint:
-.byte 88,91,89,80,81,83,232
-.long hexprint - (.+4)
-.byte 232
-.long hexprint - (.+4)
-.byte 195
-.global dhexprint
-.section .text
-.align 16
-hexprint:
-.byte 88,91,80,106,8,83,88,193,192,4,137,195,131,227,15,80,83,131,251,10
-.byte 15,140,7,0,0,0,88,5,7,0,0,0,80,88,5,48,0,0,0,106,1,80,89,91,186,1
-.byte 0,0,0,81,137,225,184,4,0,0,0,205,128,131,196,4,88,91,75,83,80,133
-.byte 219,117,191,88,88,195
-.global hexprint
Index: sys.wth
===================================================================
RCS file: /cvsroot/wisp/wisp/src/native/sys.wth,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -d -r1.11 -r1.12
--- sys.wth 18 Sep 2002 21:01:03 -0000 1.11
+++ sys.wth 18 Sep 2002 21:05:44 -0000 1.12
@@ -6,8 +6,6 @@
;;
;;;; @(#) $Id$
-(include io)
-
(include linux)
(include wisptyp)
|