about summary refs log tree commit diff
path: root/amd64.e
AgeCommit message (Collapse)Author
14 daysfix all leaks and incorrect parameter counts in amd64.eIrene Knapp
this required adding a new magic-comment command, drop-subitem, because there's a couple cases, in indexed addressing mode helpers, where a hardcoded register value is used as part of preparing an sib word, and that value shouldn't become a subitem for the assembly word that calls the helper. notably, a lot of the disp8 and indexed assembly words had incorrect parameter counts that needed adjusting parameter ORDERS still need a close read to make sure they're correct. also, as future work, substring entries should be renamed to subitem entries. Force-Push: yes Change-Id: I419243855751416377d0ea0c5062fa1ba9e62a8d
2026-09-09provide a #swap operation in comment templatesIrene Knapp
and use it in a couple places in amd64.e where it's needed Change-Id: Id73dcd13f08c03aa02ac09e45ab034fcd90f2569 Force-Push: yes
2026-09-08handle the rest of the fields (keywords and numbers) in amd64.eIrene Knapp
add a provide-decimal variant of the magic-comment provide command family note that the fields are all printed in a wrong order, at present Force-Push: yes Change-Id: I01f5cbb86f61e78ce652c54fc8b29b88efd1b2b6
2026-09-08add keyword support to magic comment templatesIrene Knapp
additionally, handle many (not yet all) of the keywords used by amd64 words this exposed an existing flaw in the metadata entry processing, which is now fixed as well. to wit: it's common for provide-substring entries to come after the comment entries they go with in the entry array, but this is valid because adjust-length commands can edit the length field of the comment entry afterwards, and the comment entry will be moved to after the provide-substring entry based on its final length, but this can't happen if the adjust-length array isn't able to find the comment entry it goes with, which may not be the most recent entry. so, the adjust-length command needs to scan backwards to find the most recent comment entry, not just the most recent entry. confused? don't worry... this CL includes documentation. wow. that was a lot. Change-Id: I01c574fca020fd2e3adaf335267264fdbc8b87f1 Force-Push: yes please
2026-09-08add "provide" words for all sizes of hex literal, and use them in amd64Irene Knapp
Force-Push: yes Change-Id: Ibdc4e05f8c63f0b4b6b8e504f89e053e6cd3a912
2026-09-08add magic comment length tracking to all the amd64 instructionsIrene Knapp
yay! Force-Push: yes Change-Id: Ib54458c2466362391cc8724ad8af32f03a869e03
2026-09-07add magic hex-transform comments in all the amd64 instruction wordsIrene Knapp
also add logic to output newlines at the start of these comments Force-Push: yes Change-Id: I4c3ce99c264e7d02150cdf2b40d486e925b5fb72
2026-06-06also a wrong comparison in scalefieldIrene Knapp
also due to @atax1a@infosec.exchange Force-Push: yes Change-Id: I2e7797772c31fb11decf2a9de65c0e802ca5697a
2026-06-06the encodings in reg32 were missingIrene Knapp
this worked by coincidence since it's only ever called in one place, to encode :eax, whose encoding happens to be 0. oops. thanks to @atax1a@infosec.exchange for spotting this Force-Push: yes Change-Id: I4cddbcd370a5d0c7db2f8733431bfda388022a22
2026-05-28document "near" calls (sort of)Irene Knapp
Force-Push: yes Change-Id: Ice00213f2e4b79f9aa44e6ccc5a70d951f7f762d
2026-05-28yay we already had high-level flow control thereIrene Knapp
so the TODOs are unneeded Force-Push: yes Change-Id: I13d1316d22b52238076d6f17d05062671e4724e4
2026-05-28better documentation of parameter order for arithmetic instructionsIrene Knapp
Force-Push: yes Change-Id: I02af0267657cf21fcf4e4d79457645da42f6798d
2026-05-24added a program, hex.e, which will be the bootstrap strategyIrene Knapp
also added some instructions it needed Force-Push: yes Change-Id: Ia35280e2696167eb0662a5c3a9dc47840438da56
2026-05-23added a couple new instructionsIrene Knapp
this turns out to be fairly involved. hex bootstrap can't come fast enough ;) Force-Push: yes Change-Id: Ide5d2207d745ad07c40d3c9f457cd6b491bfbcf0
2026-05-22de-branch'd all the internalsIrene Knapp
so it's all just high-level flow control now, which makes it load in itself the output isn't identical on the first self-compilation, but it converges on the second with this, it is officially self-hosting. WOW. Force-Push: yes Change-Id: Ic14de1dae209b200cada269b07c3826c86fa494f
2026-05-20the entirety of core.e now log-loadsIrene Knapp
wow!!!!!! wow making this work required implementing comma and keyword in the log-load transform Force-Push: yes Change-Id: If888d89c23389720840b49b72478e4826a15a269
2026-05-20add a really powerful stack depth tracking feature for transforms to useIrene Knapp
also said feature seems to work, which is flatly astonishing just a little more now... Force-Push: yes Change-Id: I1bda7e99e524ac73a761859e86e01251e7d17525
2026-05-19yessssssssIrene Knapp
so okay, now all the machine code stuff is implemented and it builds without crashing the generated executable still crashes though, but this was enough work that it's getting a celebratory check-in Force-Push: yes Change-Id: I201e6912253647da58ef3537c735b478b0dca9fb