__asm__ __volatile__("movl %%cr4, %0":"=r"(cr4)); 
cr4 = read_cr4(); 
static void efi_call_phys_prelog(void){	unsigned long cr4;	unsigned long temp;	spin_lock(&efi_rt_lock);	local_irq_save(efi_rt_eflags);	/*	 * If I don't have PSE, I should just duplicate two entries in page	 * directory. If I have PSE, I just need to duplicate one entry in	 * page directory.	 */	__asm__ __volatile__("movl %%cr4, %0":"=r"(cr4));	if (cr4 & X86_CR4_PSE) {		efi_bak_pg_dir_pointer[0].pgd =		    swapper_pg_dir[pgd_index(0)].pgd;		swapper_pg_dir[0].pgd =		    swapper_pg_dir[pgd_index(PAGE_OFFSET)].pgd;	} else {		efi_bak_pg_dir_pointer[0].pgd =		    swapper_pg_dir[pgd_index(0)].pgd;		efi_bak_pg_dir_pointer[1].pgd =		    swapper_pg_dir[pgd_index(0x400000)].pgd;		swapper_pg_dir[pgd_index(0)].pgd =		    swapper_pg_dir[pgd_index(PAGE_OFFSET)].pgd;		temp = PAGE_OFFSET + 0x400000;		swapper_pg_dir[pgd_index(0x400000)].pgd =		    swapper_pg_dir[pgd_index(temp)].pgd;	}	/*	 * After the lock is released, the original page table is restored.	 */	local_flush_tlb();	cpu_gdt_descr[0].address = __pa(cpu_gdt_descr[0].address);	__asm__ __volatile__("lgdt %0":"=m"			    (*(struct Xgt_desc_struct *) __pa(&cpu_gdt_descr[0])));}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/4bb0d3ec3e5b1e9e2399cdc641b3b6521ac9cdaa/efi.c/clean/arch/i386/kernel/efi.c