Quantcast
Channel: Active questions tagged gcc - Stack Overflow
Viewing all articles
Browse latest Browse all 22048

modify GCC ".md" machine definition template

$
0
0

I'm now modifying the gcc's md file, for a mips(el) target. gcc src's version is 4.6.0.

I want to modify the sign-extend insn generation.

originally, mips use "lb"/"lh" instruction to sign-extend a byte/half.

but in my target CPU it doesn't has "lb" and "lh", it only support "lbu" and "lhu". so I have to generate such instructions to implement a sign-ext.

e.g.

lb %0,%1

become:

lbu %0,%1
srl %0,%0,24
sra %0,%0,24

similarly:

lh %0,%1

become:

lhu %0,%1
srl %0,%0,16
sra %0,%0,16

But, In original "md" file, two of these is a single pattern, it use macro to generate lb/lh instruction:

"l<SHORT:size>"<SHORT:size> may be "b" or "h" --> "lb" or "lh"

but I want to get "24" from "b" ; get "16" form "h". How can I achieve this?


Viewing all articles
Browse latest Browse all 22048

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>