because newer gas gives an error on the latter.
/* Load IDT register.
See [IA32-v2a] "LIDT" and [IA32-v3] 5.10. */
idtr_operand = make_idtr_operand (sizeof idt - 1, idt);
- asm volatile ("lidt %0" :: "m" (idtr_operand));
+ asm volatile ("lidt [%0]" :: "r" (&idtr_operand));
/* Initialize intr_names. */
for (i = 0; i < INTR_CNT; i++)
/* Load GDTR, TR. See [IA32-v3] 2.4.1, 2.4.4, 6.2.3. */
gdtr_operand = make_gdtr_operand (sizeof gdt - 1, gdt);
- asm volatile ("lgdt %0" :: "m" (gdtr_operand));
+ asm volatile ("lgdt [%0]" :: "r" (&gdtr_operand));
asm volatile ("ltr %w0" :: "r" (SEL_TSS));
}
\f