Update of /cvsroot/wisp/wisp/src/native
In directory usw-pr-cvs1:/tmp/cvs-serv29769/src/native
Modified Files:
boxes.s boxes.wth misc.s misc.wth records.nasm wstrings.s
wstrings.wth
Log Message:
Added the |length| dispatcher slot to record types.
Index: boxes.s
===================================================================
RCS file: /cvsroot/wisp/wisp/src/native/boxes.s,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- boxes.s 18 Sep 2002 20:55:17 -0000 1.8
+++ boxes.s 18 Sep 2002 21:05:08 -0000 1.9
@@ -67,4 +67,5 @@
.byte 1,0,0,0
.long NN_box_huh
.long NN_box_ref
+.byte 19,0,0,0
.global RT_box
Index: boxes.wth
===================================================================
RCS file: /cvsroot/wisp/wisp/src/native/boxes.wth,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -d -r1.4 -r1.5
--- boxes.wth 18 Sep 2002 20:55:17 -0000 1.4
+++ boxes.wth 18 Sep 2002 21:05:08 -0000 1.5
@@ -12,7 +12,8 @@
(tetra RT_record_type)
(tetra 1)
(tetra NN_box_huh)
- (tetra NN_box_ref))
+ (tetra NN_box_ref)
+ (tetra 19)) ; FALSE
(extern RT_box)
(extern WB_undefined)
Index: misc.s
===================================================================
RCS file: /cvsroot/wisp/wisp/src/native/misc.s,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- misc.s 18 Sep 2002 21:03:20 -0000 1.3
+++ misc.s 18 Sep 2002 21:05:08 -0000 1.4
@@ -1,5 +1,14 @@
.section .text
.align 16
+N_pr_record_type_length_slot:
+.byte 144,187,4,0,0,0,186
+.long RT_record_type
+.byte 233
+.long slot_accessor_body - (.+4)
+.global N_pr_record_type_length_slot,NN_pr_record_type_length_slot
+.equiv NN_pr_record_type_length_slot, N_pr_record_type_length_slot + 1
+.section .text
+.align 16
N_pr_record_type_ref_slot:
.byte 144,187,3,0,0,0,186
.long RT_record_type
@@ -20,9 +29,9 @@
.align 16
RT_record_type:
.long RT_record_type
-.byte 3,0,0,0
+.byte 4,0,0,0
.long NN_record_type_huh
-.byte 19,0,0,0
+.byte 19,0,0,0,19,0,0,0
.global RT_record_type
.section .text
.align 16
Index: misc.wth
===================================================================
RCS file: /cvsroot/wisp/wisp/src/native/misc.wth,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- misc.wth 18 Sep 2002 21:03:20 -0000 1.3
+++ misc.wth 18 Sep 2002 21:05:08 -0000 1.4
@@ -25,17 +25,22 @@
(assemble RT_record_type
(tetra RT_record_type) ; type pointer
- (tetra 3) ; slot count
+ (tetra 4) ; slot count
(tetra NN_record_type_huh) ; discriminator
- (tetra 19)) ; FALSE ; |ref|
+ (tetra 19) ; FALSE ; |ref|
+ (tetra 19)) ; FALSE ; |length|
(native record_type_huh
'RT_record_type go-discriminate)
; FOR INTERNAL USE BY |make-record-type| ONLY!
-; It is an important guarantee that it's safe to share record-type:s
-; without need to fear undue influence.
+; It is an important guarantee that it's safe to share
+; record-type:s without need to fear undue influence.
+
(native pr_record_type_ref_slot
- 'RT_record_type 3 go-access-slot)
+ 'RT_record_type 3 go-access-slot)
+
+(native pr_record_type_length_slot
+ 'RT_record_type 4 go-access-slot)
; vim: ft=worth
Index: records.nasm
===================================================================
RCS file: /cvsroot/wisp/wisp/src/native/records.nasm,v
retrieving revision 1.31
retrieving revision 1.32
diff -u -d -r1.31 -r1.32
--- records.nasm 18 Sep 2002 21:03:54 -0000 1.31
+++ records.nasm 18 Sep 2002 21:05:09 -0000 1.32
@@ -27,7 +27,8 @@
ja make_record_type.too_many_slots
mov [esp], eax
mov edx, RT_record_type
- gcall record_constructor_body, eax, 0, FALSE ; we don't have a discriminator yet
+ ; we don't have a discriminator yet
+ gcall record_constructor_body, eax, FALSE, FALSE, FALSE
push eax
; stack: (slot-count record-type)
valloc 6
Index: wstrings.s
===================================================================
RCS file: /cvsroot/wisp/wisp/src/native/wstrings.s,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- wstrings.s 18 Sep 2002 21:01:03 -0000 1.3
+++ wstrings.s 18 Sep 2002 21:05:09 -0000 1.4
@@ -33,4 +33,5 @@
.byte 1,0,0,0
.long NN_c16string_huh
.long NN_c16string_ref
+.byte 19,0,0,0
.global RT_c16string
Index: wstrings.wth
===================================================================
RCS file: /cvsroot/wisp/wisp/src/native/wstrings.wth,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -d -r1.3 -r1.4
--- wstrings.wth 18 Sep 2002 21:01:03 -0000 1.3
+++ wstrings.wth 18 Sep 2002 21:05:09 -0000 1.4
@@ -12,7 +12,8 @@
(tetra RT_record_type)
(tetra 1)
(tetra NN_c16string_huh)
- (tetra NN_c16string_ref))
+ (tetra NN_c16string_ref)
+ (tetra 19)) ; FALSE
(extern RT_c16string)
(extern WB_range)
|