Simulator: base_insn and insn in decode.c
Dave Brolley
brolley@redhat.com
Mon Aug 14 20:34:00 GMT 2006
I've been on vacation....
Ronald Hecht wrote:
>> The test around the goto is intended to make sure that the untested
>> base_insn bits are as expected. It needs to be there, otherwise,
>> invalid insns get recognized as valid ones. However, it would seem
>> that the test should be against base_insn and not against
>> entire_insn. I'll have a look at some other cgen simulators,
>> including those which use SID to make sure that this assertion holds
>> water. It probably hasn't come up until now, since most sims I have
>> seen are able to pass the same value for base_insn and entire_insn.
>>
>> Dave
>>
>
>
> I agreee. The test should be against base_insn. But then it still
> seems to be double-checking against the same, or not?
No it's not a redundant test. The decoder only tests enough bits in the
switch to uniquely separate the valid insns. There may be invalid bit
patterns (i.e. unused opcodes) that still match. The secondary test
makes sure that *all* of the opcode bits in the insn are tested.
Dave
More information about the Cgen
mailing list