From 3aad389174778120bb290095588bcbd7a9d6bdf0 Mon Sep 17 00:00:00 2001 From: Ryan Fleury Date: Wed, 17 Jun 2026 19:30:08 -0700 Subject: [PATCH] notes --- src/eval2/eval2.h | 1 + src/eval2/eval2.mdesk | 50 ++++++++++++++--------------- src/rdi_from_dwarf/rdi_from_dwarf.c | 7 ++++ 3 files changed, 33 insertions(+), 25 deletions(-) diff --git a/src/eval2/eval2.h b/src/eval2/eval2.h index f18d8f22..a9a7cd45 100644 --- a/src/eval2/eval2.h +++ b/src/eval2/eval2.h @@ -12,6 +12,7 @@ typedef enum E2_OpParseKind E2_OpParseKind_Null, E2_OpParseKind_UnaryPrefix, E2_OpParseKind_Binary, + E2_OpParseKind_UnaryPostfix, } E2_OpParseKind; diff --git a/src/eval2/eval2.mdesk b/src/eval2/eval2.mdesk index 5460530f..e40299a8 100644 --- a/src/eval2/eval2.mdesk +++ b/src/eval2/eval2.mdesk @@ -4,31 +4,31 @@ @table(name parse_kind precedence pre sep pos chain) E2_OpTable: { - {Deref UnaryPrefix 2 "*" "" "" ""} - {Address UnaryPrefix 2 "&" "" "" ""} - {Pos UnaryPrefix 2 "+" "" "" ""} - {Neg UnaryPrefix 2 "-" "" "" ""} - {LogNot UnaryPrefix 2 "!" "" "" ""} - {BitNot UnaryPrefix 2 "~" "" "" ""} - {Mul Binary 3 "" "*" "" ""} - {Div Binary 3 "" "/" "" ""} - {Mod Binary 3 "" "%" "" ""} - {Add Binary 4 "" "+" "" ""} - {Sub Binary 4 "" "-" "" ""} - {LShift Binary 5 "" "<<" "" ""} - {RShift Binary 5 "" ">>" "" ""} - {Less Binary 6 "" "<" "" ""} - {LtEq Binary 6 "" "<=" "" ""} - {Grtr Binary 6 "" ">" "" ""} - {GrEq Binary 6 "" ">=" "" ""} - {EqEq Binary 7 "" "==" "" ""} - {NtEq Binary 7 "" "!=" "" ""} - {BitAnd Binary 8 "" "&" "" ""} - {BitXor Binary 9 "" "^" "" ""} - {BitOr Binary 10 "" "|" "" ""} - {LogAnd Binary 11 "" "&&" "" ""} - {LogOr Binary 12 "" "||" "" ""} - {Define Binary 13 "" "=" "" ""} + {Deref UnaryPrefix 2 "*" "" "" ""} + {Address UnaryPrefix 2 "&" "" "" ""} + {Pos UnaryPrefix 2 "+" "" "" ""} + {Neg UnaryPrefix 2 "-" "" "" ""} + {LogNot UnaryPrefix 2 "!" "" "" ""} + {BitNot UnaryPrefix 2 "~" "" "" ""} + {Mul Binary 3 "" "*" "" ""} + {Div Binary 3 "" "/" "" ""} + {Mod Binary 3 "" "%" "" ""} + {Add Binary 4 "" "+" "" ""} + {Sub Binary 4 "" "-" "" ""} + {LShift Binary 5 "" "<<" "" ""} + {RShift Binary 5 "" ">>" "" ""} + {Less Binary 6 "" "<" "" ""} + {LtEq Binary 6 "" "<=" "" ""} + {Grtr Binary 6 "" ">" "" ""} + {GrEq Binary 6 "" ">=" "" ""} + {EqEq Binary 7 "" "==" "" ""} + {NtEq Binary 7 "" "!=" "" ""} + {BitAnd Binary 8 "" "&" "" ""} + {BitXor Binary 9 "" "^" "" ""} + {BitOr Binary 10 "" "|" "" ""} + {LogAnd Binary 11 "" "&&" "" ""} + {LogOr Binary 12 "" "||" "" ""} + {Define Binary 13 "" "=" "" ""} } @enum E2_OpKind: diff --git a/src/rdi_from_dwarf/rdi_from_dwarf.c b/src/rdi_from_dwarf/rdi_from_dwarf.c index 549258ef..f0a3a07a 100644 --- a/src/rdi_from_dwarf/rdi_from_dwarf.c +++ b/src/rdi_from_dwarf/rdi_from_dwarf.c @@ -3762,6 +3762,13 @@ d2r_convert(Arena *arena, D2R_ConvertParams *params) } } + //- TODO(rjf): Try to statically evaluate the expression here if possible + // (or maybe intermixed above? investigate...), to reduce to simpler bytecode + // forms - reduce pressure on pattern matching + { + // TODO(rjf) + } + //- rjf: apply RDI byte offsets to jump ops { // TODO(rjf): apply RDI byte offsets to jump ops