arch: Build the operand REs in the isa_parser on demand.
authorGabe Black <gabeblack@google.com>
Mon, 28 Sep 2020 08:12:14 +0000 (01:12 -0700)
committerGabe Black <gabeblack@google.com>
Fri, 9 Oct 2020 04:32:00 +0000 (04:32 +0000)
commitaf7eddaad1f07f10f5c078fd3dccb1260816d6e9
tree3290b4f98b78308bbaab85fe8992ace690ab9b49
parentfa232e2e0edb4c72d8fb9a1dc13f8031724184bc
arch: Build the operand REs in the isa_parser on demand.

These regular expressions search code snippets to find places where
operands are used. Rather than build them explicitly at the end of
processing the operands{{}} construct, wait until they're first going to
be used. That way, we'll be able to define operands in as many places as
we want, as long as we've done all we're going to do before the first
instructions are defined.

This will pave the way to defining operands in regular python in let
blocks, and then possibly outside of the parser altogether, perhaps into
scons where having lots of output files for individual instructions will
be easier to manage. For now, this just lets you define multiple
operands blocks which is not all that exciting on its own :)

Change-Id: I1179092316c1c0ac2613810bfd236a32235502fb
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/35237
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Richard Cooper <richard.cooper@arm.com>
Reviewed-by: Steve Reinhardt <stever@gmail.com>
Maintainer: Gabe Black <gabeblack@google.com>
Tested-by: kokoro <noreply+kokoro@google.com>
src/arch/isa_parser.py