This is the mail archive of the
cgen@sourceware.org
mailing list for the CGEN project.
Re: Simulator: base_insn and insn in decode.c
Dave Brolley wrote:
I forgot to address your other question which was about the difficulty
of setting entire_insn before decoding. It's a bit of a chicken and
egg situation isnt'y it? You can't set entire insn properly until you
know something about the insn, but you can't call decode without
setting entire_insn properly.
I agree, that's always the case.
Your method of calling decode twice won't work because of this.
Most existing ports determine the insn length by looking at a few bits
in base_insn and use this information to fill entire_insn.
I'm wondering if the decoder shouldn't be redesigned so that all it
takes is base_insn, which should be all that is necessary to identify
the insn. The extractors for each format would then read any
additional bytes as needed. There is already support for this for ISAs
with insns which are longer than an insn word.
That sounds good. Actually, I'm wondering a bit why the disassembler in
src/opcodes works so great and the simulator port only under certain
circumstances. Anyway. CGEN is great stuff. It helps a lot. Whould you
say that SID is a better choice? Does it work with gdb as SIM does?
Ronald