add: panic("out of page table entries! (you would think this could not happen in a boot loader...)\n");
context: map_page(void *virtualAddress, void *physicalAddress, uint8 mode){	uint32 virtualSegmentID = get_sr(virtualAddress) & 0xffffff;	uint32 hash = page_table_entry::PrimaryHash(virtualSegmentID, (uint32)virtualAddress);	page_table_entry_group *group = &sPageTable[hash & sPageTableHashMask];	for (int32 i = 0; i < 8; i++) {		// 8 entries in a group		if (group->entry[i].valid)			continue;		fill_page_table_entry(&group->entry[i], virtualSegmentID, virtualAddress, physicalAddress, mode, false);		return;	}	hash = page_table_entry::SecondaryHash(hash);	group = &sPageTable[hash & sPageTableHashMask];	for (int32 i = 0; i < 8; i++) {		if (group->entry[i].valid)			continue;		fill_page_table_entry(&group->entry[i], virtualSegmentID, virtualAddress, physicalAddress, mode, true);		return;	}}