diff options
Diffstat (limited to 'abi.c')
-rw-r--r-- | abi.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/abi.c b/abi.c new file mode 100644 index 0000000..9c83497 --- /dev/null +++ b/abi.c @@ -0,0 +1,25 @@ +#include "all.h" + +/* eliminate sub-word abi op + * variants for targets that + * treat char/short/... as + * words with arbitrary high + * bits + */ +void +elimsb(Fn *fn) +{ + Blk *b; + Ins *i; + + for (b=fn->start; b; b=b->link) { + for (i=b->ins; i<&b->ins[b->nins]; i++) { + if (isargbh(i->op)) + i->op = Oarg; + if (isparbh(i->op)) + i->op = Opar; + } + if (isretbh(b->jmp.type)) + b->jmp.type = Jretw; + } +} |