This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

binutils port to a new 16bit little endian uC


Hello,

I?m trying to port binutils (2.17) to a new architecture using CGEN.
The new architecture is a 16-bit uC. The instructions are therefore 16 bit
wide, possibly followed by a 8bit or 16 bit immediate value for the 2 word
instructions.

Everything is ok in big endian, but when I try to compile the binutils to
target a little endian uC, the two 16-bit instruction words are interpreted
as a 32 bit world. It results in inverting the two 16 bits words of the
instructions when encoding in the object file.

To sum up, a two word ?instruction in big endian that would be AB CD in the
file, should be in little endian BA DC, but I have DC BA?

Here is my cpu and isa definitions
(define-isa
  (name FOO)                        ; isa name
  (default-insn-bitsize 16)         ; instruction size
  (base-insn-bitsize 16)            ; minimum instruction size
  (default-insn-word-bitsize 16)    ; default instruction word size
)

(define-cpu
    (name FOObf)          
    (comment "FOO 16 Bit Processor Family")
    (endian little)       
    (word-bitsize 16)     
    ;(insn-chunk-bitsize 16)
)

I tried to add "insn-chunk-bitsize 16" but FOO-as returns "aborted" when I
try to compile asm files.
Any hint ??

Thanks,
Aurélien



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]