Commit Graph

11 Commits

Author SHA1 Message Date
Dmitry Petukhov c563ce3ddc
reduce stage0_monitor size by 6 bytes (toggle default zero, use mux)
The toggle can have default state of zero, and then non-zero means
second nybble is processed. That allows to skip initialization of
toggle, and save 4 bytes.

But then we cannot create value 1 with 4-byte instruction.

But we can get something out of this situation: we can initialize
R11 to 0x1101, and R15 to 0xF, and then we can get 0x1100 with MUX:
MUX R0 R15 R11 R8   ; 0x1100 = ((0x1101 & ~0xF) | (0 | 0xF))

And we will also have value 0xF in R15.
0xF is used twice as immediate thus we save another 4 bytes
by using non-immediate instructions two times

We save 6 bytes overall.
(We lose 2 bytes because we use immediate load to R15)
2019-10-12 13:01:08 +05:00
Dmitry Petukhov d21dc971d1
leave stack at zero; to not do FALSE R15 because it is zero on start 2019-10-12 02:42:57 +05:00
Dmitry Petukhov c9232a21c7
reduce stage0_monitor size by 6 bytes (put often used values in regs) 2019-10-12 01:33:09 +05:00
Dmitry Petukhov ecf9194374
shave another 4 bytes from stage0 monitor bu using `TRUE R11` for toggle 2019-10-12 01:30:05 +05:00
Dmitry Petukhov 2ba42c00c1
test that asm comments in stage0_monitor.hex0 match the resulting binary 2019-10-10 02:36:04 +05:00
Dmitry Petukhov 0e3d05fafc
make stage0 monitor 4 bytes smaller by using FALSE to put zero in R1 2019-10-10 01:36:19 +05:00
Jeremiah Orians f513b3f6ac
Release 0.1.0 2018-03-20 20:45:33 -04:00
Jeremiah Orians 87477db7eb
Added requested Copyright notices 2017-04-01 17:26:44 -04:00
Jeremiah Orians 5f6c7f82bc
Added license to all source files 2017-03-28 20:25:39 -04:00
Jeremiah Orians d7bab06902
Revised stage0 monitor with several minor improvements and updated checksums 2016-10-29 07:45:23 -04:00
Jeremiah Orians 4b56570284
Unified Hex naming scheme to minimize confusion 2016-08-14 12:53:38 -04:00