Disable JIT for now
This commit is contained in:
parent
acf652595c
commit
3e0fcc904e
100
src/simulation/elements/TEST.cpp
Normal file
100
src/simulation/elements/TEST.cpp
Normal file
@ -0,0 +1,100 @@
|
|||||||
|
#include "simulation/Elements.h"
|
||||||
|
#include "virtualmachine/VirtualMachine.h"
|
||||||
|
//#TPT-Directive ElementClass Element_TEST PT_TEST 255
|
||||||
|
static vm::VirtualMachine * vMachine;
|
||||||
|
Element_TEST::Element_TEST()
|
||||||
|
{
|
||||||
|
Identifier = "DEFAULT_PT_TEST";
|
||||||
|
Name = "TEST";
|
||||||
|
Colour = PIXPACK(0x407020);
|
||||||
|
MenuVisible = 1;
|
||||||
|
MenuSection = SC_POWDERS;
|
||||||
|
Enabled = 1;
|
||||||
|
|
||||||
|
Advection = 0.4f;
|
||||||
|
AirDrag = 0.01f * CFDS;
|
||||||
|
AirLoss = 0.99f;
|
||||||
|
Loss = 0.95f;
|
||||||
|
Collision = 0.0f;
|
||||||
|
Gravity = 0.4f;
|
||||||
|
Diffusion = 0.00f;
|
||||||
|
HotAir = 0.000f * CFDS;
|
||||||
|
Falldown = 1;
|
||||||
|
|
||||||
|
Flammable = 0;
|
||||||
|
Explosive = 0;
|
||||||
|
Meltable = 0;
|
||||||
|
Hardness = 0;
|
||||||
|
|
||||||
|
Weight = 90;
|
||||||
|
|
||||||
|
Temperature = R_TEMP+4.0f +273.15f;
|
||||||
|
HeatConduct = 251;
|
||||||
|
Description = "Heavy particles. Fissile. Generates neutrons under pressure.";
|
||||||
|
|
||||||
|
State = ST_SOLID;
|
||||||
|
Properties = TYPE_PART|PROP_NEUTPENETRATE|PROP_RADIOACTIVE;
|
||||||
|
|
||||||
|
LowPressure = IPL;
|
||||||
|
LowPressureTransition = NT;
|
||||||
|
HighPressure = IPH;
|
||||||
|
HighPressureTransition = NT;
|
||||||
|
LowTemperature = ITL;
|
||||||
|
LowTemperatureTransition = NT;
|
||||||
|
HighTemperature = ITH;
|
||||||
|
HighTemperatureTransition = NT;
|
||||||
|
|
||||||
|
|
||||||
|
vMachine = new vm::VirtualMachine(2);
|
||||||
|
vMachine->LoadProgram("test.qvm");
|
||||||
|
//if(vMachine->Compile())
|
||||||
|
/*{
|
||||||
|
Update = &Element_TEST::updateCompiled;
|
||||||
|
}
|
||||||
|
else*/
|
||||||
|
{
|
||||||
|
Update = &Element_TEST::updateInterpreted;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//#TPT-Directive ElementHeader Element_TEST static int updateCompiled(UPDATE_FUNC_ARGS)
|
||||||
|
int Element_TEST::updateCompiled(UPDATE_FUNC_ARGS)
|
||||||
|
{
|
||||||
|
//vMachine->CallCompiled(0);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
//#TPT-Directive ElementHeader Element_TEST static int updateInterpreted(UPDATE_FUNC_ARGS)
|
||||||
|
int Element_TEST::updateInterpreted(UPDATE_FUNC_ARGS)
|
||||||
|
{
|
||||||
|
vm::word w;
|
||||||
|
int argAddr = 0, argCount = 5;
|
||||||
|
vMachine->sim = sim;
|
||||||
|
|
||||||
|
/* Set up call. */
|
||||||
|
vMachine->OpPUSH(w); //Pointless null in stack
|
||||||
|
w.int4 = (argCount + 2) * sizeof(vm::word);
|
||||||
|
vMachine->OpENTER(w);
|
||||||
|
argAddr = 8;
|
||||||
|
|
||||||
|
//Arguments
|
||||||
|
w.int4 = i; vMachine->Marshal(argAddr, w); argAddr += 4;
|
||||||
|
w.int4 = x; vMachine->Marshal(argAddr, w); argAddr += 4;
|
||||||
|
w.int4 = y; vMachine->Marshal(argAddr, w); argAddr += 4;
|
||||||
|
w.int4 = nt; vMachine->Marshal(argAddr, w); argAddr += 4;
|
||||||
|
w.int4 = surround_space; vMachine->Marshal(argAddr, w); argAddr += 4;
|
||||||
|
|
||||||
|
w.int4 = 0;
|
||||||
|
vMachine->Push(w);
|
||||||
|
|
||||||
|
vMachine->OpCALL(w);
|
||||||
|
vMachine->Run();
|
||||||
|
w.int4 = (argCount + 2) * sizeof(vm::word);
|
||||||
|
vMachine->OpLEAVE(w);
|
||||||
|
vMachine->OpPOP(w); //Pop pointless null
|
||||||
|
vMachine->End();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Element_TEST::~Element_TEST() {}
|
@ -123,6 +123,7 @@ namespace vm
|
|||||||
int syscall(int programCounter);
|
int syscall(int programCounter);
|
||||||
|
|
||||||
//Used by the JIT
|
//Used by the JIT
|
||||||
|
#ifdef VMJIT
|
||||||
int constant4();
|
int constant4();
|
||||||
int constant1();
|
int constant1();
|
||||||
void emit1(int v);
|
void emit1(int v);
|
||||||
@ -133,9 +134,14 @@ namespace vm
|
|||||||
void emitMovEAXEDI();
|
void emitMovEAXEDI();
|
||||||
bool emitMovEBXEDI(int andit);
|
bool emitMovEBXEDI(int andit);
|
||||||
static int hex(int c);
|
static int hex(int c);
|
||||||
|
#endif
|
||||||
public:
|
public:
|
||||||
|
#ifdef VMJIT
|
||||||
static void callFromCompiled();
|
static void callFromCompiled();
|
||||||
static void callSyscall();
|
static void callSyscall();
|
||||||
|
bool Compile();
|
||||||
|
int CallCompiled(int address);
|
||||||
|
#endif
|
||||||
Simulation * sim;
|
Simulation * sim;
|
||||||
Renderer * ren;
|
Renderer * ren;
|
||||||
|
|
||||||
@ -146,11 +152,9 @@ public:
|
|||||||
VirtualMachine(int hunkMbytes);
|
VirtualMachine(int hunkMbytes);
|
||||||
virtual ~VirtualMachine();
|
virtual ~VirtualMachine();
|
||||||
|
|
||||||
bool Compile();
|
|
||||||
int LoadProgram(char * filename);
|
int LoadProgram(char * filename);
|
||||||
int Run();
|
int Run();
|
||||||
int CallInterpreted(int address);
|
int CallInterpreted(int address);
|
||||||
int CallCompiled(int address);
|
|
||||||
void End();
|
void End();
|
||||||
void Marshal(int address, word element)
|
void Marshal(int address, word element)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user