mirror of
https://github.com/corda/corda.git
synced 2025-01-21 03:55:00 +00:00
break Architecture out of Assembler
This commit is contained in:
parent
56625b89d8
commit
4c8b593539
137
include/avian/vm/codegen/architecture.h
Normal file
137
include/avian/vm/codegen/architecture.h
Normal file
@ -0,0 +1,137 @@
|
|||||||
|
/* Copyright (c) 2008-2012, Avian Contributors
|
||||||
|
|
||||||
|
Permission to use, copy, modify, and/or distribute this software
|
||||||
|
for any purpose with or without fee is hereby granted, provided
|
||||||
|
that the above copyright notice and this permission notice appear
|
||||||
|
in all copies.
|
||||||
|
|
||||||
|
There is NO WARRANTY for this software. See license.txt for
|
||||||
|
details. */
|
||||||
|
|
||||||
|
#ifndef AVIAN_CODEGEN_ARCHITECTURE_H
|
||||||
|
#define AVIAN_CODEGEN_ARCHITECTURE_H
|
||||||
|
|
||||||
|
namespace vm {
|
||||||
|
class Allocator;
|
||||||
|
class Zone;
|
||||||
|
}
|
||||||
|
|
||||||
|
namespace avian {
|
||||||
|
namespace codegen {
|
||||||
|
|
||||||
|
class Assembler;
|
||||||
|
|
||||||
|
class RegisterFile;
|
||||||
|
|
||||||
|
class OperandMask {
|
||||||
|
public:
|
||||||
|
uint8_t typeMask;
|
||||||
|
uint64_t registerMask;
|
||||||
|
|
||||||
|
OperandMask(uint8_t typeMask, uint64_t registerMask):
|
||||||
|
typeMask(typeMask),
|
||||||
|
registerMask(registerMask)
|
||||||
|
{ }
|
||||||
|
|
||||||
|
OperandMask():
|
||||||
|
typeMask(~0),
|
||||||
|
registerMask(~static_cast<uint64_t>(0))
|
||||||
|
{ }
|
||||||
|
};
|
||||||
|
|
||||||
|
class Architecture {
|
||||||
|
public:
|
||||||
|
virtual unsigned floatRegisterSize() = 0;
|
||||||
|
|
||||||
|
virtual const RegisterFile* registerFile() = 0;
|
||||||
|
|
||||||
|
virtual int scratch() = 0;
|
||||||
|
virtual int stack() = 0;
|
||||||
|
virtual int thread() = 0;
|
||||||
|
virtual int returnLow() = 0;
|
||||||
|
virtual int returnHigh() = 0;
|
||||||
|
virtual int virtualCallTarget() = 0;
|
||||||
|
virtual int virtualCallIndex() = 0;
|
||||||
|
|
||||||
|
virtual bool bigEndian() = 0;
|
||||||
|
|
||||||
|
virtual uintptr_t maximumImmediateJump() = 0;
|
||||||
|
|
||||||
|
virtual bool alwaysCondensed(lir::BinaryOperation op) = 0;
|
||||||
|
virtual bool alwaysCondensed(lir::TernaryOperation op) = 0;
|
||||||
|
|
||||||
|
virtual bool reserved(int register_) = 0;
|
||||||
|
|
||||||
|
virtual unsigned frameFootprint(unsigned footprint) = 0;
|
||||||
|
virtual unsigned argumentFootprint(unsigned footprint) = 0;
|
||||||
|
virtual bool argumentAlignment() = 0;
|
||||||
|
virtual bool argumentRegisterAlignment() = 0;
|
||||||
|
virtual unsigned argumentRegisterCount() = 0;
|
||||||
|
virtual int argumentRegister(unsigned index) = 0;
|
||||||
|
|
||||||
|
virtual bool hasLinkRegister() = 0;
|
||||||
|
|
||||||
|
virtual unsigned stackAlignmentInWords() = 0;
|
||||||
|
|
||||||
|
virtual bool matchCall(void* returnAddress, void* target) = 0;
|
||||||
|
|
||||||
|
virtual void updateCall(lir::UnaryOperation op, void* returnAddress,
|
||||||
|
void* newTarget) = 0;
|
||||||
|
|
||||||
|
virtual void setConstant(void* dst, uint64_t constant) = 0;
|
||||||
|
|
||||||
|
virtual unsigned alignFrameSize(unsigned sizeInWords) = 0;
|
||||||
|
|
||||||
|
virtual void nextFrame(void* start, unsigned size, unsigned footprint,
|
||||||
|
void* link, bool mostRecent,
|
||||||
|
unsigned targetParameterFootprint, void** ip,
|
||||||
|
void** stack) = 0;
|
||||||
|
virtual void* frameIp(void* stack) = 0;
|
||||||
|
virtual unsigned frameHeaderSize() = 0;
|
||||||
|
virtual unsigned frameReturnAddressSize() = 0;
|
||||||
|
virtual unsigned frameFooterSize() = 0;
|
||||||
|
virtual int returnAddressOffset() = 0;
|
||||||
|
virtual int framePointerOffset() = 0;
|
||||||
|
|
||||||
|
virtual void plan
|
||||||
|
(lir::UnaryOperation op,
|
||||||
|
unsigned aSize, OperandMask& aMask,
|
||||||
|
bool* thunk) = 0;
|
||||||
|
|
||||||
|
virtual void planSource
|
||||||
|
(lir::BinaryOperation op,
|
||||||
|
unsigned aSize, OperandMask& aMask,
|
||||||
|
unsigned bSize, bool* thunk) = 0;
|
||||||
|
|
||||||
|
virtual void planDestination
|
||||||
|
(lir::BinaryOperation op,
|
||||||
|
unsigned aSize, const OperandMask& aMask,
|
||||||
|
unsigned bSize, OperandMask& bMask) = 0;
|
||||||
|
|
||||||
|
virtual void planMove
|
||||||
|
(unsigned size, OperandMask& src,
|
||||||
|
OperandMask& tmp,
|
||||||
|
const OperandMask& dst) = 0;
|
||||||
|
|
||||||
|
virtual void planSource
|
||||||
|
(lir::TernaryOperation op,
|
||||||
|
unsigned aSize, OperandMask& aMask,
|
||||||
|
unsigned bSize, OperandMask& bMask,
|
||||||
|
unsigned cSize, bool* thunk) = 0;
|
||||||
|
|
||||||
|
virtual void planDestination
|
||||||
|
(lir::TernaryOperation op,
|
||||||
|
unsigned aSize, const OperandMask& aMask,
|
||||||
|
unsigned bSize, const OperandMask& bMask,
|
||||||
|
unsigned cSize, OperandMask& cMask) = 0;
|
||||||
|
|
||||||
|
virtual Assembler* makeAssembler(vm::Allocator*, vm::Zone*) = 0;
|
||||||
|
|
||||||
|
virtual void acquire() = 0;
|
||||||
|
virtual void release() = 0;
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace codegen
|
||||||
|
} // namespace avian
|
||||||
|
|
||||||
|
#endif // AVIAN_CODEGEN_ARCHITECTURE_H
|
@ -20,7 +20,7 @@
|
|||||||
namespace avian {
|
namespace avian {
|
||||||
namespace codegen {
|
namespace codegen {
|
||||||
|
|
||||||
class RegisterFile;
|
class Architecture;
|
||||||
|
|
||||||
class OperandInfo {
|
class OperandInfo {
|
||||||
public:
|
public:
|
||||||
@ -35,22 +35,6 @@ public:
|
|||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
class OperandMask {
|
|
||||||
public:
|
|
||||||
uint8_t typeMask;
|
|
||||||
uint64_t registerMask;
|
|
||||||
|
|
||||||
OperandMask(uint8_t typeMask, uint64_t registerMask):
|
|
||||||
typeMask(typeMask),
|
|
||||||
registerMask(registerMask)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
OperandMask():
|
|
||||||
typeMask(~0),
|
|
||||||
registerMask(~static_cast<uint64_t>(0))
|
|
||||||
{ }
|
|
||||||
};
|
|
||||||
|
|
||||||
#ifdef AVIAN_TAILS
|
#ifdef AVIAN_TAILS
|
||||||
const bool TailCalls = true;
|
const bool TailCalls = true;
|
||||||
#else
|
#else
|
||||||
@ -80,98 +64,6 @@ class Assembler {
|
|||||||
virtual unsigned resolve(unsigned start, Block* next) = 0;
|
virtual unsigned resolve(unsigned start, Block* next) = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
class Architecture {
|
|
||||||
public:
|
|
||||||
virtual unsigned floatRegisterSize() = 0;
|
|
||||||
|
|
||||||
virtual const RegisterFile* registerFile() = 0;
|
|
||||||
|
|
||||||
virtual int scratch() = 0;
|
|
||||||
virtual int stack() = 0;
|
|
||||||
virtual int thread() = 0;
|
|
||||||
virtual int returnLow() = 0;
|
|
||||||
virtual int returnHigh() = 0;
|
|
||||||
virtual int virtualCallTarget() = 0;
|
|
||||||
virtual int virtualCallIndex() = 0;
|
|
||||||
|
|
||||||
virtual bool bigEndian() = 0;
|
|
||||||
|
|
||||||
virtual uintptr_t maximumImmediateJump() = 0;
|
|
||||||
|
|
||||||
virtual bool alwaysCondensed(lir::BinaryOperation op) = 0;
|
|
||||||
virtual bool alwaysCondensed(lir::TernaryOperation op) = 0;
|
|
||||||
|
|
||||||
virtual bool reserved(int register_) = 0;
|
|
||||||
|
|
||||||
virtual unsigned frameFootprint(unsigned footprint) = 0;
|
|
||||||
virtual unsigned argumentFootprint(unsigned footprint) = 0;
|
|
||||||
virtual bool argumentAlignment() = 0;
|
|
||||||
virtual bool argumentRegisterAlignment() = 0;
|
|
||||||
virtual unsigned argumentRegisterCount() = 0;
|
|
||||||
virtual int argumentRegister(unsigned index) = 0;
|
|
||||||
|
|
||||||
virtual bool hasLinkRegister() = 0;
|
|
||||||
|
|
||||||
virtual unsigned stackAlignmentInWords() = 0;
|
|
||||||
|
|
||||||
virtual bool matchCall(void* returnAddress, void* target) = 0;
|
|
||||||
|
|
||||||
virtual void updateCall(lir::UnaryOperation op, void* returnAddress,
|
|
||||||
void* newTarget) = 0;
|
|
||||||
|
|
||||||
virtual void setConstant(void* dst, uint64_t constant) = 0;
|
|
||||||
|
|
||||||
virtual unsigned alignFrameSize(unsigned sizeInWords) = 0;
|
|
||||||
|
|
||||||
virtual void nextFrame(void* start, unsigned size, unsigned footprint,
|
|
||||||
void* link, bool mostRecent,
|
|
||||||
unsigned targetParameterFootprint, void** ip,
|
|
||||||
void** stack) = 0;
|
|
||||||
virtual void* frameIp(void* stack) = 0;
|
|
||||||
virtual unsigned frameHeaderSize() = 0;
|
|
||||||
virtual unsigned frameReturnAddressSize() = 0;
|
|
||||||
virtual unsigned frameFooterSize() = 0;
|
|
||||||
virtual int returnAddressOffset() = 0;
|
|
||||||
virtual int framePointerOffset() = 0;
|
|
||||||
|
|
||||||
virtual void plan
|
|
||||||
(lir::UnaryOperation op,
|
|
||||||
unsigned aSize, OperandMask& aMask,
|
|
||||||
bool* thunk) = 0;
|
|
||||||
|
|
||||||
virtual void planSource
|
|
||||||
(lir::BinaryOperation op,
|
|
||||||
unsigned aSize, OperandMask& aMask,
|
|
||||||
unsigned bSize, bool* thunk) = 0;
|
|
||||||
|
|
||||||
virtual void planDestination
|
|
||||||
(lir::BinaryOperation op,
|
|
||||||
unsigned aSize, const OperandMask& aMask,
|
|
||||||
unsigned bSize, OperandMask& bMask) = 0;
|
|
||||||
|
|
||||||
virtual void planMove
|
|
||||||
(unsigned size, OperandMask& src,
|
|
||||||
OperandMask& tmp,
|
|
||||||
const OperandMask& dst) = 0;
|
|
||||||
|
|
||||||
virtual void planSource
|
|
||||||
(lir::TernaryOperation op,
|
|
||||||
unsigned aSize, OperandMask& aMask,
|
|
||||||
unsigned bSize, OperandMask& bMask,
|
|
||||||
unsigned cSize, bool* thunk) = 0;
|
|
||||||
|
|
||||||
virtual void planDestination
|
|
||||||
(lir::TernaryOperation op,
|
|
||||||
unsigned aSize, const OperandMask& aMask,
|
|
||||||
unsigned bSize, const OperandMask& bMask,
|
|
||||||
unsigned cSize, OperandMask& cMask) = 0;
|
|
||||||
|
|
||||||
virtual Assembler* makeAssembler(vm::Allocator*, vm::Zone*) = 0;
|
|
||||||
|
|
||||||
virtual void acquire() = 0;
|
|
||||||
virtual void release() = 0;
|
|
||||||
};
|
|
||||||
|
|
||||||
virtual void setClient(Client* client) = 0;
|
virtual void setClient(Client* client) = 0;
|
||||||
|
|
||||||
virtual Architecture* arch() = 0;
|
virtual Architecture* arch() = 0;
|
||||||
|
@ -11,16 +11,20 @@
|
|||||||
#ifndef AVIAN_CODEGEN_TARGETS_H
|
#ifndef AVIAN_CODEGEN_TARGETS_H
|
||||||
#define AVIAN_CODEGEN_TARGETS_H
|
#define AVIAN_CODEGEN_TARGETS_H
|
||||||
|
|
||||||
#include <avian/vm/codegen/assembler.h>
|
namespace vm {
|
||||||
|
class System;
|
||||||
|
}
|
||||||
|
|
||||||
namespace avian {
|
namespace avian {
|
||||||
namespace codegen {
|
namespace codegen {
|
||||||
|
|
||||||
Assembler::Architecture* makeArchitectureNative(vm::System* system, bool useNativeFeatures);
|
class Architecture;
|
||||||
|
|
||||||
Assembler::Architecture* makeArchitectureX86(vm::System* system, bool useNativeFeatures);
|
Architecture* makeArchitectureNative(vm::System* system, bool useNativeFeatures);
|
||||||
Assembler::Architecture* makeArchitectureArm(vm::System* system, bool useNativeFeatures);
|
|
||||||
Assembler::Architecture* makeArchitecturePowerpc(vm::System* system, bool useNativeFeatures);
|
Architecture* makeArchitectureX86(vm::System* system, bool useNativeFeatures);
|
||||||
|
Architecture* makeArchitectureArm(vm::System* system, bool useNativeFeatures);
|
||||||
|
Architecture* makeArchitecturePowerpc(vm::System* system, bool useNativeFeatures);
|
||||||
|
|
||||||
} // namespace codegen
|
} // namespace codegen
|
||||||
} // namespace avian
|
} // namespace avian
|
||||||
|
@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
#include <avian/vm/codegen/compiler.h>
|
#include <avian/vm/codegen/compiler.h>
|
||||||
#include <avian/vm/codegen/assembler.h>
|
#include <avian/vm/codegen/assembler.h>
|
||||||
|
#include <avian/vm/codegen/architecture.h>
|
||||||
#include <avian/vm/codegen/promise.h>
|
#include <avian/vm/codegen/promise.h>
|
||||||
|
|
||||||
#include "codegen/compiler/regalloc.h"
|
#include "codegen/compiler/regalloc.h"
|
||||||
|
@ -11,6 +11,8 @@
|
|||||||
#include "codegen/compiler/context.h"
|
#include "codegen/compiler/context.h"
|
||||||
#include "codegen/compiler/resource.h"
|
#include "codegen/compiler/resource.h"
|
||||||
|
|
||||||
|
#include <avian/vm/codegen/architecture.h>
|
||||||
|
|
||||||
namespace avian {
|
namespace avian {
|
||||||
namespace codegen {
|
namespace codegen {
|
||||||
namespace compiler {
|
namespace compiler {
|
||||||
|
@ -75,7 +75,7 @@ class Context {
|
|||||||
|
|
||||||
vm::System* system;
|
vm::System* system;
|
||||||
Assembler* assembler;
|
Assembler* assembler;
|
||||||
Assembler::Architecture* arch;
|
Architecture* arch;
|
||||||
vm::Zone* zone;
|
vm::Zone* zone;
|
||||||
Compiler::Client* client;
|
Compiler::Client* client;
|
||||||
Stack* stack;
|
Stack* stack;
|
||||||
|
@ -13,6 +13,8 @@
|
|||||||
#include "codegen/compiler/context.h"
|
#include "codegen/compiler/context.h"
|
||||||
#include "codegen/compiler/frame.h"
|
#include "codegen/compiler/frame.h"
|
||||||
|
|
||||||
|
#include <avian/vm/codegen/architecture.h>
|
||||||
|
|
||||||
namespace avian {
|
namespace avian {
|
||||||
namespace codegen {
|
namespace codegen {
|
||||||
namespace compiler {
|
namespace compiler {
|
||||||
|
@ -11,6 +11,8 @@
|
|||||||
#ifndef AVIAN_CODEGEN_COMPILER_SITE_H
|
#ifndef AVIAN_CODEGEN_COMPILER_SITE_H
|
||||||
#define AVIAN_CODEGEN_COMPILER_SITE_H
|
#define AVIAN_CODEGEN_COMPILER_SITE_H
|
||||||
|
|
||||||
|
#include <avian/vm/codegen/architecture.h>
|
||||||
|
|
||||||
#include "codegen/compiler/value.h"
|
#include "codegen/compiler/value.h"
|
||||||
#include "codegen/compiler/context.h"
|
#include "codegen/compiler/context.h"
|
||||||
|
|
||||||
|
@ -11,6 +11,7 @@
|
|||||||
#include <avian/util/runtime-array.h>
|
#include <avian/util/runtime-array.h>
|
||||||
|
|
||||||
#include <avian/vm/codegen/assembler.h>
|
#include <avian/vm/codegen/assembler.h>
|
||||||
|
#include <avian/vm/codegen/architecture.h>
|
||||||
#include <avian/vm/codegen/registers.h>
|
#include <avian/vm/codegen/registers.h>
|
||||||
|
|
||||||
#include "context.h"
|
#include "context.h"
|
||||||
@ -136,7 +137,7 @@ nextFrame(ArchitectureContext* con, uint32_t* start, unsigned size UNUSED,
|
|||||||
*stack = static_cast<void**>(*stack) + offset;
|
*stack = static_cast<void**>(*stack) + offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
class MyArchitecture: public Assembler::Architecture {
|
class MyArchitecture: public Architecture {
|
||||||
public:
|
public:
|
||||||
MyArchitecture(System* system): con(system), referenceCount(0) {
|
MyArchitecture(System* system): con(system), referenceCount(0) {
|
||||||
populateTables(&con);
|
populateTables(&con);
|
||||||
@ -950,7 +951,7 @@ Assembler* MyArchitecture::makeAssembler(Allocator* allocator, Zone* zone) {
|
|||||||
|
|
||||||
} // namespace arm
|
} // namespace arm
|
||||||
|
|
||||||
Assembler::Architecture*
|
Architecture*
|
||||||
makeArchitectureArm(System* system, bool)
|
makeArchitectureArm(System* system, bool)
|
||||||
{
|
{
|
||||||
return new (allocate(system, sizeof(arm::MyArchitecture))) arm::MyArchitecture(system);
|
return new (allocate(system, sizeof(arm::MyArchitecture))) arm::MyArchitecture(system);
|
||||||
|
@ -9,6 +9,7 @@
|
|||||||
details. */
|
details. */
|
||||||
|
|
||||||
#include <avian/vm/codegen/assembler.h>
|
#include <avian/vm/codegen/assembler.h>
|
||||||
|
#include <avian/vm/codegen/architecture.h>
|
||||||
#include <avian/vm/codegen/registers.h>
|
#include <avian/vm/codegen/registers.h>
|
||||||
|
|
||||||
#include "alloc-vector.h"
|
#include "alloc-vector.h"
|
||||||
@ -235,7 +236,7 @@ nextFrame(ArchitectureContext* c UNUSED, int32_t* start, unsigned size,
|
|||||||
*stack = static_cast<void**>(*stack) + offset;
|
*stack = static_cast<void**>(*stack) + offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
class MyArchitecture: public Assembler::Architecture {
|
class MyArchitecture: public Architecture {
|
||||||
public:
|
public:
|
||||||
MyArchitecture(System* system): c(system), referenceCount(0) {
|
MyArchitecture(System* system): c(system), referenceCount(0) {
|
||||||
populateTables(&c);
|
populateTables(&c);
|
||||||
@ -996,7 +997,7 @@ Assembler* MyArchitecture::makeAssembler(Allocator* allocator, Zone* zone) {
|
|||||||
|
|
||||||
} // namespace powerpc
|
} // namespace powerpc
|
||||||
|
|
||||||
Assembler::Architecture*
|
Architecture*
|
||||||
makeArchitecturePowerpc(System* system, bool)
|
makeArchitecturePowerpc(System* system, bool)
|
||||||
{
|
{
|
||||||
return new (allocate(system, sizeof(powerpc::MyArchitecture))) powerpc::MyArchitecture(system);
|
return new (allocate(system, sizeof(powerpc::MyArchitecture))) powerpc::MyArchitecture(system);
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include <avian/util/math.h>
|
#include <avian/util/math.h>
|
||||||
|
|
||||||
#include <avian/vm/codegen/assembler.h>
|
#include <avian/vm/codegen/assembler.h>
|
||||||
|
#include <avian/vm/codegen/architecture.h>
|
||||||
#include <avian/vm/codegen/registers.h>
|
#include <avian/vm/codegen/registers.h>
|
||||||
#include <avian/vm/codegen/lir.h>
|
#include <avian/vm/codegen/lir.h>
|
||||||
#include <avian/vm/codegen/promise.h>
|
#include <avian/vm/codegen/promise.h>
|
||||||
@ -147,7 +148,7 @@ nextFrame(ArchitectureContext* c UNUSED, uint8_t* start, unsigned size UNUSED,
|
|||||||
*stack = static_cast<void**>(*stack) + offset;
|
*stack = static_cast<void**>(*stack) + offset;
|
||||||
}
|
}
|
||||||
|
|
||||||
class MyArchitecture: public Assembler::Architecture {
|
class MyArchitecture: public Architecture {
|
||||||
public:
|
public:
|
||||||
MyArchitecture(System* system, bool useNativeFeatures):
|
MyArchitecture(System* system, bool useNativeFeatures):
|
||||||
c(system, useNativeFeatures),
|
c(system, useNativeFeatures),
|
||||||
@ -1148,7 +1149,7 @@ Assembler* MyArchitecture::makeAssembler(Allocator* allocator, Zone* zone) {
|
|||||||
|
|
||||||
} // namespace x86
|
} // namespace x86
|
||||||
|
|
||||||
Assembler::Architecture* makeArchitectureX86(System* system, bool useNativeFeatures)
|
Architecture* makeArchitectureX86(System* system, bool useNativeFeatures)
|
||||||
{
|
{
|
||||||
return new (allocate(system, sizeof(x86::MyArchitecture)))
|
return new (allocate(system, sizeof(x86::MyArchitecture)))
|
||||||
x86::MyArchitecture(system, useNativeFeatures);
|
x86::MyArchitecture(system, useNativeFeatures);
|
||||||
|
@ -8,6 +8,8 @@
|
|||||||
There is NO WARRANTY for this software. See license.txt for
|
There is NO WARRANTY for this software. See license.txt for
|
||||||
details. */
|
details. */
|
||||||
|
|
||||||
|
#include "common.h"
|
||||||
|
|
||||||
#include <avian/vm/codegen/targets.h>
|
#include <avian/vm/codegen/targets.h>
|
||||||
|
|
||||||
#include "environment.h"
|
#include "environment.h"
|
||||||
@ -15,7 +17,7 @@
|
|||||||
namespace avian {
|
namespace avian {
|
||||||
namespace codegen {
|
namespace codegen {
|
||||||
|
|
||||||
Assembler::Architecture* makeArchitectureNative(vm::System* system, bool useNativeFeatures UNUSED) {
|
Architecture* makeArchitectureNative(vm::System* system, bool useNativeFeatures UNUSED) {
|
||||||
#ifndef AVIAN_TARGET_ARCH
|
#ifndef AVIAN_TARGET_ARCH
|
||||||
#error "Must specify native target!"
|
#error "Must specify native target!"
|
||||||
#endif
|
#endif
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#include "arch.h"
|
#include "arch.h"
|
||||||
|
|
||||||
#include <avian/vm/codegen/assembler.h>
|
#include <avian/vm/codegen/assembler.h>
|
||||||
|
#include <avian/vm/codegen/architecture.h>
|
||||||
#include <avian/vm/codegen/compiler.h>
|
#include <avian/vm/codegen/compiler.h>
|
||||||
#include <avian/vm/codegen/targets.h>
|
#include <avian/vm/codegen/targets.h>
|
||||||
|
|
||||||
@ -294,7 +295,7 @@ class MyThread: public Thread {
|
|||||||
void** thunkTable;
|
void** thunkTable;
|
||||||
CallTrace* trace;
|
CallTrace* trace;
|
||||||
Reference* reference;
|
Reference* reference;
|
||||||
avian::codegen::Assembler::Architecture* arch;
|
avian::codegen::Architecture* arch;
|
||||||
Context* transition;
|
Context* transition;
|
||||||
TraceContext* traceContext;
|
TraceContext* traceContext;
|
||||||
uintptr_t stackLimit;
|
uintptr_t stackLimit;
|
||||||
|
@ -31,7 +31,7 @@ class BasicEnv {
|
|||||||
public:
|
public:
|
||||||
System* s;
|
System* s;
|
||||||
Heap* heap;
|
Heap* heap;
|
||||||
Assembler::Architecture* arch;
|
Architecture* arch;
|
||||||
|
|
||||||
BasicEnv():
|
BasicEnv():
|
||||||
s(makeSystem(0)),
|
s(makeSystem(0)),
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#include "target.h"
|
#include "target.h"
|
||||||
|
|
||||||
#include <avian/vm/codegen/assembler.h>
|
#include <avian/vm/codegen/assembler.h>
|
||||||
|
#include <avian/vm/codegen/architecture.h>
|
||||||
#include <avian/vm/codegen/targets.h>
|
#include <avian/vm/codegen/targets.h>
|
||||||
#include <avian/vm/codegen/lir.h>
|
#include <avian/vm/codegen/lir.h>
|
||||||
|
|
||||||
@ -29,7 +30,7 @@ class BasicEnv {
|
|||||||
public:
|
public:
|
||||||
System* s;
|
System* s;
|
||||||
Heap* heap;
|
Heap* heap;
|
||||||
Assembler::Architecture* arch;
|
Architecture* arch;
|
||||||
|
|
||||||
BasicEnv():
|
BasicEnv():
|
||||||
s(makeSystem(0)),
|
s(makeSystem(0)),
|
||||||
|
Loading…
Reference in New Issue
Block a user