how to modify sign-extend instruction generation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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?


-- 
----------------
ÂWu Xingbo



[Index of Archives]     [Linux C Programming]     [Linux Kernel]     [eCos]     [Fedora Development]     [Fedora Announce]     [Autoconf]     [The DWARVES Debugging Tools]     [Yosemite Campsites]     [Yosemite News]     [Linux GCC]

  Powered by Linux