Ronald Hecht | 7 Aug 2006 16:42
Picon

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

(Continue reading)


Gmane