#pragma once
#if ENABLE(B3_JIT)
#include "B3Bank.h"
#include "B3Type.h"
#include "B3Width.h"
namespace JSC { namespace B3 {
template<typename> struct NativeTraits;
template<> struct NativeTraits<int8_t> {
typedef int32_t CanonicalType;
static const Bank bank = GP;
static const Width width = Width8;
static const Type type = Int32;
};
template<> struct NativeTraits<uint8_t> {
typedef int32_t CanonicalType;
static const Bank bank = GP;
static const Width width = Width8;
static const Type type = Int32;
};
template<> struct NativeTraits<int16_t> {
typedef int32_t CanonicalType;
static const Bank bank = GP;
static const Width width = Width16;
static const Type type = Int32;
};
template<> struct NativeTraits<uint16_t> {
typedef int32_t CanonicalType;
static const Bank bank = GP;
static const Width width = Width16;
static const Type type = Int32;
};
template<> struct NativeTraits<int32_t> {
typedef int32_t CanonicalType;
static const Bank bank = GP;
static const Width width = Width32;
static const Type type = Int32;
};
template<> struct NativeTraits<uint32_t> {
typedef int32_t CanonicalType;
static const Bank bank = GP;
static const Width width = Width32;
static const Type type = Int32;
};
template<> struct NativeTraits<int64_t> {
typedef int64_t CanonicalType;
static const Bank bank = GP;
static const Width width = Width64;
static const Type type = Int64;
};
template<> struct NativeTraits<uint64_t> {
typedef int64_t CanonicalType;
static const Bank bank = GP;
static const Width width = Width64;
static const Type type = Int64;
};
template<> struct NativeTraits<float> {
typedef float CanonicalType;
static const Bank bank = FP;
static const Width width = Width32;
static const Type type = Float;
};
template<> struct NativeTraits<double> {
typedef double CanonicalType;
static const Bank bank = FP;
static const Width width = Width64;
static const Type type = Double;
};
} }
#endif // ENABLE(B3_JIT)