Irmen de Jong
77f3852cdc
added floats.parse_f()
2023-08-16 14:47:20 +02:00
Irmen de Jong
be06d871b6
fix code for bitwise shifts by zero
2023-08-14 21:49:13 +02:00
Irmen de Jong
f98ee326b4
error when doing txt.print('@') where "@" was intended (byte for string parameter)
2023-08-14 19:25:31 +02:00
Irmen de Jong
bc8126eb16
2x faster word multiplication routine
2023-08-14 18:11:30 +02:00
Irmen de Jong
4c8beefdcb
slightly faster integer bytes multiplication routine
2023-08-14 17:00:16 +02:00
Irmen de Jong
2c9e50873c
use math.square for optimized X*X calculation (words only).
...
Added IR SQUARE instruction.
2023-08-14 01:05:17 +02:00
Irmen de Jong
e3fbe37f9f
fixed optimized code for >= and <=
2023-08-12 13:45:08 +02:00
Irmen de Jong
dc870cd5ea
fixed optimized code for > and <
2023-08-12 13:15:32 +02:00
Irmen de Jong
b92e22e4a6
IR: fix for loop over range with step
2023-08-11 03:05:47 +02:00
Irmen de Jong
3e6d16a7a8
add error message for invalid step size in range expression
2023-08-11 02:35:52 +02:00
Irmen de Jong
dff1d9e4dd
cleanup range expression doc
2023-08-09 22:58:04 +02:00
Irmen de Jong
7c0bde7310
parser: allow curly brace on next line for asmsub too
...
downgrade antlr4 one version again to what is used in IntelliJ's antlr plugin, to avoid potential version conflicts
2023-08-09 20:01:12 +02:00
Irmen de Jong
a82d21ac05
fixed gfx2.plot in mode 1+5 with certain combinations of color and stipple
2023-08-08 00:01:43 +02:00
Irmen de Jong
0bf8378fcb
fixed gfx2.horizontal_line problem with monochrome stippling mode (regression since version 9.0)
...
todo
2023-08-07 22:56:07 +02:00
Irmen de Jong
017ef8a837
optimization of > and <= in expressions
2023-08-07 21:23:31 +02:00
Irmen de Jong
0d63cdcb96
optimization of < and >= in expressions
2023-08-07 04:54:35 +02:00
Irmen de Jong
68a6f99c9f
optimization of < in expressions
2023-08-07 02:32:07 +02:00
Irmen de Jong
60781bcfc4
optimization of == and != in expressions
2023-08-07 01:25:41 +02:00
Irmen de Jong
77fa2e2722
optimization in + or - assignment to word array
2023-08-05 23:28:40 +02:00
Irmen de Jong
c36afd872e
optimization in assignment to memory
2023-08-04 23:54:11 +02:00
Irmen de Jong
7e58a4c130
optimization in assignment to array
2023-08-04 23:06:55 +02:00
Irmen de Jong
19a4bf1088
clean up AugmentableAssignmentAsmGen a bit
2023-08-04 21:48:02 +02:00
Irmen de Jong
f2c62bee7e
docs
2023-08-01 22:49:55 +02:00
Irmen de Jong
1ae950a638
Merge branch 'remove_evalstack'
...
# Conflicts:
# codeGenCpu6502/src/prog8/codegen/cpu6502/assignment/AssignmentAsmGen.kt
2023-07-31 21:57:43 +02:00
Irmen de Jong
9bb16e293c
vm: fix postincr/decr on indexed pointervariables
2023-07-31 19:37:30 +02:00
Irmen de Jong
b89ad4b328
don't optimize empty where choice away! It would call the else clause incorrectly.
2023-07-29 18:25:52 +02:00
Irmen de Jong
970642244b
optimized gfx2.text() for hires 4c mode
2023-07-26 04:17:44 +02:00
Irmen de Jong
3b90be2d9e
gfx2.text() per-pixel positioning implemented for screen modes 1 and 5
2023-07-25 00:43:45 +02:00
Irmen de Jong
4575a8fffe
cx16: added cx16.vaddr_autoincr() and cx16.vaddr_autodecr()
2023-07-21 22:40:07 +02:00
Irmen de Jong
5659742d97
fixed assigning byte to word not clearing msb sometimes
2023-07-16 23:16:32 +02:00
Irmen de Jong
450eaf7c4a
fixed lsb() to uword problem
2023-07-16 20:05:59 +02:00
Irmen de Jong
c1aa5d4e47
IR: optimized when statement translation
2023-07-16 12:10:46 +02:00
Irmen de Jong
b3cb9b7fe2
added optimizer to remove needless pha/pla pairs
2023-07-15 22:19:48 +02:00
Irmen de Jong
b8284a147d
allow boolean when conditions, optimize into a regular if
2023-07-11 21:33:29 +02:00
Irmen de Jong
795f80b4ec
fix forloop 6502 codegen in case of descending word values
2023-07-11 00:33:12 +02:00
Irmen de Jong
6b6427492d
fix forloop 6502 codegen in case of descending word values
2023-07-10 23:10:16 +02:00
Irmen de Jong
6055b8c3dc
IR: fix forloop codegen for steps != 1
2023-07-10 21:36:44 +02:00
Irmen de Jong
4e863ecdac
vm: fixed abs() and word-to-string conversion
2023-07-08 22:57:16 +02:00
Irmen de Jong
5037033fcf
ir: EXT and EXTS opcodes now have 2 registers to avoid type clash
2023-07-08 22:42:11 +02:00
Irmen de Jong
4ced8889d3
cx16: fix signature return values of cx16.screen_mode(), add get_screen_mode() and set_screen_mode() convenience routines
2023-07-08 11:37:29 +02:00
Irmen de Jong
d26967a87d
ir doc
2023-07-07 22:35:05 +02:00
Irmen de Jong
071a80360f
ir: fix some problem with comparison against zero
2023-07-07 21:17:28 +02:00
Irmen de Jong
d2154f5f2e
remove empty when choices, fixes ir compilation error on those
2023-07-07 20:34:24 +02:00
Irmen de Jong
334d382bfa
ir: JUMPI instruction added to support indirect jumps
2023-07-07 19:10:39 +02:00
Irmen de Jong
90c4b00f74
ir: fix any() all() reverse() sort() on memory mapped arrays and on byte arrays
2023-07-07 17:25:32 +02:00
Irmen de Jong
71261525e8
fix containment check on memory mapped arrays
2023-07-07 17:07:34 +02:00
Irmen de Jong
3126959576
ir: several fixes
2023-07-07 16:53:32 +02:00
Irmen de Jong
f9200a2b75
fix IR loader for romsub calls (calls to an address)
2023-07-02 23:41:15 +02:00
Irmen de Jong
c544b7f5ba
fixing up p8_ prefixing
2023-07-02 21:15:05 +02:00
Irmen de Jong
bb95484c8a
uniform symbol prefixing with p8_
2023-07-02 06:15:09 +02:00
Irmen de Jong
aac5a4c27f
optimize word repeat loop codegen
2023-07-02 04:51:22 +02:00
Irmen de Jong
d3f6415387
vm: fix repeat 256
2023-07-02 02:38:35 +02:00
Irmen de Jong
e7b631b087
allow comment lines inside array initializer value
2023-06-27 23:30:37 +02:00
Irmen de Jong
a9f5dc036c
fix cpu stack corruption in array assignment codegen
2023-06-27 18:49:49 +02:00
Irmen de Jong
0a83b51e00
allow more curly brace styles
2023-06-27 01:59:22 +02:00
Irmen de Jong
eab63ecc6c
allow curly brace on next line also after subroutine and when
2023-06-27 01:29:25 +02:00
Irmen de Jong
b0794cf35e
added hiram bank number to -varshigh
2023-06-27 00:27:34 +02:00
Irmen de Jong
eae41de27d
improve errors generated for undefined symbols
2023-06-25 15:19:51 +02:00
Irmen de Jong
e9163aa3a7
added cx16.save_virtual_registers() and cx16.restore_virtual_registers()
2023-06-24 21:04:47 +02:00
Irmen de Jong
8c617515ba
don't prefix 3-letter symbols too aggressively (could cause some compilation errors)
2023-06-23 23:36:59 +02:00
Irmen de Jong
04e4e71f2e
uword == str is now possible (sugar for string.compare)
2023-06-22 00:20:30 +02:00
Irmen de Jong
a587482edf
optimize dangling else
2023-06-18 13:46:02 +02:00
Irmen de Jong
ff7f3484e4
atan
2023-06-17 23:01:47 +02:00
Irmen de Jong
c0b398e0ce
add various math.atan() routines
2023-06-17 00:43:33 +02:00
Irmen de Jong
ba25b7fee6
fix diskio.diskname(). cx16: add diskio.curdir()
2023-06-07 22:38:51 +02:00
Irmen de Jong
380f557c45
vm: implement split incr/decr
2023-06-03 22:22:13 +02:00
Irmen de Jong
9314c346da
-target option is now required; c64 no longer the default
2023-06-03 19:14:45 +02:00
Irmen de Jong
bfaad1388c
IR: handle split arrays without new custom opcodes
2023-06-03 01:51:02 +02:00
Irmen de Jong
bb35a80177
%option splitarrays now also at module level
2023-05-31 21:50:41 +02:00
Irmen de Jong
24fc95ac81
fix atari target syslib
2023-05-31 20:58:00 +02:00
Irmen de Jong
bb9d29b061
fix an array literal assignment type error for word arrays
2023-05-30 22:46:37 +02:00
Irmen de Jong
b9d8ec1463
add -splitarrays command line option
2023-05-30 19:08:34 +02:00
Irmen de Jong
bbc02752c9
use split word arrays in various examples, fix codegen issue, docs
2023-05-29 15:34:33 +02:00
Irmen de Jong
82898f7bba
fix some split array issues in 6502 codegen
2023-05-28 22:24:56 +02:00
Irmen de Jong
3ac9036c79
more split array stuff for 6502
2023-05-27 22:44:45 +02:00
Irmen de Jong
c94e292176
more split array stuff
2023-05-27 12:47:11 +02:00
Irmen de Jong
52a77db60f
adding split array type
2023-05-26 19:11:07 +02:00
Irmen de Jong
0c94e377fc
Merge branch 'v8_maintenance'
2023-05-21 16:09:31 +02:00
Irmen de Jong
c69c17de42
cx16 avoid ram bank issue with RDTIM in sys.wait() and c64.RDTIM16()
2023-05-21 15:03:33 +02:00
Irmen de Jong
7215efe167
fix expr eval error in certain situations
...
such as pokew() with 2 complex operands
2023-05-20 17:42:35 +02:00
Irmen de Jong
b43223cb7a
added clamp() builtin function and floats.clampf()
2023-05-17 23:12:58 +02:00
Irmen de Jong
1af38e62bc
removed floats.fabs() and floats.sqrt()/fsqrt()
2023-05-17 00:46:15 +02:00
Irmen de Jong
f37f062cdc
fix for loop pre-check
2023-05-17 00:33:55 +02:00
Irmen de Jong
7e734214dc
v8_maintenance branch made
2023-05-15 23:01:43 +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
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
4c8898a639
fix typecheck crash on certain byte to word assignments
2023-05-08 23:02:48 +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
d5d6dd3614
optimize typecast expr
2023-05-08 03:30:14 +02:00
Irmen de Jong
6c233c6a0a
optimize add/sub expr
2023-05-08 02:41:34 +02:00
Irmen de Jong
6db715d879
optimize multiplication expr
2023-05-08 02:10:54 +02:00
Irmen de Jong
ab02e8a546
optimize more carry flag assembly
2023-05-07 23:55:34 +02:00
Irmen de Jong
8cbfe64f19
optimize some carry flag assembly
2023-05-07 23:27:49 +02:00
Irmen de Jong
68336a76c5
optimized word comparison expressions
2023-05-07 20:40:48 +02:00
Irmen de Jong
393e914a86
optimized word equality comparison expressions
2023-05-07 18:55:17 +02:00
Irmen de Jong
ffb54110e9
optimized byte comparison expressions
2023-05-07 15:15:58 +02:00
Irmen de Jong
f465b2e2a0
some improvements to IR peephole optimizer
2023-05-02 00:29:04 +02:00
Irmen de Jong
9cdd5fe7f2
fix byte to word sign extension error in certain cases
2023-04-29 17:14:50 +02:00
Irmen de Jong
5b2d29bef6
improved and added a few system routines for the cx16
2023-04-18 23:20:28 +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
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
9b952fbc44
tweaking IR instruction set branch instructions
2023-04-09 22:17:19 +02:00
Irmen de Jong
5665a7f0cb
also track ir reg types
2023-04-07 22:24:17 +02:00
Irmen de Jong
4a0f15eb88
some loose ends
2023-04-06 21:19:21 +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
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
01461a196d
implementing optimized comparisons
2023-03-25 00:08:21 +01:00
Irmen de Jong
04832f052a
working on doing comparison codegen differently
2023-03-25 00:08:21 +01:00
Irmen de Jong
d265271148
fix rpn variable depth clobber and type error
2023-03-20 22:18:10 +01:00
Irmen de Jong
b40e397b28
fix rpn result type mismatch
2023-03-20 00:58:48 +01:00
Irmen de Jong
df2d7d4734
fix RPN comparison exprs
2023-03-19 16:08:48 +01:00
Irmen de Jong
374464a1f8
weird condition operator...
2023-03-19 01:32:20 +01:00
Irmen de Jong
6e4ae034b2
more Rpn optimizations
2023-03-19 00:48:12 +01:00
Irmen de Jong
52b560e72d
more Rpn optimizations
2023-03-18 19:13:32 +01:00
Irmen de Jong
9b971ad222
fix PeekW and PokeW optimizations
2023-03-18 17:36:32 +01:00
Irmen de Jong
3613162d09
fix RPN string comparisons
2023-03-18 16:55:03 +01:00
Irmen de Jong
94c06e13f4
implementing Rpn optimizations 2
2023-03-18 12:43:45 +01:00
Irmen de Jong
e8bebe5a75
implementing Rpn optimizations
2023-03-18 01:13:02 +01:00
Irmen de Jong
9241479da4
add "-rpn" command line switch to transform exprs to RPN in codegen
2023-03-17 22:28:22 +01:00
Irmen de Jong
92276b5769
IR fix unneeded register allocated for array indexing with variable
2023-03-14 21:24:44 +01:00
Irmen de Jong
f350137a14
fix array in place assignments
...
fixes balls and snow examples amongst others
2023-03-10 04:07:50 +01:00
Irmen de Jong
6c34672549
array in-place assignment problem
2023-03-10 02:02:47 +01:00
Irmen de Jong
d9e4f39ddc
memset BSS section to zero all at once, less individual var=0 assigns
2023-02-21 00:26:21 +01:00
Irmen de Jong
92a07b87d2
clearer
2023-02-20 02:32:36 +01:00
Irmen de Jong
adc15c24ef
introduce bss segments
2023-02-19 18:12:37 +01:00
Irmen de Jong
9ca6860ffa
tweak
2023-02-19 15:08:16 +01:00
Irmen de Jong
fe29d8a23f
tweak codegen of inline sub
2023-02-09 21:59:09 +01:00
Irmen de Jong
c75b1581d2
lookup via new ST
2023-02-05 01:15:23 +01:00
Irmen de Jong
109e118aba
fix sub return register
2023-02-03 21:16:44 +01:00
Irmen de Jong
e94319145f
test
2023-01-26 01:41:44 +01:00
Irmen de Jong
48c9349ce9
working on codegen fixes
2023-01-25 01:57:25 +01:00
Irmen de Jong
9b209823f6
simple test
2023-01-22 17:10:52 +01:00
Irmen de Jong
bf0604133c
fix error in IR for inline asm and BSS vars.
2022-12-04 16:48:44 +01:00
Irmen de Jong
a82b2da16e
Fix some FP related assignment issues in 6502 codegen.
2022-12-04 13:03:38 +01:00
Irmen de Jong
17bedac96c
vm: memory is randomized on start instead of 0. P8ir file now has BSS segment. Vm clears BSS vars to 0.
2022-12-03 17:46:06 +01:00
Irmen de Jong
f470576822
it's now possible to use symbols that are the same name as 6502 instructions
...
because these are now prefixed internally before generating assembly.
2022-11-30 18:39:56 +01:00
Irmen de Jong
10760a53a8
optimize cmp word equal/notequal
2022-11-29 20:14:35 +01:00
Irmen de Jong
eee805183c
don't overwrite temp vars in complex comparison expressions. Fixes #89
2022-11-29 04:13:25 +01:00
Irmen de Jong
b8fb391022
- ir codegen now allows subroutine having the same name as its block
...
this is not possible for the 6502 codegen due to 64tass scoping limitation
2022-11-28 21:54:33 +01:00
Irmen de Jong
c21913a66b
ir: keep order of children in block
2022-11-22 02:04:24 +01:00
Irmen de Jong
d8e87bd881
make uword xx = 1<<shift into a word shifting
2022-11-16 01:39:34 +01:00
Irmen de Jong
922033c1b2
main block element order now remains the same as in source
2022-11-16 00:32:00 +01:00
Irmen de Jong
00c059e5b1
adding cx16/adpcm example
2022-11-15 01:17:28 +01:00
Irmen de Jong
9d7b9771c2
p8ir file format is now valid XML
2022-11-11 23:35:52 +01:00
Irmen de Jong
3dcf628fdb
fixed subroutine name shadow check
2022-11-10 22:51:37 +01:00
Irmen de Jong
e614e9787a
ir: write values as hex into p8ir file
2022-11-08 21:59:05 +01:00
Irmen de Jong
5d4bfffc7e
float.rndseedf() now takes float seed value and is consistent for all CBM compilation targets
2022-11-06 22:53:57 +01:00
Irmen de Jong
7315b581ce
added gfx2.pget(x,y) to get the pixel color value
2022-11-06 13:40:55 +01:00
Irmen de Jong
38efaae7b2
ir/vm: syscall params in high base register to avoid push/pop
2022-11-06 12:52:09 +01:00
Irmen de Jong
469e042216
vm: replaced prog8_lib.string_compare and others with syscalls
2022-11-04 23:12:13 +01:00
Irmen de Jong
0f1a4b9d8f
fixed certain type check error when passing boolean value to ubyte function parameter
...
fixed virtual machine string comparison syscall
2022-11-03 23:06:03 +01:00
Irmen de Jong
7303c00296
vm: prog8lib.wordarray_contains() fixed
2022-11-03 22:48:47 +01:00
Irmen de Jong
562d722ad5
codegen: added missing codegen for float array inplace modification
2022-11-03 20:08:46 +01:00
Irmen de Jong
144c1ba3a6
ir: fix float instruction value in formatspec
2022-11-03 19:08:38 +01:00
Irmen de Jong
dc0edc4c2b
break also in for
2022-10-29 23:34:59 +02:00
Irmen de Jong
434515d957
fix: array[x] = ~array[x] no longer crashes the codegen
2022-10-27 23:56:38 +02:00
Irmen de Jong
e9a4a905ef
preparing to fix the array indexing compiler issue
2022-10-26 23:53:17 +02:00
Irmen de Jong
e94bf4c63c
replace rnd()/rndw() builtin functions by regular routines in math module
2022-10-22 17:02:43 +02:00
Irmen de Jong
ec5adffdc2
rnd()/rndf() routines can now be seeded with new rndseed()/rndseedf() routines. fixes #80
2022-10-22 13:34:22 +02:00
Irmen de Jong
53b0b562e6
fix check for routine that returns multiple values but in status bit. Fixes #79
2022-10-19 23:23:49 +02:00
Irmen de Jong
39d6d2857e
ir: change inline binary a bit
2022-10-04 00:57:08 +02:00
Irmen de Jong
af6be44676
ir: adding register usage inspections
...
fix compiler problems with untrimmed inlined asm, and when only a single return statement is present in a subroutine
2022-09-30 20:25:00 +02:00
Irmen de Jong
5a8f97a0b6
ir: adding last missing features to be able to encode all of Prog8
2022-09-30 16:01:00 +02:00
Irmen de Jong
0d4dd385b8
added '%ir' to write inline IR code, '%asm' is now only for real 6502 assembly.
...
(%ir is probably only used in the library modules for the virtual machine target)
2022-09-30 15:12:26 +02:00
Irmen de Jong
7c1bdfe713
ir: uninitialized vars remain empty, bss section classifier (unused for now as there are no segements yet)
2022-09-28 16:56:50 +02:00
Irmen de Jong
1d2ce2cbeb
consolidate IR line parse function
2022-09-27 18:02:57 +02:00
Irmen de Jong
1a56743bb1
fix IR repeat loop codegen when amount is 0
2022-09-25 20:48:17 +02:00
Irmen de Jong
ca2fb6cef3
IR no longer depends on VM syscalls but has its own syscall list for the few builtin functions that still require it
2022-09-23 14:27:51 +02:00
Irmen de Jong
11d87e4725
VM: support cpu registers
2022-09-19 17:13:46 +02:00
Irmen de Jong
627ed51a1b
IR: mem mapped vars and memory slabs
2022-09-19 15:20:40 +02:00
Irmen de Jong
2f3e7d1c27
IR support for storing incbins and romsubs
2022-09-17 16:07:41 +02:00
Irmen de Jong
0e831d4b92
fix superfluous usage of addressOf()
2022-09-16 00:31:04 +02:00
Irmen de Jong
6428ced157
added subroutine params to IRSubroutine
2022-09-13 23:06:05 +02:00
Irmen de Jong
30a42ec1bd
IR tweak
2022-09-13 23:06:05 +02:00
Irmen de Jong
aacea3e9db
incbin in IR
2022-09-13 23:06:05 +02:00
Irmen de Jong
6886b61186
also output inline asm chunks
2022-09-13 23:06:05 +02:00
Irmen de Jong
0744c9fa29
properly flatten label names for the IR code
2022-09-13 23:06:05 +02:00
Irmen de Jong
502a665ffc
getting address-of into IR without allocations
2022-09-13 23:06:05 +02:00
Irmen de Jong
3c315703c0
making IR file reader
2022-09-13 23:06:05 +02:00
Irmen de Jong
12ed07a607
comments
2022-09-13 23:06:05 +02:00
Irmen de Jong
97f4316653
rename IR classes
2022-09-13 23:06:05 +02:00
Irmen de Jong
a182b13e5a
fixup for memoryslabs
2022-09-13 23:06:05 +02:00
Irmen de Jong
80b630a1e4
added memoryslabs to symboltable
2022-09-13 23:06:05 +02:00
Irmen de Jong
475efbe007
steps to make actual IR based on VM code. For now, as experimental codegen.
2022-09-13 23:06:05 +02:00
Irmen de Jong
176ec8ac7d
fix 6502 codegen bug: complex comparison expression is evaluated wrong.
...
Fixed by reintroducing splitting of comparison expression in if statements by using a temporary variable and/or register to precompute left/right values.
2022-08-23 00:05:57 +02:00
Irmen de Jong
fc0a0105b3
move memoryslab administration from allocator to symboltable
2022-08-21 19:48:56 +02:00
Irmen de Jong
7ef4ddf0f3
fixed operator precedence: bitwise must come before comparisons
2022-08-14 12:34:00 +02:00
Irmen de Jong
0aa0ec5abd
fix c64 zeropage locations of cx16 virtual registers
2022-08-13 00:14:19 +02:00
Irmen de Jong
44ee4b989f
optimize code for logical expressions more if right operand is simple
2022-08-12 00:49:40 +02:00
Irmen de Jong
18790d867c
optimize conditional expression WORD & $ff00 to just msb(WORD)&$ff
2022-08-12 00:21:44 +02:00
Irmen de Jong
d6b8936376
fix mkword(@(ptr), 0) wrong asm
2022-08-11 23:01:19 +02:00
Irmen de Jong
4d840c7db8
optimized mkword(0, X)
2022-08-11 22:51:09 +02:00
Irmen de Jong
4d2b21816d
optimized uword <<8 and >>8
2022-08-11 22:25:15 +02:00
Irmen de Jong
2d34fdd28f
in a block marked option force_output, make all subroutines in asm use .block rather than .proc
...
this fixes some obscure assembly issues where subroutines were omitted from the output program by 64tass
2022-08-10 21:28:40 +02:00
Irmen de Jong
68abda1219
fix a few small compiler errors (removing functioncall, removing block, assigning virtual register return value)
2022-08-09 23:38:29 +02:00
Irmen de Jong
f778f08f76
tweak
2022-08-08 21:09:49 +02:00
Irmen de Jong
ac1bd2fb7b
virtual: properly output "memmapped" variables too
...
still as regular variables though
2022-08-08 20:42:17 +02:00