Irmen de Jong
|
79419a98d0
|
add if-expression versions for the conditionals if_cc, if_cs, if_vc etc
|
2025-09-11 01:57:30 +02:00 |
|
Irmen de Jong
|
c6854e22a3
|
fix wrong operand order for in place pointer subtraction
|
2025-09-10 17:19:03 +02:00 |
|
Irmen de Jong
|
83acc2f285
|
fix pointer variable overwriting when used in expression
|
2025-09-10 16:40:45 +02:00 |
|
Irmen de Jong
|
82839a2d82
|
fix alias error and byte to word assignment error
|
2025-09-09 15:05:02 +02:00 |
|
Irmen de Jong
|
ced4c5944a
|
fix broken optimization for wordvar - value expressions
|
2025-09-09 08:05:51 +02:00 |
|
Irmen de Jong
|
0b9384b556
|
fix typecasted byte-to-word pointer assignment, some more asm optimizations
|
2025-09-09 05:56:55 +02:00 |
|
Irmen de Jong
|
8022c0772a
|
oops
|
2025-09-05 20:37:19 +02:00 |
|
Irmen de Jong
|
8ad2b4638b
|
fix and optimize nodes[i].field (it could clobber the actual temporary pointer value in a scratch register)
|
2025-09-05 20:02:37 +02:00 |
|
Irmen de Jong
|
beb28b061d
|
fix non-struct pointer deref code bug
fix gradle 9 compatibility issue (fixes #175)
|
2025-09-04 21:30:20 +02:00 |
|
Irmen de Jong
|
783b111059
|
pointer to uword casts should not be removed
optimized addUnsignedByteOrWordToAY a tiny bit (but needs more)
|
2025-09-03 23:09:11 +02:00 |
|
Irmen de Jong
|
fb286f8b54
|
optimize operatorDereference() to not always use a zp scratch pointer
|
2025-09-03 20:30:10 +02:00 |
|
Irmen de Jong
|
5999110e3f
|
avoid using temporary pointer to access struct fields if a simple Y indexed cpu instruction can be used
|
2025-09-03 18:37:56 +02:00 |
|
Irmen de Jong
|
28df08eea8
|
introduce P8ZP_SCRATCH_PTR temporary zp pointer to avoid clobbering W1,W2
|
2025-09-01 23:56:31 +02:00 |
|
Irmen de Jong
|
79505308ba
|
optimize indexed pointer code a bit more
|
2025-09-01 22:18:17 +02:00 |
|
Irmen de Jong
|
a7e9d8e14b
|
fix struct field offset calculations
|
2025-09-01 18:57:02 +02:00 |
|
Irmen de Jong
|
08f3abe5bf
|
prefer to put pointer variables into zeropage (add implicit @zp)
|
2025-08-31 17:06:14 +02:00 |
|
Irmen de Jong
|
a9142b9ce5
|
slightly optimize certain pointer indexing calculation, fix invalid deref optimization
|
2025-08-31 13:40:28 +02:00 |
|
Irmen de Jong
|
13e6f64d3b
|
implement missing struct pointer indexing codegen
|
2025-08-31 12:20:38 +02:00 |
|
Irmen de Jong
|
4a1256c772
|
optimizing some pointer codegen for indexed derefs
|
2025-08-30 21:20:14 +02:00 |
|
Irmen de Jong
|
ff9bec90ec
|
fix struct pointer array indexing field dereferencing
the pointers/sorting example now actually works on the 6502 too
|
2025-08-30 12:24:30 +02:00 |
|
Irmen de Jong
|
a6fee1e510
|
fixing deref()
|
2025-08-30 07:04:01 +02:00 |
|
Irmen de Jong
|
aee53b14c7
|
avoid costly multiplications to get indexed pointer address
|
2025-08-29 20:18:26 +02:00 |
|
Irmen de Jong
|
221a093e5f
|
optimize some pointer arithmetic, fix pointer arithmetic for ptr-value
|
2025-08-28 23:08:06 +02:00 |
|
Irmen de Jong
|
0285a4cce1
|
avoid needless pointer arithmetic multiplication by struct size 1
|
2025-08-27 21:50:09 +02:00 |
|
Irmen de Jong
|
5a3aa1bd25
|
optimized IR to return a constant value: use RETURNI
|
2025-08-26 22:54:11 +02:00 |
|
Irmen de Jong
|
0f79351de9
|
support word size indexing on typed pointers
|
2025-08-25 22:58:48 +02:00 |
|
Irmen de Jong
|
8e53c83844
|
optimize certain ptr+value expression on 6502
|
2025-08-24 05:46:49 +02:00 |
|
Irmen de Jong
|
8db0344cee
|
Merge branch 'master' into structs6502
# Conflicts:
# codeGenCpu6502/src/prog8/codegen/cpu6502/assignment/AssignmentAsmGen.kt
|
2025-08-19 23:10:15 +02:00 |
|
Irmen de Jong
|
32e531f951
|
test
|
2025-08-19 23:09:33 +02:00 |
|
Irmen de Jong
|
cf19fb8df1
|
fix 6502 struct type and field name prefixing and datatype references to stale structs from stale Symboltable
|
2025-08-19 20:47:37 +02:00 |
|
Irmen de Jong
|
79b8bb5c9f
|
Merge branch 'master' into structs6502
|
2025-08-19 01:12:50 +02:00 |
|
Irmen de Jong
|
fc5889ec0b
|
kotlin 2.2.10, kotest
|
2025-08-19 01:04:24 +02:00 |
|
Irmen de Jong
|
369303c46d
|
fix register clobbering in pointer deref
|
2025-08-18 23:36:35 +02:00 |
|
Irmen de Jong
|
d65670cc7b
|
fix 6502 address-of for array-indexed pointers (pointer arithmetic)
|
2025-08-18 20:24:39 +02:00 |
|
Irmen de Jong
|
f74eeaee0f
|
fix IR address-of for array-indexed pointers (pointer arithmetic)
|
2025-08-18 03:24:32 +02:00 |
|
Irmen de Jong
|
826fb3e9c2
|
implemented assign indexed ptr byte
|
2025-08-17 13:21:31 +02:00 |
|
Irmen de Jong
|
0cc36ed6e4
|
pointer TODO's all as stub methods in the PointerAssignmentsGen class
|
2025-08-16 16:21:06 +02:00 |
|
Irmen de Jong
|
4a8d5def84
|
code cleanups, pointer TODOs, docs dark mode
|
2025-08-16 11:25:18 +02:00 |
|
Irmen de Jong
|
2f60716082
|
6502 struct allocation to asm file, struct name and field prefixing (maybe unneeded...)
|
2025-08-16 01:49:22 +02:00 |
|
Irmen de Jong
|
729efb04e1
|
fix code size regressions
|
2025-08-14 23:59:59 +02:00 |
|
Irmen de Jong
|
e800c165f9
|
fix 6502 inplace pointer variable assignment
|
2025-08-14 20:38:18 +02:00 |
|
Irmen de Jong
|
fd9bd23449
|
6502 statementreorderer: str -> ^^ubyte
|
2025-08-13 18:45:29 +02:00 |
|
Irmen de Jong
|
8880ed1393
|
fix address-of struct fields
|
2025-08-08 23:08:47 +02:00 |
|
Irmen de Jong
|
f7fde070ca
|
fix boolean pointer condition in if expression
|
2025-08-08 22:15:58 +02:00 |
|
Irmen de Jong
|
5ada80779d
|
Merge branch 'refs/heads/master' into structs6502
# Conflicts:
# examples/test.p8
|
2025-08-07 21:25:07 +02:00 |
|
Irmen de Jong
|
8972235a0e
|
fix missing peekbool() and pokebool() code gen
|
2025-08-07 21:22:48 +02:00 |
|
Irmen de Jong
|
e56f533e38
|
more basic pointer inplace operations
|
2025-08-07 00:36:47 +02:00 |
|
Irmen de Jong
|
324fb7dbf7
|
more basic pointer inplace operations (float)
basic pointers unit test now passes
|
2025-08-06 22:26:23 +02:00 |
|
Irmen de Jong
|
44285b9b5d
|
more basic pointer inplace operations
|
2025-08-06 00:32:15 +02:00 |
|
Irmen de Jong
|
a68f477d61
|
Merge branch 'master' into structs6502
# Conflicts:
# docs/source/todo.rst
# examples/test.p8
|
2025-08-05 23:29:58 +02:00 |
|