Irmen de Jong
|
91421b0c62
|
IR handy sequence shortcut functions
|
2023-05-18 11:32:20 +02:00 |
|
Irmen de Jong
|
b43223cb7a
|
added clamp() builtin function and floats.clampf()
|
2023-05-17 23:12:58 +02:00 |
|
Irmen de Jong
|
85cf0e311c
|
Merge branch 'master' into version_9
# Conflicts:
# codeGenIntermediate/src/prog8/codegen/intermediate/ExpressionGen.kt
# docs/source/todo.rst
# intermediate/src/prog8/intermediate/IRInstructions.kt
|
2023-05-14 20:47:09 +02:00 |
|
Irmen de Jong
|
0e3d75cfeb
|
move irType() to intermediate module
|
2023-05-14 20:44:32 +02:00 |
|
Irmen de Jong
|
630c8a5faa
|
IR: fix romsub encoding
|
2023-05-14 18:08:06 +02:00 |
|
Irmen de Jong
|
905921a684
|
IR: new (sys)call instructions that encapsulate the full subroutine call
to fix the bugs resulting from nesting subroutine calls (as param to another call etc)
|
2023-05-14 15:20:25 +02:00 |
|
Irmen de Jong
|
1e469b3b0f
|
Merge branch 'master' into version_9
# Conflicts:
# docs/source/todo.rst
# examples/test.p8
|
2023-05-09 22:45:21 +02:00 |
|
Irmen de Jong
|
bff3c4f95c
|
IR now converts IRInlineAsmChunk (of type IR) into regular code chunks directly.
.p8ir files usually won't contain <INLINEASM> nodes any longer
|
2023-05-09 21:04:31 +02:00 |
|
Irmen de Jong
|
bd2bcb6994
|
Merge branch 'master' into version_9
# Conflicts:
# codeGenIntermediate/src/prog8/codegen/intermediate/AssignmentGen.kt
# compiler/res/prog8lib/c128/syslib.p8
# compiler/res/prog8lib/c64/syslib.p8
# compiler/res/prog8lib/cx16/syslib.p8
# docs/source/todo.rst
# examples/test.p8
# intermediate/src/prog8/intermediate/IRInstructions.kt
|
2023-05-08 23:17:52 +02:00 |
|
Irmen de Jong
|
97df33ab1a
|
IR: fix byte to word assignment not doing value extension
|
2023-05-08 22:47:00 +02:00 |
|
Irmen de Jong
|
add8a777d8
|
IR: binarydata fixes
|
2023-05-03 22:31:04 +02:00 |
|
Irmen de Jong
|
3fc49c001e
|
IR: fix for-loop codegen when step<0
|
2023-05-02 23:12:11 +02:00 |
|
Irmen de Jong
|
3d69a95c49
|
IR: fix for-loop codegen when step<0
|
2023-05-02 23:09:42 +02:00 |
|
Irmen de Jong
|
92062d056d
|
divmod() now works on multiple data types including float.
divmodw() has been removed
|
2023-05-02 01:19:53 +02:00 |
|
Irmen de Jong
|
06368ab0a1
|
sqrt() now works on multiple data types including float.
no need to use floats.sqrtf() anymore
|
2023-05-02 01:19:53 +02:00 |
|
Irmen de Jong
|
38efe25c68
|
abs() now works on multiple data types including float.
no need to use floats.fabs() anymore
|
2023-05-02 01:19:53 +02:00 |
|
Irmen de Jong
|
319079de7a
|
sqrt
|
2023-05-02 01:19:53 +02:00 |
|
Irmen de Jong
|
c07eda15b1
|
adding min() and max()
|
2023-05-02 01:19:53 +02:00 |
|
Irmen de Jong
|
76a203d4df
|
api change: rename builtin func sqrt16 to sqrtw
|
2023-05-02 01:19:53 +02:00 |
|
Irmen de Jong
|
24f37e2062
|
fix
|
2023-05-02 01:19:36 +02:00 |
|
Irmen de Jong
|
f465b2e2a0
|
some improvements to IR peephole optimizer
|
2023-05-02 00:29:04 +02:00 |
|
Irmen de Jong
|
d494f9d66b
|
fix
|
2023-04-29 18:04:08 +02:00 |
|
Irmen de Jong
|
efd7d6f0c0
|
tweak IR call args setting now via special SETPARAM instruction
|
2023-04-14 02:10:39 +02:00 |
|
Irmen de Jong
|
b55be093be
|
tweak IR
|
2023-04-11 22:48:20 +02:00 |
|
Irmen de Jong
|
7c1d5cadd7
|
fix sort and reverse on strings on 6502 codegen
|
2023-04-10 19:33:24 +02:00 |
|
Irmen de Jong
|
dd1592b03b
|
ir syscalls args via stack instead of fixed r65500+
|
2023-04-10 18:02:37 +02:00 |
|
Irmen de Jong
|
9b37ac483f
|
vm fix str to word conversion
ir SYSCALL puts result(s) on value stack, instead of on hardcoded r0, r1
|
2023-04-10 16:26:42 +02:00 |
|
Irmen de Jong
|
090820958e
|
ir divmod returns its results on valuestack, to keep consistency with the rule that only 1 register can be a returnvalue
|
2023-04-10 15:26:30 +02:00 |
|
Irmen de Jong
|
ac21e1be5c
|
vm syscall instruction no longer fixed to r0
|
2023-04-10 13:44:05 +02:00 |
|
Irmen de Jong
|
5196443b26
|
fix
|
2023-04-10 12:16:52 +02:00 |
|
Irmen de Jong
|
c8531cbeb1
|
remove unused variables from IR output
|
2023-04-09 23:09:30 +02:00 |
|
Irmen de Jong
|
9b952fbc44
|
tweaking IR instruction set branch instructions
|
2023-04-09 22:17:19 +02:00 |
|
Irmen de Jong
|
ccdf05e922
|
tweaking IR instruction formats
|
2023-04-09 16:12:16 +02:00 |
|
Irmen de Jong
|
c3d74f2ae9
|
fix golden ram area for x16, remove romsub restriction
note: romsubs still won't work in the VM but at least they compile again
|
2023-04-08 00:40:52 +02:00 |
|
Irmen de Jong
|
f47498888c
|
optimize imports
|
2023-04-07 22:34:23 +02:00 |
|
Irmen de Jong
|
5665a7f0cb
|
also track ir reg types
|
2023-04-07 22:24:17 +02:00 |
|
Irmen de Jong
|
c4f53fe525
|
IR: small optimization
|
2023-04-05 22:55:54 +02:00 |
|
Irmen de Jong
|
befe0fff2a
|
IR: fix comparison codegen errors in newexpr path
|
2023-04-05 00:15:09 +02:00 |
|
Irmen de Jong
|
d8214d4f12
|
fix IR array indexing for newexpr
|
2023-04-03 03:13:35 +02:00 |
|
Irmen de Jong
|
47d0f0ea40
|
implement missing operators in IR code gen
|
2023-04-01 02:29:33 +02:00 |
|
Irmen de Jong
|
2d85fd093e
|
Merge branch 'new-expr-codegen'
# Conflicts:
# codeGenCpu6502/src/prog8/codegen/cpu6502/BuiltinFunctionsAsmGen.kt
# codeGenIntermediate/src/prog8/codegen/intermediate/BuiltinFuncGen.kt
# examples/test.p8
|
2023-03-29 23:56:16 +02:00 |
|
Irmen de Jong
|
d936568b76
|
added divmod() and divmodw() builtin functions to efficiently compute division and remainder in a single call
|
2023-03-29 23:46:44 +02:00 |
|
Irmen de Jong
|
07fde7f6cc
|
fix IR same register error
|
2023-03-28 20:01:26 +02:00 |
|
Irmen de Jong
|
729209574e
|
fixing str compares codegen
|
2023-03-28 20:01:26 +02:00 |
|
Irmen de Jong
|
f28206d989
|
new attempt
|
2023-03-28 20:01:26 +02:00 |
|
Irmen de Jong
|
11216017cb
|
fix IR same register error
|
2023-03-28 20:00:21 +02:00 |
|
Irmen de Jong
|
1fa2e2e37d
|
3rd party library versions upgrades
|
2023-03-26 21:36:21 +02:00 |
|
Irmen de Jong
|
629ed74d09
|
got rid of rpn deadend code...
|
2023-03-25 18:45:17 +01:00 |
|
Irmen de Jong
|
6e4ae034b2
|
more Rpn optimizations
|
2023-03-19 00:48:12 +01:00 |
|
Irmen de Jong
|
5b0e1b4f9e
|
a little rpn refactor
|
2023-03-17 23:04:56 +01:00 |
|