diff options
author | Damien Zammit <damien@zamaudio.com> | 2024-02-05 23:10:45 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2024-02-05 23:10:45 +0100 |
commit | e211bdce3388a3c9e3dafab903dd53374f6d9759 (patch) | |
tree | f41868d1e2a30d6750efa9219649f06188080bdc /kern/exception.c | |
parent | a923f97ff290a70fc224ac79ab276feae1cfbf53 (diff) | |
download | gnumach-e211bdce3388a3c9e3dafab903dd53374f6d9759.tar.gz gnumach-e211bdce3388a3c9e3dafab903dd53374f6d9759.tar.bz2 gnumach-e211bdce3388a3c9e3dafab903dd53374f6d9759.zip |
smp: Remove hardcoded AP_BOOT_ADDR
This took some time to figure out.
Involves a hand-crafted 16 bit assembly instruction [1]
because it requires an immediate for the memory address
of far jump. This required self-modifying code
to inject the next instruction, therefore I added a near
jump to clear the instruction cache queue in case the pipeline
cached the unmodified jump location.
[1] Intel Architecture Software Developer's Manual,
Volume 2: Instruction Set Reference Manual
Diffstat (limited to 'kern/exception.c')
0 files changed, 0 insertions, 0 deletions