As said previously:nullplan wrote:Far jump in AT&T syntax uses a different mnemonic:So for example:Code: Select all
ljmp $<seg>, <label>
Indirect far jump uses the same mnemonic, but has a memory reference as operand, and requires a * to be placed in front of that operand (like indirect near jump).Code: Select all
ljmp $8, 1f 1:
So a far jump won't work. Still working on that part.Octocontrabass wrote: There's no way to encode a far JMP with a 64-bit destination in long mode, so you'll have to use something else (far RET is the usual choice).
UPDATE: Not sure if this would work or not, but potentially:
Code: Select all
retf $0
UPDATE 2: Nope, it just barfs this:
Code: Select all
check_cs(0xffff): not a valid code segment !
interrupt(long mode): IDT entry extended attributes DWORD4 TYPE != 0
interrupt(long mode): IDT entry extended attributes DWORD4 TYPE != 0
(0).[7580933978] [0x000000113f75] 0008:ffffffffffe02f75 (unk. ctxt): retf 0x0000 ; ca0000