42
42
/* %rax contains now our new 'base'. */
46
LOCAL(cont0_offset) = LOCAL(cont0) - LOCAL(base)
47
add $LOCAL(cont0_offset), RAX
45
49
add $(LOCAL(cont0) - LOCAL(base)), RAX
57
LOCAL(cont1_offset) = LOCAL(cont1) - LOCAL(base)
58
LOCAL(jump_vector_offset) = LOCAL(jump_vector) - LOCAL(base)
59
LOCAL(gdt_offset) = LOCAL(gdt) - LOCAL(base)
60
LOCAL(gdt_addr_offset) = LOCAL(gdt_addr) - LOCAL(base)
61
LOCAL(gdtdesc_offset) = LOCAL(gdtdesc) - LOCAL(base)
63
lea LOCAL(cont1_offset) (RSI, 1), RAX
64
movl %eax, LOCAL(jump_vector_offset) (RSI, 1)
66
lea LOCAL(gdt_offset) (RSI, 1), RAX
67
mov RAX, (LOCAL(gdt_addr_offset)) (RSI, 1)
69
/* Switch to compatibility mode. */
70
lgdt (LOCAL(gdtdesc_offset)) (RSI, 1)
73
ljmp *(LOCAL(jump_vector_offset)) (RSI, 1)
76
LOCAL(gdtsize) = LOCAL(gdt_end) - LOCAL(gdt)
51
79
lea (LOCAL(cont1) - LOCAL(base)) (RSI, 1), RAX
52
80
movl %eax, (LOCAL(jump_vector) - LOCAL(base)) (RSI, 1)