NOVA User-Level Environment  Version testbox/changed-memory-timing-317-g320d8b5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
instcache.h File Reference

InstructionCache for NovaHalifax. More...

#include "memtlb.h"
#include "insthelper.h"
#include "instructions.h"
#include "instructions.inc"

Classes

struct  InstructionCacheEntry
 The data that is cached between different runs. More...
class  InstructionCache
 An instruction cache that keeps decoded instructions. More...
struct  InstructionCache::Descriptor

Enumerations

enum  {
  RMTR_eip = MTD_RIP_LEN, RMTR_efl = MTD_RFLAGS, RMTR_cr0 = MTD_CR, RMTR_cr2 = MTD_CR,
  RMTR_cr3 = MTD_CR, RMTR_cr4 = MTD_CR, RMTR_cs = MTD_CS_SS, RMTR_ss = MTD_CS_SS
}
 Reverse MTR mapping. More...
enum  { FAULT_NOERROR, FAULT_RETRY, FAULT_RECALL, FAULT_UNIMPLEMENTED }
 Faults. More...
enum  {
  MRM_EAX = 1 << 8, MRM_REG = 1 << 9, MRM_SIB = 1 << 10, MRM_SS = 1 << 11,
  MRM_DISSHIFT = 12, MRM_DIS08 = 1 << MRM_DISSHIFT, MRM_DIS16 = 2 << MRM_DISSHIFT, MRM_DIS32 = 3 << MRM_DISSHIFT,
  MRM_NOBASE = 1 << 14, MRM_NOINDEX = 1 << 15
}

Detailed Description

InstructionCache for NovaHalifax.

Copyright (C) 2009, Bernhard Kauer bk@vm.nosp@m.mon..nosp@m.org Economic rights: Technische Universitaet Dresden (Germany)

This file is part of Vancouver.

Vancouver is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License version 2 as published by the Free Software Foundation.

Vancouver is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License version 2 for more details.

Enumeration Type Documentation

anonymous enum

Reverse MTR mapping.

Enumerator:
RMTR_eip 
RMTR_efl 
RMTR_cr0 
RMTR_cr2 
RMTR_cr3 
RMTR_cr4 
RMTR_cs 
RMTR_ss 
anonymous enum

Faults.

Enumerator:
FAULT_NOERROR 
FAULT_RETRY 
FAULT_RECALL 
FAULT_UNIMPLEMENTED 
anonymous enum
Enumerator:
MRM_EAX 
MRM_REG 
MRM_SIB 
MRM_SS 
MRM_DISSHIFT 
MRM_DIS08 
MRM_DIS16 
MRM_DIS32 
MRM_NOBASE 
MRM_NOINDEX