Can I assign left shift in relocation HOWTO table ??

김봉진 billyjiny@gmail.com
Sat Oct 17 07:17:00 GMT 2009


Hello.


1)

i am porting bfd/elf32-arm.c to my own processor

My processor's ISA has splitted immediate bit field.
e.g.
31  ....................... 15 .....  12 11 .......... 5 4  3  2  1
 - - - - - - - - - - - - - -  simm9_h . .........        simm9_l
9 bit immediate is splitted into 4 high bits and 5 low bits,
and high part is assign in bit 15 ~ 12.

In reloc table HOWTO,
there is a field for 'rightshift' value
but i need to split 9 bit and shift 4 high bits left to put them into insn.
is it possible? how can i do it?



2)

i want to load 32 bit address of a variable.
i want my gcc to output

ld  r2, var

and my assembler automatically map that 1 insn into 2 insns

movi  r2, hi16(var)
ori  r2, lo16(var)

because my ISA has no 32 bit immediate bit field.
in other words, i want my assembler can support 'macro' insn.
how can i do it?


3)

i saw '.set noreorder' in gcc output with -S option when delay slot is enabled
it means that assembler can reorder the insns, right?
if i want to reorder some insns according to certain rules,
because of the data dependencies,
how can i do it?


B. J. Kim



More information about the Binutils mailing list