mc2lib
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Namespaces | Macros | Typedefs
armv7.hpp File Reference
#include <algorithm>
#include <random>
#include <stdexcept>
#include "../cats.hpp"
#include "../compiler.hpp"

Go to the source code of this file.

Classes

class  mc2lib::codegen::armv7::Backend
 
class  mc2lib::codegen::armv7::Backend::Helper
 
class  mc2lib::codegen::armv7::Return
 
class  mc2lib::codegen::armv7::Delay
 
class  mc2lib::codegen::armv7::Read
 
class  mc2lib::codegen::armv7::ReadAddrDp
 
class  mc2lib::codegen::armv7::Write
 
class  mc2lib::codegen::armv7::DMB_ST
 
struct  mc2lib::codegen::armv7::RandomFactory
 

Namespaces

 mc2lib
 
 mc2lib::codegen
 Code generation for memory consistency verification.
 
 mc2lib::codegen::armv7
 Implementations of Operations for ARMv7 (incomplete).
 

Macros

#define ASM_PRELUDE   char *cnext__ = static_cast<char *>(code);
 
#define ASM_LEN   (static_cast<std::size_t>(cnext__ - static_cast<char *>(code)))
 
#define ASM_AT   (start + ASM_LEN)
 
#define ASM16(v)
 
#define ASM_PROLOGUE   return ASM_LEN;
 

Typedefs

typedef Op< Backend, EvtStateCats > mc2lib::codegen::armv7::Operation
 
typedef MemOp< Backend, EvtStateCats > mc2lib::codegen::armv7::MemOperation
 
typedef NullOp< Backend, EvtStateCats > mc2lib::codegen::armv7::NullOperation
 

Macro Definition Documentation

§ ASM16

#define ASM16 (   v)
Value:
do { \
assert(ASM_LEN + 2 <= len); \
*reinterpret_cast<std::uint16_t *>(cnext__) = (v); \
cnext__ += 2; \
} while (0)
#define ASM_LEN
Definition: armv7.hpp:56

§ ASM_AT

#define ASM_AT   (start + ASM_LEN)

§ ASM_LEN

#define ASM_LEN   (static_cast<std::size_t>(cnext__ - static_cast<char *>(code)))

§ ASM_PRELUDE

#define ASM_PRELUDE   char *cnext__ = static_cast<char *>(code);

§ ASM_PROLOGUE

#define ASM_PROLOGUE   return ASM_LEN;