Irmen de Jong
|
c2d151920d
|
new docs about register allocation
|
2026-08-07 17:43:46 +02:00 |
|
Irmen de Jong
|
e007d127f0
|
IR: smarter handling of x<<16 and x>>16 if x is a long
|
2026-08-05 02:01:21 +02:00 |
|
Irmen de Jong
|
e5d9609db1
|
IR: added new multi-bit shifting opcodes
|
2026-08-05 01:42:49 +02:00 |
|
Irmen de Jong
|
051f3809cd
|
IR: improved add/sub of small const values
|
2026-08-05 00:10:09 +02:00 |
|
Irmen de Jong
|
b5fd07bb91
|
IR: added STOREIM instruction for immediate store constant to memory
|
2026-08-04 23:11:07 +02:00 |
|
Irmen de Jong
|
4097d51514
|
IR: more efficient code for comparisons against constants
|
2026-08-04 22:28:59 +02:00 |
|
Irmen de Jong
|
b8cded4373
|
revert back to fast (but slightly inaccurate) signed bitshifting for division optimization
|
2026-08-04 19:41:14 +02:00 |
|
Irmen de Jong
|
42e8e91034
|
disable signed div bias-shift method because of code bloat
|
2026-08-04 18:38:35 +02:00 |
|
Irmen de Jong
|
af80ec6502
|
fix invalid optimization of signed division into a shift (wrong rounding result) - IR codegen
|
2026-08-04 17:42:12 +02:00 |
|
Irmen de Jong
|
16901212d4
|
m68k: fix divmod() and lmh() call convention
|
2026-08-04 13:40:30 +02:00 |
|
Irmen de Jong
|
49f5c30e8c
|
6502: better error message for missing signed divmod support
|
2026-08-04 13:09:06 +02:00 |
|
Irmen de Jong
|
bef1678c2a
|
IR: divmod no longer uses stack to return the quotient and remainer
|
2026-08-04 12:46:36 +02:00 |
|
Irmen de Jong
|
c64fdcffa8
|
IR: fix register type error for power of 2 multiplies as shifts
|
2026-08-04 00:05:13 +02:00 |
|
Irmen de Jong
|
01c82f92eb
|
Merge branch 'refs/heads/master' into new-codegens
# Conflicts:
# examples/test.p8
# intermediate/src/prog8/intermediate/IRInstructions.kt
|
2026-08-03 19:36:25 +02:00 |
|
Irmen de Jong
|
13e032e1a3
|
add new IR instructions ADDIM and SUBIM
|
2026-08-03 19:31:57 +02:00 |
|
Irmen de Jong
|
bf0733f8b3
|
amiga LVOs (extsub library callfars) are now represented by their familiar negative decimal offset number instead of a hex unsigned long.
Actual JSR to the library LVO uses the symbolic name if possible to create code that is easier to debug
|
2026-07-16 21:42:04 +02:00 |
|
Irmen de Jong
|
b0cf649c2d
|
register packer does't work well
|
2026-07-16 20:33:27 +02:00 |
|
Irmen de Jong
|
c43cacdc2f
|
added a IR RegisterPacking optimization step that reduces the number of registers through reuse of register slots
|
2026-07-15 22:39:19 +02:00 |
|
Irmen de Jong
|
4506a3cb3e
|
pass compilation target to more places to be able to determine correct types
|
2026-07-12 03:52:57 +02:00 |
|
Irmen de Jong
|
dafb0906c3
|
fix some m68k pointer/uword stuff
|
2026-07-11 21:13:21 +02:00 |
|
Irmen de Jong
|
cf6efd76f0
|
making sure memory() is long on m68k
|
2026-07-10 04:51:54 +02:00 |
|
Irmen de Jong
|
8a7922ffcc
|
fix split words arrays on m68k to be not split
|
2026-07-10 01:47:18 +02:00 |
|
Irmen de Jong
|
cb57bea862
|
fix inline asmsub handling, more optimized strings and sys routines
|
2026-07-09 03:25:30 +02:00 |
|
Irmen de Jong
|
bd4184252f
|
add sys.MAX_LONG and sys.MIN_LONG for m68k
|
2026-07-07 05:02:47 +02:00 |
|
Irmen de Jong
|
e6a267bd3f
|
fix 32 bits address-of
|
2026-07-07 04:27:47 +02:00 |
|
Irmen de Jong
|
1f4ffdffc1
|
fix IR constant prefixing/no prefixing
|
2026-07-07 01:45:55 +02:00 |
|
Irmen de Jong
|
7f51bbd777
|
working on encoding support for variable sized pointers in the IR
|
2026-07-07 00:06:28 +02:00 |
|
Irmen de Jong
|
5c36e21948
|
working on fixing pointer arithmethic
but see transformWithPointerArithmetic() still unfinished
|
2026-07-06 02:20:32 +02:00 |
|
Irmen de Jong
|
57055b3b55
|
map m68k cpu registers to and from slots
|
2026-07-05 16:25:20 +02:00 |
|
Irmen de Jong
|
11e3b39486
|
m68k (incomplete) attempt to fix 32 bits pointers
|
2026-07-05 06:31:24 +02:00 |
|
Irmen de Jong
|
1c50e397de
|
m68k registers
|
2026-07-05 03:41:59 +02:00 |
|
Irmen de Jong
|
99ead2c74c
|
m68k
|
2026-07-04 23:18:03 +02:00 |
|
Irmen de Jong
|
36238267d0
|
reuse AssemblyProgram6502 in newcodegen for 6502
|
2026-07-02 01:36:25 +02:00 |
|
Irmen de Jong
|
52fe2f2c0d
|
adjust compilation options etc for the newCodegen flag
|
2026-07-02 01:21:18 +02:00 |
|
Irmen de Jong
|
4bf0eba2f8
|
Merge branch 'master' into new-codegens
# Conflicts:
# .idea/compiler.xml
# codeCore/src/prog8/code/core/CompilationOptions.kt
# codeGenIntermediate/test/TestVmCodeGen.kt
# codeGenNew6502/src/prog8/codegen/new6502/New6502CodeGenerator.kt
# compiler/src/prog8/CompilerMain.kt
# compiler/src/prog8/compiler/Compiler.kt
# compiler/src/prog8/compiler/CompilerDaemon.kt
# compiler/test/TestCompilerOnExamples.kt
# compiler/test/helpers/compileXyz.kt
# scripts/clean.sh
# settings.gradle
|
2026-07-02 01:14:55 +02:00 |
|
Irmen de Jong
|
5130a74754
|
removed expericodegen
|
2026-07-02 01:07:21 +02:00 |
|
Irmen de Jong
|
15756a8977
|
rename -expericodegen into -newcodegen that should switch all existing 6502 codegens to using the new one based on IR
|
2026-07-02 00:51:45 +02:00 |
|
Irmen de Jong
|
f1f925ecee
|
clarify sqrt() behavior on values <0
|
2026-07-01 20:51:06 +02:00 |
|
Irmen de Jong
|
ab422c0ebc
|
fix wrong codegen and 'empty' library subroutines
|
2026-07-01 20:25:00 +02:00 |
|
Irmen de Jong
|
19238cc366
|
IR: introduce strict and broad status flags contract for cpu targets
fix cmpi for words and longs
|
2026-07-01 01:38:35 +02:00 |
|
Irmen de Jong
|
e3d4401d99
|
fix callfar
|
2026-07-01 00:02:26 +02:00 |
|
Irmen de Jong
|
6a867d98eb
|
new codegen: syscall support started
|
2026-06-30 05:57:19 +02:00 |
|
Irmen de Jong
|
58363ff4e4
|
Add required support for inlined asmsub routines in IR and new codegen
|
2026-06-30 03:17:19 +02:00 |
|
Irmen de Jong
|
3b94fd4c4b
|
IR: more consistent BSS handling
|
2026-06-30 01:14:31 +02:00 |
|
Irmen de Jong
|
95f500c32f
|
fixing codegen
|
2026-06-29 23:10:55 +02:00 |
|
Irmen de Jong
|
870c2e8827
|
add name to StExtSubParameter to pass this to the codegen (required for @R0 etc)
|
2026-06-29 04:43:24 +02:00 |
|
Irmen de Jong
|
bb95d40d6d
|
asm syntax
|
2026-06-29 04:43:24 +02:00 |
|
Irmen de Jong
|
55ea599fca
|
Remove hardcoded external KERNAL entry points in codegen
|
2026-06-29 04:43:24 +02:00 |
|
Irmen de Jong
|
fd5fdf3d13
|
IR codegen: Emit extsub as inline assembly equate for codegen references
|
2026-06-29 04:43:24 +02:00 |
|
Irmen de Jong
|
71583a5b93
|
Move symbol prefixing logic from 6502 codegen to IR generation.
|
2026-06-28 21:33:10 +02:00 |
|