String initializer handling is changed.
authorkeie <none@none>
Mon, 30 Jul 1984 14:42:33 +0000 (14:42 +0000)
committerkeie <none@none>
Mon, 30 Jul 1984 14:42:33 +0000 (14:42 +0000)
Strings are now considered to be sequences of xU1's.
No alignment is done before or after the string other than the
alignment done for names and segment type switches.

util/ass/assci.c

index 3b924d8..83e744b 100644 (file)
@@ -32,7 +32,7 @@ static  int     oksizes;        /* MES EMX,.,. seen */
 
 static  enum    m_type { CON, ROM, HOLBSS }     memtype ;
 static  int     valtype;        /* Transfer of type information between
-                                  valsize ans putval
+                                  valsize, inpseudo and putval
                                */
 
 int table3(i) {
@@ -243,7 +243,7 @@ int needed() {
 }
 
 cons_t valsize() {
-       switch(valtype=table2()) { /* valtype is used by putval */
+       switch(valtype=table2()) { /* valtype is used by putval and inpseudo */
        case sp_cst2:
                return wordsize ;
        case sp_ilb1:
@@ -252,13 +252,6 @@ cons_t valsize() {
        case sp_pnam:
                return ptrsize ;
        case sp_scon:
-               /* Pad the string with zeros up to the wordsize */
-               while ( strlngth%wordsize ) {
-                       if ( strlngth>=MAXSTRING )
-                               fatal("string too long") ;
-                       string[strlngth]=0 ;
-                       strlngth++ ;
-               }
                return strlngth ;
        case sp_fcon:
        case sp_icon:
@@ -433,7 +426,7 @@ inpseudo(instr_no) {
                chkstart() ;
                typealign( ctrunc(instr_no)==ps_rom ? ROM : CON ) ;
                while( (objsize=valsize())!=0 ) {
-                       sizealign(objsize) ;
+                       if ( valtype!=sp_scon) sizealign(objsize) ;
                        putval() ;
                        databytes+=objsize ;
                }