static void hlt(void)
{
	__builtin_hlt();
}

typedef __builtin_msr_t msr_t;

static msr_t rdmsr(unsigned long index)
{
	return __builtin_rdmsr(index);
}

static void wrmsr(unsigned long index, msr_t msr)
{
	__builtin_wrmsr(index, msr.lo, msr.hi);
}

static void main(void)
{
	msr_t msr;
	msr = rdmsr(0x1234);
	msr.lo &= ~(1<<5);
	wrmsr(0x1234, msr);
}