bios_ia32: for correctness, add clobber memory for asm invlpg.

* generated code is the same for x86_gcc2 and x86_64.
* fixed TRACE build for mmu.cpp.
This commit is contained in:
Jérôme Duval 2014-11-15 20:09:58 +01:00
parent 1d48729397
commit f3e381dd0c

View File

@ -212,7 +212,7 @@ unmap_page(addr_t virtualAddress)
/ (B_PAGE_SIZE * 1024)] & 0xfffff000);
pageTable[(virtualAddress % (B_PAGE_SIZE * 1024)) / B_PAGE_SIZE] = 0;
asm volatile("invlpg (%0)" : : "r" (virtualAddress));
asm volatile("invlpg (%0)" : : "r" (virtualAddress) : "memory");
}
@ -257,7 +257,7 @@ map_page(addr_t virtualAddress, addr_t physicalAddress, uint32 flags)
pageTable[tableEntry] = physicalAddress | flags;
asm volatile("invlpg (%0)" : : "r" (virtualAddress));
asm volatile("invlpg (%0)" : : "r" (virtualAddress) : "memory");
TRACE("map_page: done\n");
}
@ -653,8 +653,9 @@ mmu_init(void)
gKernelArgs.cpu_kstack[0].size = KERNEL_STACK_SIZE
+ KERNEL_STACK_GUARD_PAGES * B_PAGE_SIZE;
TRACE("kernel stack at 0x%lx to 0x%lx\n", gKernelArgs.cpu_kstack[0].start,
gKernelArgs.cpu_kstack[0].start + gKernelArgs.cpu_kstack[0].size);
TRACE("kernel stack at 0x%" B_PRIx64 " to 0x%" B_PRIx64 "\n",
gKernelArgs.cpu_kstack[0].start, gKernelArgs.cpu_kstack[0].start
+ gKernelArgs.cpu_kstack[0].size);
extended_memory *extMemoryBlock;
uint32 extMemoryCount = get_memory_map(&extMemoryBlock);