Commit Graph

24 Commits

Author SHA1 Message Date
Andrius Štikonas 368377191b Add hex1.S prototype. 2022-08-07 21:45:05 +01:00
Andrius Štikonas 9af7fdf9bb kaem-minimal.S: make sure to close files and free pools when exiting. 2022-07-30 10:08:23 +01:00
Andrius Štikonas 8e22fee483 Switch to relative addressing of labels. 2022-07-24 10:11:45 +01:00
Andrius Štikonas a8e0dd50a2 Make sure we use 64-bit pointers for stack address. 2022-07-23 20:14:45 +01:00
Andrius Štikonas 3317e845f5 Add hex0.M1. 2022-07-23 18:41:30 +01:00
Andrius Štikonas 93c8c5372c Swap rax and rbx to optimize machine code a bit. 2022-07-23 15:15:40 +01:00
Andrius Štikonas 7f27324a5b Port hex0.S optimizations from stage0-posix. 2022-07-20 22:48:41 +01:00
Andrius Štikonas 85e3b0caef Actually sub esp, 32 is only 3 bytes long, so undo some of the pop rax changes. 2022-07-17 13:53:31 +01:00
Andrius Štikonas bfb164eb68 hex0.S: save another byte when accessing stack contents. 2022-07-17 13:23:18 +01:00
Andrius Štikonas d96dc0e322 hex0.S: optimize setting some immediate values. 2022-07-17 13:13:36 +01:00
Andrius Štikonas e7bd0b67ab hex0.S: Use push rax to allocate stack space instead of sub rsp, 32.
Easier to encode to hex0 and also more efficient for smaller allocations
such as sub rsp, 16.
2022-07-17 12:50:29 +01:00
Andrius Štikonas 1d3ea9e5c0 hex0.S: use r14 to store system->boot->open_protocol rather than system->boot.
Also reuse r14 for rootdir and free up rsi for further optimizations.
2022-07-17 12:30:29 +01:00
Andrius Štikonas f5bae9d646 hex0.S: more stack optimizations.
Pass function arguments with push opcodes which are shorter
than using e.g. "mov qword ptr [rsp+40], 1"
2022-07-17 12:25:27 +01:00
Andrius Štikonas 555caea6c7 hex0.S: move global variables to stack. 2022-07-17 01:48:55 +01:00
Andrius Štikonas 71bca6e471 hex0.S: backport some optimizations from stage0-posix-amd64. 2022-07-16 20:09:53 +01:00
Andrius Štikonas 4afbfc56cc hex0.S: optimize read/write_byte functions. 2022-07-16 01:06:47 +01:00
Andrius Štikonas 3e95bb7d48 hex0.S: use ret rather than calling system->boot->exit() 2022-07-15 23:09:35 +01:00
Andrius Štikonas 9895b0da06 hex0.S: initial working version, still needs some optimizations. 2022-07-15 22:37:45 +01:00
Andrius Štikonas 159d30e184 hex0.S: open source file for reading. 2022-07-15 00:43:57 +01:00
Andrius Štikonas 34060fc7e5 hex0.S: open target file for writing. 2022-07-14 22:55:42 +01:00
Andrius Štikonas 8a344b7275 hex0.S: add argument parsing and open root device. 2022-07-13 22:47:20 +01:00
Andrius Štikonas d0e6bdb758 hex0.S: implement open_protocol function. 2022-07-11 01:27:00 +01:00
Andrius Štikonas 9cb1d5b7f0 hex0.S: print hello world as a test. 2022-07-10 22:11:32 +01:00
Andrius Štikonas 081a890e05 Add a skeleton file for eventual assembly port of hex0. 2022-07-10 16:24:23 +01:00