summaryrefslogtreecommitdiff
path: root/src/mem/slicc/ast/MemberExprAST.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/mem/slicc/ast/MemberExprAST.py')
-rw-r--r--src/mem/slicc/ast/MemberExprAST.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/mem/slicc/ast/MemberExprAST.py b/src/mem/slicc/ast/MemberExprAST.py
index 8f6b4a55c..a13205252 100644
--- a/src/mem/slicc/ast/MemberExprAST.py
+++ b/src/mem/slicc/ast/MemberExprAST.py
@@ -40,7 +40,12 @@ class MemberExprAST(ExprAST):
def generate(self, code):
return_type, gcode = self.expr_ast.inline(True)
fix = code.nofix()
- code("($gcode).m_${{self.field}}")
+
+ if str(return_type) == "TBE" or ("interface" in return_type and return_type["interface"] == "AbstractCacheEntry"):
+ code("(*$gcode).m_${{self.field}}")
+ else:
+ code("($gcode).m_${{self.field}}")
+
code.fix(fix)
# Verify that this is a valid field name for this type