v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
bit-field.h File Reference
#include <stdint.h>
#include <algorithm>
#include "src/base/macros.h"
Include dependency graph for bit-field.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  v8::base::BitField< T, shift, size, U >
 
class  v8::base::BitFieldUnion< A, B >
 
class  v8::base::BitSetComputer< T, kBitsPerItem, kBitsPerWord, U >
 

Namespaces

namespace  v8
 
namespace  v8::base
 

Macros

#define DEFINE_BIT_FIELD_RANGE_TYPE(Name, Type, Size, _)
 
#define DEFINE_BIT_RANGES(LIST_MACRO)
 
#define DEFINE_BIT_FIELD_TYPE(Name, Type, Size, RangesName)
 
#define DEFINE_BIT_FIELD_64_TYPE(Name, Type, Size, RangesName)
 
#define DEFINE_BIT_FIELDS(LIST_MACRO)
 
#define DEFINE_BIT_FIELDS_64(LIST_MACRO)
 

Typedefs

template<class T , int shift, int size>
using v8::base::BitField8 = BitField<T, shift, size, uint8_t>
 
template<class T , int shift, int size>
using v8::base::BitField16 = BitField<T, shift, size, uint16_t>
 
template<class T , int shift, int size>
using v8::base::BitField64 = BitField<T, shift, size, uint64_t>
 

Macro Definition Documentation

◆ DEFINE_BIT_FIELD_64_TYPE

#define DEFINE_BIT_FIELD_64_TYPE ( Name,
Type,
Size,
RangesName )
Value:
using Name = base::BitField64<Type, RangesName::k##Name##Start, Size>;

Definition at line 123 of file bit-field.h.

◆ DEFINE_BIT_FIELD_RANGE_TYPE

#define DEFINE_BIT_FIELD_RANGE_TYPE ( Name,
Type,
Size,
_ )
Value:
k##Name##Start, k##Name##End = k##Name##Start + Size - 1,

Definition at line 112 of file bit-field.h.

◆ DEFINE_BIT_FIELD_TYPE

#define DEFINE_BIT_FIELD_TYPE ( Name,
Type,
Size,
RangesName )
Value:
using Name = base::BitField<Type, RangesName::k##Name##Start, Size>;

Definition at line 120 of file bit-field.h.

◆ DEFINE_BIT_FIELDS

#define DEFINE_BIT_FIELDS ( LIST_MACRO)
Value:
DEFINE_BIT_RANGES(LIST_MACRO) \
LIST_MACRO(DEFINE_BIT_FIELD_TYPE, LIST_MACRO##_Ranges)
#define DEFINE_BIT_RANGES(LIST_MACRO)
Definition bit-field.h:115
#define DEFINE_BIT_FIELD_TYPE(Name, Type, Size, RangesName)
Definition bit-field.h:120

Definition at line 126 of file bit-field.h.

◆ DEFINE_BIT_FIELDS_64

#define DEFINE_BIT_FIELDS_64 ( LIST_MACRO)
Value:
DEFINE_BIT_RANGES(LIST_MACRO) \
LIST_MACRO(DEFINE_BIT_FIELD_64_TYPE, LIST_MACRO##_Ranges)
#define DEFINE_BIT_FIELD_64_TYPE(Name, Type, Size, RangesName)
Definition bit-field.h:123

Definition at line 130 of file bit-field.h.

◆ DEFINE_BIT_RANGES

#define DEFINE_BIT_RANGES ( LIST_MACRO)
Value:
struct LIST_MACRO##_Ranges { \
enum { LIST_MACRO(DEFINE_BIT_FIELD_RANGE_TYPE, _) kBitsCount }; \
};
#define DEFINE_BIT_FIELD_RANGE_TYPE(Name, Type, Size, _)
Definition bit-field.h:112
#define _

Definition at line 115 of file bit-field.h.