Irmen de Jong
|
61fe55168a
|
Merge branch 'master' into structs
# Conflicts:
# codeGenIntermediate/src/prog8/codegen/intermediate/AssignmentGen.kt
# codeGenIntermediate/src/prog8/codegen/intermediate/ExpressionGen.kt
# examples/test.p8
|
2025-05-20 22:35:04 +02:00 |
|
Irmen de Jong
|
25d7f8808f
|
IR: added signed multiplication opcodes
|
2025-05-20 21:36:05 +02:00 |
|
Irmen de Jong
|
1c4999ec87
|
adding ptr unit tests
|
2025-05-20 20:57:05 +02:00 |
|
Irmen de Jong
|
c726d3f937
|
fix ptr errors
|
2025-05-19 22:49:07 +02:00 |
|
Irmen de Jong
|
f0b791452e
|
fix many ptr deref errors
|
2025-05-19 01:33:57 +02:00 |
|
Irmen de Jong
|
adf5600a9b
|
simplify
|
2025-05-18 18:37:19 +02:00 |
|
Irmen de Jong
|
770ebdcd4a
|
party fix weird errors for ptr indexed assignment
|
2025-05-17 20:54:02 +02:00 |
|
Irmen de Jong
|
bb1953267d
|
Merge branch 'master' into structs
# Conflicts:
# examples/test.p8
|
2025-05-15 23:09:30 +02:00 |
|
Irmen de Jong
|
6a33be3fd8
|
IR: allow returning boolean in Pc/Pv cpu status register (Pz and Pn are not yet possible)
|
2025-05-15 22:56:45 +02:00 |
|
Irmen de Jong
|
9b36ae2277
|
implement inplace boolean short-circuit operators on pointer dereferenced booleans
|
2025-05-14 21:29:50 +02:00 |
|
Irmen de Jong
|
913ab03963
|
get rid of invalid ARRAY_STRUCT data type (arrays of struct instance are not yet supported)
|
2025-05-14 20:43:00 +02:00 |
|
Irmen de Jong
|
38448e471c
|
Merge branch 'master' into structs
# Conflicts:
# codeGenCpu6502/src/prog8/codegen/cpu6502/ForLoopsAsmGen.kt
# codeGenIntermediate/src/prog8/codegen/intermediate/IRCodeGen.kt
# examples/test.p8
|
2025-05-13 23:42:13 +02:00 |
|
Irmen de Jong
|
e31ef6f06f
|
IR: fix temp register type in for x in array
|
2025-05-13 22:23:04 +02:00 |
|
Irmen de Jong
|
ba93966474
|
optimize codegen: shortcut redundant jumps in when statement
|
2025-05-13 00:35:22 +02:00 |
|
Irmen de Jong
|
924e28e9b3
|
Merge branch 'master' into structs
# Conflicts:
# codeGenCpu6502/src/prog8/codegen/cpu6502/AsmGen.kt
# compiler/src/prog8/compiler/astprocessing/CodeDesugarer.kt
# compiler/src/prog8/compiler/astprocessing/SimplifiedAstMaker.kt
# compilerAst/src/prog8/ast/AstToSourceTextConverter.kt
# compilerAst/src/prog8/ast/antlr/Antlr2Kotlin.kt
# compilerAst/src/prog8/ast/walk/AstWalker.kt
# compilerAst/src/prog8/ast/walk/IAstVisitor.kt
# docs/source/todo.rst
# examples/test.p8
# parser/src/main/antlr/Prog8ANTLR.g4
|
2025-05-11 23:23:06 +02:00 |
|
Irmen de Jong
|
31c1bf8bc5
|
added on..goto/call statement
|
2025-05-11 21:37:44 +02:00 |
|
Irmen de Jong
|
59c378089e
|
fix some struct type and symbol lookup errors
|
2025-05-11 00:52:35 +02:00 |
|
Irmen de Jong
|
0b789b5f0b
|
added most inplace operators for pointer deref
|
2025-05-10 20:58:01 +02:00 |
|
Irmen de Jong
|
4382b96a9a
|
tweaking pointer deref in IR
|
2025-05-10 19:52:06 +02:00 |
|
Irmen de Jong
|
246e4f35a6
|
Merge branch 'master' into structs
# Conflicts:
# codeGenCpu6502/src/prog8/codegen/cpu6502/assignment/AssignmentAsmGen.kt
# codeGenIntermediate/src/prog8/codegen/intermediate/ExpressionGen.kt
# compiler/test/ast/TestConst.kt
# docs/source/todo.rst
# examples/test.p8
|
2025-05-10 16:36:16 +02:00 |
|
Irmen de Jong
|
99b9370178
|
fix various bugs around word-indexing combined with address-of: &buffer[2000]
|
2025-05-10 16:22:05 +02:00 |
|
Irmen de Jong
|
506062c6b6
|
start implementing ptr deref augmented assigns
|
2025-05-09 23:05:27 +02:00 |
|
Irmen de Jong
|
5de626aab8
|
support comparison operators on pointers
|
2025-05-06 22:26:27 +02:00 |
|
Irmen de Jong
|
701f155951
|
Merge branch 'master' into structs
# Conflicts:
# codeGenCpu6502/src/prog8/codegen/cpu6502/ProgramAndVarsGen.kt
# compiler/test/TestSymbolTable.kt
# docs/source/todo.rst
# examples/test.p8
# intermediate/src/prog8/intermediate/IRFileReader.kt
# intermediate/src/prog8/intermediate/IRFileWriter.kt
# intermediate/src/prog8/intermediate/IRSymbolTable.kt
# simpleAst/src/prog8/code/SymbolTable.kt
# simpleAst/src/prog8/code/SymbolTableMaker.kt
# virtualmachine/src/prog8/vm/VmProgramLoader.kt
|
2025-05-06 17:59:36 +02:00 |
|
Irmen de Jong
|
522958e0e9
|
@dirty variables now actually end up in the uninitialized BSS_NOCLEAR section
|
2025-05-06 01:41:34 +02:00 |
|
Irmen de Jong
|
779ebc0537
|
pointer arithmetic for '+'
|
2025-05-05 18:09:19 +02:00 |
|
Irmen de Jong
|
38949b82c3
|
type check tuning
|
2025-05-05 15:41:32 +02:00 |
|
Irmen de Jong
|
d11386ef26
|
type check tuning
|
2025-05-04 23:23:21 +02:00 |
|
Irmen de Jong
|
0e0377d1f0
|
IR/VM implemented struct allocations and initialization
|
2025-05-04 14:04:44 +02:00 |
|
Irmen de Jong
|
55e0dbab27
|
preparing for statically allocating struct instances
|
2025-05-03 23:44:29 +02:00 |
|
Irmen de Jong
|
1ba5587404
|
allow syntax for declaring variables with struct instance type
|
2025-05-03 16:14:22 +02:00 |
|
Irmen de Jong
|
dbd955b61e
|
tweak typecheck and better code for constant indexes in pointer derefs
|
2025-05-02 23:44:26 +02:00 |
|
Irmen de Jong
|
e0dea89477
|
added support for ptr[x].field
|
2025-05-02 22:16:20 +02:00 |
|
Irmen de Jong
|
6fc2902895
|
fixing ptr traversal typecheck issues
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
2661d3c489
|
allow array syntax on pointers
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
40952a788a
|
PtSub: params and returns now as children (in PtSignature node) for easier Ast walking
PtPointerDeref: same but for its start identifier
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
0162e7a0c1
|
fix the scoping problems on subtypes
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
6ce099f176
|
IR: fix ptr type checks and struct field assignment errors
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
476a4bac8e
|
IR: LOADI allows r1 and r2 to be the same for pointer chain dereference optimalization
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
63a410a6df
|
implicit cast to bool for numeric or pointers as condition arguments (to if, while, until)
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
cca27faa3b
|
fix pointer value assignment (not dereferencing the actual pointer)
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
803e6bd81a
|
fix uword vs pointer type errors and casts
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
b920d553a0
|
make address-of dereference work
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
2ae3bd68eb
|
more pointer dereferencing for chains
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
9c183f27eb
|
pointer dereferencing for chains
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
8046023e82
|
pointer dereferencing for simple types (read and write)
|
2025-05-02 00:41:42 +02:00 |
|
Irmen de Jong
|
e328520588
|
initial struct and typed pointer support
|
2025-05-02 00:41:40 +02:00 |
|
Irmen de Jong
|
98505d27b1
|
IR: fix invalid removal of label chunks and include asmsubs when looking for labels
|
2025-04-24 23:30:51 +02:00 |
|
Irmen de Jong
|
cd63a58ad9
|
IR: get rid of problematic PREPARECALL pseudo instruction
|
2025-04-24 22:32:40 +02:00 |
|
Irmen de Jong
|
170f8dd092
|
IR: new CALLFAR instructions to support callfar into another bank
|
2025-04-24 21:17:48 +02:00 |
|