[LLVMdev] JVM Backend

David Roberts d at vidr.cc
Sun Nov 29 18:10:31 PST 2009


Hi Duncan,

> for funky sized integers, the most important operations to support are
> loads and stores, shifts and logical operations (and, or, xor).  These
> are the ones that the optimizers like to introduce most.  The logical
> operations are straightforward.  Loads and stores of iN are equivalent
> to using memcpy of (N+7)/8 bytes from memory to wherever you are keeping
> the value (for a load), or the reverse for a store, so that's pretty easy
> as well [this assumes that you set things up right so that endianness is
> the same in memory and in "registers"].  Shifts are the most complicated,
> but still pretty simple.
Thanks for the tip :) - I'll look into adding support for these.

--
David Roberts
http://da.vidr.cc/



On Sun, Nov 29, 2009 at 20:06, Duncan Sands <baldrick at free.fr> wrote:
> Hi David,
>
>> No, structs are supported. The only unsupported types at the moment
>> (as far as I am aware) are things like i31 and f80.
>
> for funky sized integers, the most important operations to support are
> loads and stores, shifts and logical operations (and, or, xor).  These
> are the ones that the optimizers like to introduce most.  The logical
> operations are straightforward.  Loads and stores of iN are equivalent
> to using memcpy of (N+7)/8 bytes from memory to wherever you are keeping
> the value (for a load), or the reverse for a store, so that's pretty easy
> as well [this assumes that you set things up right so that endianness is
> the same in memory and in "registers"].  Shifts are the most complicated,
> but still pretty simple.
>
> Ciao,
>
> Duncan.
>




More information about the llvm-dev mailing list