openMSX
Classes | Namespaces | Macros | Enumerations | Variables
CPUCore.cc File Reference
#include "CPUCore.hh"
#include "MSXCPUInterface.hh"
#include "Scheduler.hh"
#include "MSXMotherBoard.hh"
#include "MSXCliComm.hh"
#include "TclCallback.hh"
#include "Dasm.hh"
#include "Z80.hh"
#include "R800.hh"
#include "Thread.hh"
#include "endian.hh"
#include "inline.hh"
#include "narrow.hh"
#include "unreachable.hh"
#include "xrange.hh"
#include <array>
#include <bit>
#include <cassert>
#include <iostream>
#include <type_traits>
Include dependency graph for CPUCore.cc:

Go to the source code of this file.

Classes

struct  openmsx::Table
 
struct  openmsx::CondC
 
struct  openmsx::CondNC
 
struct  openmsx::CondZ
 
struct  openmsx::CondNZ
 
struct  openmsx::CondM
 
struct  openmsx::CondP
 
struct  openmsx::CondPE
 
struct  openmsx::CondPO
 
struct  openmsx::CondTrue
 

Namespaces

namespace  openmsx
 This file implemented 3 utility functions:
 

Macros

#define MAYBE_UNUSED_LABEL   [[maybe_unused]]
 
#define NEXT
 
#define NEXT_STOP
 
#define NEXT_EI
 
#define CASE(X)   case 0x##X:
 

Enumerations

enum  openmsx::Reg8 : int {
  openmsx::F , openmsx::B , openmsx::C , openmsx::D = 8 ,
  openmsx::E = 4 , openmsx::H , openmsx::L , openmsx::IXH ,
  openmsx::IXL , openmsx::IYH , openmsx::IYL , openmsx::REG_I ,
  openmsx::REG_R , openmsx::DUMMY
}
 
enum  openmsx::Reg16 : int {
  openmsx::AF , openmsx::BC , openmsx::DE , openmsx::HL ,
  openmsx::IX , openmsx::IY , openmsx::SP
}
 

Variables

 openmsx::CPUCore< Z80TYPE >
 
 openmsx::CPUCore< R800TYPE >
 

Macro Definition Documentation

◆ CASE

#define CASE (   X)    case 0x##X:

◆ MAYBE_UNUSED_LABEL

#define MAYBE_UNUSED_LABEL   [[maybe_unused]]

Definition at line 208 of file CPUCore.cc.

◆ NEXT

#define NEXT
Value:
setPC(getPC() + ii.length); \
T::add(ii.cycles); \
T::R800Refresh(*this); \
if (!T::limitReached()) [[likely]] { \
goto start; \
} \
return;

◆ NEXT_EI

#define NEXT_EI
Value:
setPC(getPC() + ii.length); \
T::add(ii.cycles); \
/* !! NO T::R800Refresh(*this); !! */ \
assert(T::limitReached()); \
return;

◆ NEXT_STOP

#define NEXT_STOP
Value:
setPC(getPC() + ii.length); \
T::add(ii.cycles); \
T::R800Refresh(*this); \
assert(T::limitReached()); \
return;