This is the mail archive of the cgen@sourceware.org mailing list for the CGEN 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]

Re: cgen -> opcodes problem


Dmitry Eremin-Solenikov wrote:
On Wed, Feb 24, 2010 at 7:49 PM, Doug Evans <dje@sebabeach.org> wrote:
Dmitry Eremin-Solenikov wrote:
Hello all,

Trying to continue this topic after a while.

Doug Evans wrote:


Dmitry Eremin-Solenikov wrote:

Hello all,

I'm back to my m68hc08 binutils port done via cgen. Recently I've again
stumbled upon a problem with instructions, whose base? length != ISA
base length.

E.g. in the attached stripped test case, the 'ttt' instruction either
(should be assembled as 0x9E 0xF1) is misencoded as 0xsmth 0x00. Is
this my fault? Or is this the expected behaviour and I should define
f-seccode in some other way?

Could you please help me?



Hi.  cgen currently doesn't handle instructions with opcode bits beyond
the base insn size very well.  I have a sandbox with this fixed, but
it'll be awhile (month or more?) before it all gets checked in.

What is the current status of your sandbox? Do you have any patches
available?
Or any intermediate work? Can I/we do something to help you to clean this
up?

I'm currently trying to dig into ifmt-mask stuff, but it takes time...


In the meantime, setting base-insn-bitsize to 16 may work.  [It *should*
work, but there may be attributes of your port I haven't taken into
account.]

Setting base-insn-bitsize to 16 break disassembler: it starts looking for
16-bit masks instead of 8-bit for each and every instruction, and this
doesn't
seem to work for lsb0 = #f port.


Hi. It's very slow going, mostly because this isn't my day job. Sigh.

It's easier to work with specific bugs though. Can you send me your port to
try? Complete sources for building binutils would be best (either as a
collection of patches or as a tarball I can ftp or some such).

The port is maintained as a git tree at git://m68hc08-utils.git.sourceforge.net/gitroot/m68hc08-utils/m68hc08-utils

You can browse code at
http://m68hc08-utils.git.sourceforge.net/git/gitweb.cgi?p=m68hc08-utils/m68hc08-utils;a=summary

If you'd prefer I can create a simple (2-3 insns) cut of the port,
demonstrating the problem.


Hi. I've got a toolchain built and can run the gas testsuite. Are these failures expected? [just want to establish a baseline]

Running /misc/dje/gnu/m68hc08/myrepo/gas/testsuite/gas/m68k/all.exp ...
FAIL: cross-section branch
FAIL: PIC generation
FAIL: Incorrect Displacement too long error
FAIL: operands
FAIL: cas
FAIL: bitfield
FAIL: link
FAIL: fmoveml
FAIL: mcf-mov3q
FAIL: mcf-movsr
FAIL: mode5
FAIL: mcf-mac
FAIL: mcf-emac
FAIL: gas/m68k/mcf-coproc
FAIL: gas/m68k/mcf-fpu
FAIL: mcf-trap
FAIL: mcf-wdebug
FAIL: cpu32
FAIL: br-isaa.d
FAIL: br-isab.d
FAIL: br-isac.d
FAIL: ctrl-1.d
FAIL: ctrl-2.d
FAIL: 68000 operands


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