qbe

Internal scc patchset buffer for QBE
Log | Files | Refs | README | LICENSE

abi.c (407B)


      1 #include "all.h"
      2 
      3 /* eliminate sub-word abi op
      4  * variants for targets that
      5  * treat char/short/... as
      6  * words with arbitrary high
      7  * bits
      8  */
      9 void
     10 elimsb(Fn *fn)
     11 {
     12 	Blk *b;
     13 	Ins *i;
     14 
     15 	for (b=fn->start; b; b=b->link) {
     16 		for (i=b->ins; i<&b->ins[b->nins]; i++) {
     17 			if (isargbh(i->op))
     18 				i->op = Oarg;
     19 			if (isparbh(i->op))
     20 				i->op = Opar;
     21 		}
     22 		if (isretbh(b->jmp.type))
     23 			b->jmp.type = Jretw;
     24 	}
     25 }