Index: /trunk/ccl/lisp-kernel/ppc-constants32.h
===================================================================
--- /trunk/ccl/lisp-kernel/ppc-constants32.h	(revision 5091)
+++ /trunk/ccl/lisp-kernel/ppc-constants32.h	(revision 5092)
@@ -143,16 +143,20 @@
 #define max_16_bit_ivector_subtag subtag_s16_vector
 
+#ifndef CHAR_SIZE_32
 #define subtag_simple_base_string IMM_SUBTAG(27)
+#endif
 #define subtag_s8_vector IMM_SUBTAG(26)
 #define subtag_u8_vector IMM_SUBTAG(25)
 #define min_8_bit_ivector_subtag subtag_u8_vector
-#define max_8_bit_ivector_subtag subtag_simple_base_string
-
-#define subtag_new_string IMM_SUBTAG(24)
+#define max_8_bit_ivector_subtag IMM_SUBTAG(27)
+
+#ifdef CHAR_SIZE_32
+#define subtag_simple_base_string IMM_SUBTAG(24)
+#endif
 #define subtag_fixnum_vector IMM_SUBTAG(23)
 #define subtag_s32_vector IMM_SUBTAG(22)
 #define subtag_u32_vector IMM_SUBTAG(21)
 #define subtag_single_float_vector IMM_SUBTAG(20)
-#define max_32_bit_ivector_subtag subtag_new_string
+#define max_32_bit_ivector_subtag IMM_SUBTAG(24)
 #define min_cl_ivector_subtag subtag_single_float_vector
 
Index: /trunk/ccl/lisp-kernel/ppc-constants32.s
===================================================================
--- /trunk/ccl/lisp-kernel/ppc-constants32.s	(revision 5091)
+++ /trunk/ccl/lisp-kernel/ppc-constants32.s	(revision 5092)
@@ -179,15 +179,19 @@
 min_16_bit_ivector_subtag = subtag_u16_vector
 max_16_bit_ivector_subtag = subtag_s16_vector
+        ifdef([CHAR_SIZE_32],[],[
 	define_imm_subtag(simple_base_string,27)
+        ])
 	define_imm_subtag(s8_vector,26)
 	define_imm_subtag(u8_vector,25)
 min_8_bit_ivector_subtag = subtag_u8_vector
-max_8_bit_ivector_subtag = subtag_simple_base_string
-        define_imm_subtag(new_string,24)
+max_8_bit_ivector_subtag = fulltag_immheader|(27<<ntagbits)
+        ifdef([CHAR_SIZE_32],[
+        define_imm_subtag(simple_base_string,24)
+        ])
         define_imm_subtag(fixnum_vector,23)
 	define_imm_subtag(s32_vector,22)
 	define_imm_subtag(u32_vector,21)
 	define_imm_subtag(single_float_vector,20)
-max_32_bit_ivector_subtag = subtag_new_string
+max_32_bit_ivector_subtag = fulltag_immheader|(24<<ntagbits)
 min_cl_ivector_subtag = subtag_single_float_vector
 
Index: /trunk/ccl/lisp-kernel/ppc-constants64.h
===================================================================
--- /trunk/ccl/lisp-kernel/ppc-constants64.h	(revision 5091)
+++ /trunk/ccl/lisp-kernel/ppc-constants64.h	(revision 5092)
@@ -87,5 +87,7 @@
 #define subtag_u32_vector CL_ARRAY_SUBTAG(ivector_class_32_bit,2)
 #define subtag_single_float_vector CL_ARRAY_SUBTAG(ivector_class_32_bit,3)
-#define subtag_new_string CL_ARRAY_SUBTAG(ivector_class_32_bit,5)
+#ifdef CHAR_SIZE_32
+#define subtag_simple_base_string CL_ARRAY_SUBTAG(ivector_class_32_bit,5)
+#endif
 #define subtag_s16_vector CL_ARRAY_SUBTAG(ivector_class_other_bit,1)
 #define subtag_u16_vector CL_ARRAY_SUBTAG(ivector_class_other_bit,2)
@@ -93,6 +95,7 @@
 #define subtag_s8_vector CL_ARRAY_SUBTAG(ivector_class_8_bit,1)
 #define subtag_u8_vector CL_ARRAY_SUBTAG(ivector_class_8_bit,2)
+#ifndef CHAR_SIZE_32
 #define subtag_simple_base_string CL_ARRAY_SUBTAG(ivector_class_8_bit,5)
-
+#endif
 
 /* There's some room for expansion in non-array ivector space. */
Index: /trunk/ccl/lisp-kernel/ppc-constants64.s
===================================================================
--- /trunk/ccl/lisp-kernel/ppc-constants64.s	(revision 5091)
+++ /trunk/ccl/lisp-kernel/ppc-constants64.s	(revision 5092)
@@ -98,5 +98,7 @@
 define_cl_array_subtag(u32_vector,ivector_class_32_bit,2)
 define_cl_array_subtag(single_float_vector,ivector_class_32_bit,3)
-define_cl_array_subtag(new_string,ivector_class_32_bit,5)        
+        ifdef([CHAR_SIZE_32],[
+define_cl_array_subtag(simple_base_string,ivector_class_32_bit,5)
+        ])
 define_cl_array_subtag(s16_vector,ivector_class_other_bit,1)
 define_cl_array_subtag(u16_vector,ivector_class_other_bit,2)
@@ -104,6 +106,7 @@
 define_cl_array_subtag(s8_vector,ivector_class_8_bit,1)
 define_cl_array_subtag(u8_vector,ivector_class_8_bit,2)
+        ifdef([CHAR_SIZE_32],[],[
 define_cl_array_subtag(simple_base_string,ivector_class_8_bit,5)
-
+        ])
 /* There's some room for expansion in non-array ivector space. */
 define_subtag(macptr,ivector_class_64_bit,1)
