Index: /trunk/ccl/lisp-kernel/spentry.s
===================================================================
--- /trunk/ccl/lisp-kernel/spentry.s	(revision 528)
+++ /trunk/ccl/lisp-kernel/spentry.s	(revision 529)
@@ -467,5 +467,5 @@
         __(b misc_ref_common)
         
-        
+
 /* Is it worth trying to avoid (postpone) consing here ? */
 _spentry(newblocktag)
@@ -943,5 +943,5 @@
 	__(li arg_z,t_value)
 	__(bne cr0,9f)
-	__(str(arg_y,4(imm0)))
+	__(str(arg_y,node_size(imm0)))
 	__(str(arg_z,0(imm0)))
 	__(b 9f)
@@ -1338,8 +1338,8 @@
 _spentry(getxlong)
 	__(extract_lisptag(imm0,arg_z))
-	__(cmpri(imm0,tag_fixnum))
+	__(cmpri(cr0,imm0,tag_fixnum))
 	__(cmpri(cr1,imm0,tag_misc))
 	__(unbox_fixnum(imm0,arg_z))
-	__(beqlr)
+	__(beqlr cr0)
 	__(mr temp0,arg_z)
 	__(bne- cr1,local_label(error))
@@ -1355,5 +1355,5 @@
 	__(beq cr1,local_label(big1))
 	__(beq cr0,local_label(big1))
-	__(bne cr7,local_label(extended))
+	__(bne cr7,local_label(error))
 
 local_label(big2):
@@ -1365,25 +1365,4 @@
 	__(blr)
 
-local_label(extended):
-	/* Handle extended strings. Maybe later handle displaced strings */
-	__(cmpri(cr0,imm0,(4<<num_subtag_bits)|subtag_simple_general_string))
-	__(bne cr0,local_label(error))
-
-	__(vref16(imm0,temp0,3))
-	__(cmpri(cr0,imm0,256))
-	__(vref16(imm1,temp0,2))
-	__(cmpri(cr1,imm1,256))
-	__(rlwimi imm0,imm1,8,16,23)
-	__(vref16(imm1,temp0,1))
-	__(bge cr0,local_label(error))
-	__(cmpri(cr0,imm1,256))
-	__(rlwimi imm0,imm1,16,8,15)
-	__(vref16(imm1,temp0,0))
-	__(bge cr1,local_label(error))
-	__(cmpri(cr1,imm1,256))
-	__(rlwimi imm0,imm1,24,0,7)
-	__(bge cr0,local_label(error))
-	__(bge cr1,local_label(error))
-	__(blr)
 
 local_label(error):
@@ -2866,8 +2845,8 @@
 	__(beq 9f)		/* Null list is proper */
 0:	
-	__(trap_unless_lisptag_equal(temp0,tag_list,imm0))
+	__(trap_unless_list(temp0,imm0))
 	__(_cdr(temp2,temp0))	/* (null (cdr fast)) ? */
 	__(cmpri(temp2,nil_value))
-	__(trap_unless_lisptag_equal(temp2,tag_list,imm0))
+	__(trap_unless_list(temp2,imm0))
 	__(_cdr(temp0,temp2))
 	__(beq 9f)
@@ -3172,5 +3151,5 @@
         __(cmpri(cr1,imm1,tag_fixnum))
 	__(bne- cr0,1f)
-        __(bne- cr0,1f)
+        __(bne- cr1,1f)
 	__(subo. arg_z,arg_y,arg_z)
 	__(bnslr+)
@@ -3227,5 +3206,5 @@
         __(extract_lisptag(imm1,arg_z))
         __(cmpri(cr0,imm0,tag_fixnum))
-        __(cmpri(cr1,imm0,tag_fixnum))
+        __(cmpri(cr1,imm1,tag_fixnum))
 	__(cmpr(cr2,arg_y,arg_z))
 	__(bne- cr0,1f)
@@ -3242,5 +3221,5 @@
         __(extract_lisptag(imm1,arg_z))
         __(cmpri(cr0,imm0,tag_fixnum))
-        __(cmpri(cr1,imm0,tag_fixnum))
+        __(cmpri(cr1,imm1,tag_fixnum))
 	__(cmpr(cr2,arg_y,arg_z))
 	__(bne- cr0,1f)
@@ -3257,5 +3236,5 @@
         __(extract_lisptag(imm1,arg_z))
         __(cmpri(cr0,imm0,tag_fixnum))
-        __(cmpri(cr1,imm0,tag_fixnum))
+        __(cmpri(cr1,imm1,tag_fixnum))
 	__(cmpr(cr2,arg_y,arg_z))
 	__(bne- cr0,1f)
@@ -3272,5 +3251,5 @@
         __(extract_lisptag(imm1,arg_z))
         __(cmpri(cr0,imm0,tag_fixnum))
-        __(cmpri(cr1,imm0,tag_fixnum))
+        __(cmpri(cr1,imm1,tag_fixnum))
 	__(cmpr(cr2,arg_y,arg_z))
 	__(bne- cr0,1f)
@@ -3287,8 +3266,8 @@
         __(extract_lisptag(imm1,arg_z))
         __(cmpri(cr0,imm0,tag_fixnum))
-        __(cmpri(cr1,imm0,tag_fixnum))
+        __(cmpri(cr1,imm1,tag_fixnum))
 	__(cmpr(cr2,arg_y,arg_z))
 	__(bne- cr0,1f)
-        __(bne- cr0,1f)
+        __(bne- cr1,1f)
 	__(li arg_z,nil_value)
 	__(bgtlr cr2)
@@ -3367,5 +3346,5 @@
 	__(cmpri(arg_z,nil_value))
 	__(beqlr)
-1:	__(trap_unless_lisptag_equal(arg_z,tag_list,imm0))
+1:	__(trap_unless_list(arg_z,imm0))
 	__(_car(arg_x,arg_z))
 	__(_cdr(arg_z,arg_z))
@@ -3373,5 +3352,5 @@
 	__(cmpri(cr1,arg_z,nil_value))
 	__(beq cr2,2f)
-	__(trap_unless_lisptag_equal(arg_x,tag_list,imm0))
+	__(trap_unless_list(arg_x,imm0))
 	__(_car(temp0,arg_x))
 	__(cmpr(temp0,arg_y))
@@ -3387,5 +3366,5 @@
 	__(cmpri(cr1,arg_z,nil_value))
 	__(b 2f)
-1:	__(trap_unless_lisptag_equal(arg_z,tag_list,imm0))
+1:	__(trap_unless_list(arg_z,imm0))
 	__(_car(arg_x,arg_z))
 	__(_cdr(temp0,arg_z))
@@ -3433,5 +3412,5 @@
         __(extract_lisptag(imm1,arg_z))
         __(cmpri(cr0,imm0,tag_fixnum))
-        __(cmpri(cr1,imm0,tag_fixnum))
+        __(cmpri(cr1,imm1,tag_fixnum))
 	__(bne- cr0,1f)
         __(bne- cr1,1f)
@@ -3448,5 +3427,5 @@
         __(cmpri(cr3,imm1,tag_fixnum))
 	__(cmpri(cr2,arg_z,-(29<<2)))	/* !! 2 =  fixnumshift */
-	__(bne- 9f)
+	__(bne- cr0,9f)
         __(bne- cr3,9f)
 	__(bne cr1,0f)
@@ -3521,5 +3500,5 @@
         __(extract_lisptag(imm1,arg_z))
         __(cmpri(cr0,imm0,tag_fixnum))
-        __(cmpri(cr0,imm1,tag_fixnum))
+        __(cmpri(cr1,imm1,tag_fixnum))
 	__(bne- cr0,1f)
         __(bne- cr1,1f)
@@ -4324,8 +4303,8 @@
 	__(beq 9f)		/* Null list is proper */
 0:	
-	__(trap_unless_lisptag_equal(temp4,tag_list,imm0))
+	__(trap_unless_list(temp4,imm0))
 	__(_cdr(temp2,temp4))	/* (null (cdr fast)) ? */
 	__(cmpri(temp2,nil_value))
-	__(trap_unless_lisptag_equal(temp2,tag_list,imm0))
+	__(trap_unless_list(temp2,imm0))
 	__(_cdr(temp4,temp2))
 	__(beq 9f)
