Hello,
I want to make some modifications to the Address-typed variables in
MOESI_CMP_token_dir.sm, so I added a member function to
'Class Address' in Address.hh/cc files, noted as 'int testFunc()'.
However, when the SLICC anaylize the .sm file, it threw an
error that Address doesn't have a method called testFunc.
Then I tried to add the structure for Address into
MOESI_CMP_token_dir.sm in two methods, but
neither works, as listed below:
I. According to the description in slicc/doc/SLICC_V02.txt
structure(Address, "Address", desc="xxx"){
int testFunc();
}
Error:
Exception: MOESI_CMP_token-dir.sm:173: Error: Invalid
method call: Type 'DirectoryMemory' does not have a method
lookup, 'lookup_Directory_Address' nor '':
It seems that the Address is overrided in DirectoryMemory
as Directory_Address, so I tried the way similar to 'structure
TBETable'
II. Add structure Address as 'external' like TBETable
structure(Address, external="yes"){
int testFunc();
}
Error:
KeyError: 'interface':
# part of error info.:
File "/home/hanxing/Projects/grave/gem5-stable/build/ALPHA_SE/
mem/protocol/SConscript", line 70:
slicc.process()
File "gem5-stable/src/mem/slicc/parser.py", line 65:
self.decl_list.generate()
File "gem5-stable/src/mem/slicc/ast/DeclListAST.py", line 52:
decl.generate()
File "gem5-stable/src/mem/slicc/ast/MachineAST.py", line 68:
self.decls.generate()
File "gem5-stable/src/mem/slicc/ast/DeclListAST.py", line 52:
decl.generate()
File "gem5-stable/src/mem/slicc/ast/FuncDeclAST.py", line 69:
rtype = self.statements.generate(body, return_type)
File "gem5-stable/src/mem/slicc/ast/StatementListAST.py", line 42:
statement.generate(code, return_type)
File "gem5-stable/src/mem/slicc/ast/ReturnStatementAST.py", line
40:
actual_type, ecode = self.expr_ast.inline(True)
File "gem5-stable/src/mem/slicc/ast/ExprAST.py", line 39:
return_type = self.generate(code)
File "gem5-stable/src/mem/slicc/ast/StaticCastAST.py", line 41:
actual_type, ecode = self.expr_ast.inline(True)
File "gem5-stable/src/mem/slicc/ast/ExprAST.py", line 39:
return_type = self.generate(code)
File "gem5-stable/src/mem/slicc/ast/MethodCallExprAST.py", line
70:
str(actual_type["interface"]) != str(expected_type):
File "gem5-stable/src/mem/slicc/util.py", line 40:
return self.pairs[item]
Could anyone help me on solving this problem? Is there
anything i missed while modifying the code?
Thanks a lot!
_______________________________________________
gem5-users mailing list
[email protected]
http://m5sim.org/cgi-bin/mailman/listinfo/gem5-users