From 5ad139375ee65782e4c71212af526bc3d339348d Mon Sep 17 00:00:00 2001 From: Nathan Binkert Date: Fri, 26 Feb 2010 18:14:48 -0800 Subject: [PATCH] isa_parser: move more stuff into the ISAParser class --- src/arch/isa_parser.py | 22 +++++++++------------- 1 file changed, 9 insertions(+), 13 deletions(-) diff --git a/src/arch/isa_parser.py b/src/arch/isa_parser.py index d39dca5d8..96fa4ea3c 100755 --- a/src/arch/isa_parser.py +++ b/src/arch/isa_parser.py @@ -893,9 +893,6 @@ def buildOperandNameMap(user_dict, lineno): global operandsWithExtRE operandsWithExtRE = re.compile(operandsWithExtREString, re.MULTILINE) -maxInstSrcRegs = 0 -maxInstDestRegs = 0 - class OperandList(object): '''Find all the operands in the given code block. Returns an operand descriptor list (instance of class OperandList).''' @@ -957,12 +954,10 @@ class OperandList(object): if self.memOperand: error("Code block has more than one memory operand.") self.memOperand = op_desc - global maxInstSrcRegs - global maxInstDestRegs - if maxInstSrcRegs < self.numSrcRegs: - maxInstSrcRegs = self.numSrcRegs - if maxInstDestRegs < self.numDestRegs: - maxInstDestRegs = self.numDestRegs + if parser.maxInstSrcRegs < self.numSrcRegs: + parser.maxInstSrcRegs = self.numSrcRegs + if parser.maxInstDestRegs < self.numDestRegs: + parser.maxInstDestRegs = self.numDestRegs # now make a final pass to finalize op_desc fields that may depend # on the register enumeration for op_desc in self.items: @@ -1237,6 +1232,9 @@ class ISAParser(Grammar): self.exportContext = {} + self.maxInstSrcRegs = 0 + self.maxInstDestRegs = 0 + ##################################################################### # # Lexer @@ -2049,10 +2047,8 @@ StaticInstPtr # The variable names here are hacky, but this will creat local # variables which will be referenced in vars() which have the # value of the globals. - global maxInstSrcRegs - MaxInstSrcRegs = maxInstSrcRegs - global maxInstDestRegs - MaxInstDestRegs = maxInstDestRegs + MaxInstSrcRegs = self.maxInstSrcRegs + MaxInstDestRegs = self.maxInstDestRegs # max_inst_regs.hh self.update_if_needed('max_inst_regs.hh', max_inst_regs_template % vars()) -- 2.30.2