196c196
< enum peepf { NEEDSAME = 1, REMOVE1ST = 2, ALLOWSFX = 4, REPLACEASM = 8};
---
> enum peepf { NEEDSAME = 1, REMOVE1ST = 2, ALLOWSFX = 4};
274d273
<     "ldd","asm",0,REPLACEASM,
336,343c335
< 	  if(elim[j].flags&REPLACEASM) { // *INLINE*
<           fprintf(stderr, "PARAM: %s\n", asmline[1]);
<           /* asm("...") statements come through as a procedure call with a literal parameter.
<              We have to clobber the loading of that parameter, and convert the call to the
<              procedure into the assembly code text that was passed to us. */
<           memmove(asmline[1],asmline[0]+5,strlen(asmline[0]+5)+1); // Whatever came after \tasm\t
<         } else
<           if(elim[j].flags&REMOVE1ST)
---
> 	    if(elim[j].flags&REMOVE1ST)
2040,2042d2031
<   static char *dbgfile;
<   static int dbgline;
< 
2061,2064d2049
<   
<   dbgfile=0;
<   dbgline=0;
< 
2093,2105d2077
< 
<     if(debug_info){ // Add line and file to asm output
<       if(p->file&&p->line){
<         if(p->file!=dbgfile||p->line!=dbgline){
<           dbgfile=p->file;
<           dbgline=p->line;
<           fflush(f);
<           emit(f,"; %d \"%s\"\n",dbgline,dbgfile);
<           fflush(f);
<         }
<       }
<     }
< 
2707,2731d2678
< 
<       if(  (p->q1.flags&(VAR|DREFOBJ))==VAR
<          &&
<            !strcmp("asm",p->q1.v->identifier)
<          &&
<            p->arg_cnt==1){ // *INLINE*
<         // WE NEED TO PICK UP THE LITERAL STRING PARAMETER THAT
<         // WAS PASSED TO asm("...") AND INSERT IT HERE.
<         // (Meanwhile, using a literal as a placeholder...)
<         IC *param = p->arg_list[0];
<         struct obj q1 = p->q1;
<         if (ISARRAY(param->typf)) {
<           // An array.  still need to check it is a char array and a literal,
<           // then extract the actual literal.
< // I give up.  I can't find the string parameter :-(
< 	  emit(f,"\tasm\t%s ; param->typf=%d q1=%p q1.flags=%d\n",
<                "\tLDA #42",
<                param->typf, q1, q1.flags
<                );
<           // Not sure if this is a better call?
< 	  //emit_inline_asm(f,"\tasm\t\tLDA #42");
< 	  continue;
<         }
<       }
<       
