Hi Samuel, On 1/29/24 9:20 PM, Samuel Thibault wrote: > Damien Zammit, le lun. 29 janv. 2024 10:07:30 +0000, a ecrit: >> - ljmp $BOOT_CS, $M(0f) >> + xorl %eax, %eax >> + mov %cs, %ax >> + shll $4, %eax >> + addl $M(0f), %eax >> + movl %eax, M(ljmp_offset32) > This won't work with pipelined processors, which assume a complete > separation between code and data, and will thus have already loaded > the jmp instruction before your modify it. > > Rather either perform the relocation from the C code, or use a variable, > which you can refer from the ljmp instruction.
I was unable to make the ljmpl instruction assemble with a memory location as the second argument. I don't know what to do, other than I could use a simple jmp instruction to clear the instruction cache before doing the ljmpl? Damien