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

Re: [openrisc] OR16 ISA





> for indenfication. What do you think?

Not sure what exactly you mean. Which identification?
^^^ use it to identify it's not a word access.

>
> Here is the updated or16.h
> (please check it thoroughly.
> there are insns added.
> h.swapb
> h.swaph
>
> h.testi
> h.test
> h.seti (set bit in rA to 1 pointed by constant)
> h.set  (set bit in rA to 1 pointed by rB)
> h.clri (clear bit in rA to 0 pointed by constant)
> h.clr  (ditto by rB)

I am not sure how useful are these. IIRC there is not special support in GCC
to use these insns (AFAIK and I am too lazy to check). They are useful if
you write hand optimized assembly routines (optimized libraries).
^^^^^^^^^^^
I think it's quite useful for embedded usage. In general purpose
usage, it may not be helpful. But as you know, our first target is
for embedded system. If you create more powerful insns, I think
compact code and good performace can be achieved easily.
Besides, embedded usage will often need to code assembly
if the section is very critical.

> h.movhi8sl(shift left)
> h.movhi8se(sign extension)
> h.notu
> h.negs
> h.lw
> h.lhz
> h.lbz
> h.sh
> h.sb

This is ok.

>
> And in or32.h, it seems that sign/zero extension insns are discarded?

Actually sign/zero extend between registers was removed. You still have
sign/zero extend type of load/store insns which are enough to make
conversions between signed and unsigned variables of different sizes. And
you can always use pair of shift insns to emulate old extend insns. I
removed these extend insns after generating some code and after I found out
that these insns are not so commonly used.
^^^^^^^^^^^^ I think it still could be reserved in OR16.  I feel one more insn
could let programmer
have more choices and OR will be more flexible, that is target of OR.( I
personally feel that)

Best regards, Jimmy