.text SetSegmentRegisters: mov 0x18(%rcx), %ds mov 0x1a(%rcx), %es mov 0x1c(%rcx), %fs mov 0x1e(%rcx), %gs mov 0x20(%rcx), %ss ret .globl Archpx64EnableInterruptsAsm Archpx64EnableInterruptsAsm: sti ret .globl Archpx64DisableInterruptsAsm Archpx64DisableInterruptsAsm: cli ret .globl BlpArchGetDescriptorTableContext BlpArchGetDescriptorTableContext: sgdt 0x00(%rcx) sidt 0x0a(%rcx) sldt 0x14(%rcx) mov %cs, 0x16(%rcx) mov %ds, 0x18(%rcx) mov %es, 0x1a(%rcx) mov %fs, 0x1c(%rcx) mov %gs, 0x1e(%rcx) mov %ss, 0x20(%rcx) ret .globl ArchSetDescriptorTableContext ArchSetDescriptorTableContext: sgdt 0x00(%rcx) sidt 0x0a(%rcx) sldt 0x14(%rcx) push 0x16(%rcx) push $SetSegmentRegisters lretq