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: Simulator: base_insn and insn in decode.c


I switched to the SID framework. I found it easier to create a new target. The disassemby works better as it calls this disassembler code in src/opcodes. But I'm still in trouble with decode.cxx. It looks the same as in sim. I'n my opinion the entire_insn should alwasy be left aligned and not right_aligned as it is now. Base_insn should have the same alignment. I think this way it is easier to support variable sized instructions.

Best Regards
Ronald

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.

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.

Dave



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