"lidt %0\n" : "=m" (curidt)
"lidtq %0\n" : : "m" (curidt)
static void set_idt(void *newidt, u16 limit){	unsigned char curidt[10];	/* x86-64 supports unaliged loads & stores */	(*(u16 *)(curidt)) = limit;	(*(u64 *)(curidt +2)) = (unsigned long)(newidt);	__asm__ __volatile__ (		"lidt %0\n"		: "=m" (curidt)		);};