Simulator: base_insn and insn in decode.c
Ronald Hecht
ronald.hecht@uni-rostock.de
Mon Aug 7 14:39:00 GMT 2006
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
More information about the Cgen
mailing list