Fixes to get dhrystone.c to compile and run
This commit is contained in:
parent
4a822facaa
commit
542cb66693
|
@ -0,0 +1,9 @@
|
|||
#ifndef STDBOOL_H
|
||||
#define STDBOOL_H
|
||||
|
||||
#define bool bool
|
||||
#define true true
|
||||
#define false false
|
||||
|
||||
#endif
|
||||
|
|
@ -0,0 +1,96 @@
|
|||
#ifndef STDINT_H
|
||||
#define STDINT_H
|
||||
|
||||
typedef signed char int8_t;
|
||||
typedef short int16_t;
|
||||
typedef long int32_t;
|
||||
|
||||
typedef unsigned char uint8_t;
|
||||
typedef unsigned short uint16_t;
|
||||
typedef unsigned long uint32_t;
|
||||
|
||||
typedef signed char int_least8_t;
|
||||
typedef short int_least16_t;
|
||||
typedef long int_least32_t;
|
||||
|
||||
typedef unsigned char uint_least8_t;
|
||||
typedef unsigned short uint_least16_t;
|
||||
typedef unsigned long uint_least32_t;
|
||||
|
||||
typedef signed char int_fast8_t;
|
||||
typedef short int_fast16_t;
|
||||
typedef long int_fast32_t;
|
||||
|
||||
typedef unsigned char uint_fast8_t;
|
||||
typedef unsigned short uint_fast16_t;
|
||||
typedef unsigned long uint_fast32_t;
|
||||
|
||||
typedef int intptr_t;
|
||||
typedef unsigned int uintptr_t;
|
||||
|
||||
typedef long intmax_t;
|
||||
typedef unsigned long uintmax_t;
|
||||
|
||||
/* LIMIT MACROS */
|
||||
#define INT8_MIN (-0x7f - 1)
|
||||
#define INT16_MIN (-0x7fff - 1)
|
||||
#define INT32_MIN (-0x7fffffffL - 1)
|
||||
|
||||
#define INT8_MAX 0x7f
|
||||
#define INT16_MAX 0x7fff
|
||||
#define INT32_MAX 0x7fffffffL
|
||||
|
||||
#define UINT8_MAX 0xff
|
||||
#define UINT16_MAX 0xffff
|
||||
#define UINT32_MAX 0xffffffffUL
|
||||
|
||||
#define INT_LEAST8_MIN (-0x7f - 1)
|
||||
#define INT_LEAST16_MIN (-0x7fff - 1)
|
||||
#define INT_LEAST32_MIN (-0x7fffffffL - 1)
|
||||
|
||||
#define INT_LEAST8_MAX 0x7f
|
||||
#define INT_LEAST16_MAX 0x7fff
|
||||
#define INT_LEAST32_MAX 0x7fffffffL
|
||||
|
||||
#define UINT_LEAST8_MAX 0xff
|
||||
#define UINT_LEAST16_MAX 0xffff
|
||||
#define UINT_LEAST32_MAX 0xffffffffUL
|
||||
|
||||
#define INT_FAST8_MIN (-0x7f - 1)
|
||||
#define INT_FAST16_MIN (-0x7fff - 1)
|
||||
#define INT_FAST32_MIN (-0x7fffffffL - 1)
|
||||
|
||||
#define INT_FAST8_MAX 0x7f
|
||||
#define INT_FAST16_MAX 0x7fff
|
||||
#define INT_FAST32_MAX 0x7fffffffL
|
||||
|
||||
#define UINT_FAST8_MAX 0xff
|
||||
#define UINT_FAST16_MAX 0xffff
|
||||
#define UINT_FAST32_MAX 0xffffffffUL
|
||||
|
||||
#define INTPTR_MIN (-0x7fff - 1)
|
||||
#define INTPTR_MAX 0x7fff
|
||||
#define UINTPTR_MAX 0xffff
|
||||
|
||||
#define INT8_C(x) (x)
|
||||
#define INT16_C(x) (x)
|
||||
#define INT32_C(x) ((x) + (INT32_MAX - INT32_MAX))
|
||||
|
||||
#define UINT8_C(x) (x)
|
||||
#define UINT16_C(x) (x)
|
||||
#define UINT32_C(x) ((x) + (UINT32_MAX - UINT32_MAX))
|
||||
|
||||
#define INTMAX_C(x) ((x) + (INT32_MAX - INT32_MAX))
|
||||
#define UINTMAX_C(x) ((x) + (UINT32_MAX - UINT32_MAX))
|
||||
|
||||
#define PTRDIFF_MIN INT16_MIN
|
||||
#define PTRDIFF_MAX INT16_MAX
|
||||
|
||||
#define SIZE_MAX UINT16_MAX
|
||||
|
||||
#define INTMAX_MIN (-0x7fffffffL - 1)
|
||||
#define INTMAX_MAX 0x7fffffffL
|
||||
#define UINTMAX_MAX 0xffffffffUL
|
||||
|
||||
|
||||
#endif
|
|
@ -0,0 +1,16 @@
|
|||
#include "time.h"
|
||||
|
||||
clock_t clock(void)
|
||||
{
|
||||
__asm
|
||||
{
|
||||
lda $a2
|
||||
sta accu + 0
|
||||
lda $a1
|
||||
sta accu + 1
|
||||
lda $a0
|
||||
sta accu + 2
|
||||
lda #0
|
||||
sta accu + 3
|
||||
}
|
||||
}
|
|
@ -0,0 +1,12 @@
|
|||
#ifndef TIME_H
|
||||
#define TIME_H
|
||||
|
||||
typedef long clock_t;
|
||||
|
||||
#define CLOCKS_PER_SEC 60L
|
||||
|
||||
clock_t clock(void);
|
||||
|
||||
#pragma compile("time.c")
|
||||
|
||||
#endif
|
|
@ -581,7 +581,7 @@ void NativeCodeDisassembler::Disassemble(FILE* file, const uint8* memory, int st
|
|||
else if (ident)
|
||||
fprintf(file, "%s:\n", ident->mString);
|
||||
|
||||
char tbuffer[10];
|
||||
char tbuffer[10], abuffer[10];
|
||||
|
||||
int ip = start;
|
||||
while (ip < start + size)
|
||||
|
@ -614,17 +614,17 @@ void NativeCodeDisassembler::Disassemble(FILE* file, const uint8* memory, int st
|
|||
break;
|
||||
case ASMIM_ABSOLUTE:
|
||||
addr = memory[ip] + 256 * memory[ip + 1];
|
||||
fprintf(file, "%04x : %02x %02x %02x %s $%04x\n", iip, memory[iip], memory[iip + 1], memory[iip + 2], AsmInstructionNames[d.mType], addr);
|
||||
fprintf(file, "%04x : %02x %02x %02x %s %s\n", iip, memory[iip], memory[iip + 1], memory[iip + 2], AsmInstructionNames[d.mType], AddrName(addr, abuffer, linker));
|
||||
ip += 2;
|
||||
break;
|
||||
case ASMIM_ABSOLUTE_X:
|
||||
addr = memory[ip] + 256 * memory[ip + 1];
|
||||
fprintf(file, "%04x : %02x %02x %02x %s $%04x,x\n", iip, memory[iip], memory[iip + 1], memory[iip + 2], AsmInstructionNames[d.mType], addr);
|
||||
fprintf(file, "%04x : %02x %02x %02x %s %s,x\n", iip, memory[iip], memory[iip + 1], memory[iip + 2], AsmInstructionNames[d.mType], AddrName(addr, abuffer, linker));
|
||||
ip += 2;
|
||||
break;
|
||||
case ASMIM_ABSOLUTE_Y:
|
||||
addr = memory[ip] + 256 * memory[ip + 1];
|
||||
fprintf(file, "%04x : %02x %02x %02x %s $%04x,y\n", iip, memory[iip], memory[iip + 1], memory[iip + 2], AsmInstructionNames[d.mType], addr);
|
||||
fprintf(file, "%04x : %02x %02x %02x %s %s,y\n", iip, memory[iip], memory[iip + 1], memory[iip + 2], AsmInstructionNames[d.mType], AddrName(addr, abuffer, linker));
|
||||
ip += 2;
|
||||
break;
|
||||
case ASMIM_INDIRECT:
|
||||
|
@ -653,6 +653,20 @@ void NativeCodeDisassembler::Disassemble(FILE* file, const uint8* memory, int st
|
|||
|
||||
}
|
||||
|
||||
const char* NativeCodeDisassembler::AddrName(int addr, char* buffer, Linker* linker)
|
||||
{
|
||||
if (linker)
|
||||
{
|
||||
LinkerObject* obj = linker->FindObjectByAddr(addr);
|
||||
if (obj && obj->mIdent)
|
||||
return obj->mIdent->mString;
|
||||
}
|
||||
|
||||
sprintf_s(buffer, 10, "$%04x", addr);
|
||||
return buffer;
|
||||
}
|
||||
|
||||
|
||||
const char* NativeCodeDisassembler::TempName(uint8 tmp, char* buffer, InterCodeProcedure* proc)
|
||||
{
|
||||
if (tmp >= BC_REG_ADDR && tmp <= BC_REG_ADDR + 3)
|
||||
|
|
|
@ -29,6 +29,7 @@ public:
|
|||
void Disassemble(FILE* file, const uint8* memory, int start, int size, InterCodeProcedure* proc, const Ident* ident, Linker* linker);
|
||||
protected:
|
||||
const char* TempName(uint8 tmp, char* buffer, InterCodeProcedure* proc);
|
||||
const char* AddrName(int addr, char* buffer, Linker* linker);
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -65,7 +65,7 @@ void Emulator::DumpCycles(void)
|
|||
}
|
||||
|
||||
printf("Total Cycles %d\n", totalCycles);
|
||||
return;
|
||||
// return;
|
||||
|
||||
for (int i = 0; i < numTops; i++)
|
||||
{
|
||||
|
@ -468,8 +468,24 @@ int Emulator::Emulate(int startIP)
|
|||
mMemory[0x1fe] = 0xff;
|
||||
mMemory[0x1ff] = 0xff;
|
||||
|
||||
int ticks = 0;
|
||||
while (mIP != 0)
|
||||
{
|
||||
ticks++;
|
||||
if (ticks > 4500)
|
||||
{
|
||||
mMemory[0xa2]++;
|
||||
if (!mMemory[0xa2])
|
||||
{
|
||||
mMemory[0xa1]++;
|
||||
if (!mMemory[0xa1])
|
||||
{
|
||||
mMemory[0xa0]++;
|
||||
}
|
||||
}
|
||||
ticks = 0;
|
||||
}
|
||||
|
||||
if (mIP == 0xffd2)
|
||||
{
|
||||
if (mRegA == 13)
|
||||
|
@ -577,7 +593,7 @@ int Emulator::Emulate(int startIP)
|
|||
break;
|
||||
}
|
||||
|
||||
if ((trace & 1) && ip == 0x0821)
|
||||
if ((trace & 1) && ip == 0x081f)
|
||||
{
|
||||
int accu = mMemory[BC_REG_ACCU] + 256 * mMemory[BC_REG_ACCU + 1];
|
||||
int ptr = mMemory[BC_REG_ADDR] + 256 * mMemory[BC_REG_ADDR + 1];
|
||||
|
|
|
@ -1396,6 +1396,10 @@ void InterInstruction::LocalRenameRegister(GrowingIntArray& renameTable, int& nu
|
|||
renameTable[mTTemp] = num;
|
||||
mTTemp = num++;
|
||||
}
|
||||
#if 0
|
||||
if (mCode == IC_LOAD_TEMPORARY && mSTemp[0] < 0)
|
||||
mCode = IC_CONSTANT;
|
||||
#endif
|
||||
}
|
||||
|
||||
void InterInstruction::GlobalRenameRegister(const GrowingIntArray& renameTable, GrowingTypeArray& temporaries)
|
||||
|
@ -1410,6 +1414,10 @@ void InterInstruction::GlobalRenameRegister(const GrowingIntArray& renameTable,
|
|||
if (InterTypeSize[mTType] > InterTypeSize[temporaries[mTTemp]])
|
||||
temporaries[mTTemp] = mTType;
|
||||
}
|
||||
#if 0
|
||||
if (mCode == IC_LOAD_TEMPORARY && mSTemp[0] < 0)
|
||||
mCode = IC_CONSTANT;
|
||||
#endif
|
||||
}
|
||||
|
||||
static void UpdateCollisionSet(NumberSet& liveTemps, NumberSet* collisionSets, int temp)
|
||||
|
@ -2888,8 +2896,15 @@ void InterCodeBasicBlock::LocalRenameRegister(const GrowingIntArray& renameTable
|
|||
}
|
||||
else if (mEntryRequiredTemps[i])
|
||||
{
|
||||
mEntryRenameTable[i] = renameTable[i];
|
||||
mExitRenameTable[i] = renameTable[i];
|
||||
if (renameTable[i] < 0)
|
||||
{
|
||||
mExitRenameTable[i] = mEntryRenameTable[i] = num++;
|
||||
}
|
||||
else
|
||||
{
|
||||
mEntryRenameTable[i] = renameTable[i];
|
||||
mExitRenameTable[i] = renameTable[i];
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -19,14 +19,13 @@ static inline InterType InterTypeOf(const Declaration* dec)
|
|||
case DT_TYPE_VOID:
|
||||
return IT_NONE;
|
||||
case DT_TYPE_INTEGER:
|
||||
case DT_TYPE_ENUM:
|
||||
if (dec->mSize == 1)
|
||||
return IT_INT8;
|
||||
else if (dec->mSize == 2)
|
||||
return IT_INT16;
|
||||
else
|
||||
return IT_INT32;
|
||||
case DT_TYPE_ENUM:
|
||||
return IT_INT8;
|
||||
case DT_TYPE_BOOL:
|
||||
return IT_BOOL;
|
||||
case DT_TYPE_FLOAT:
|
||||
|
@ -709,6 +708,7 @@ InterCodeGenerator::ExValue InterCodeGenerator::TranslateExpression(Declaration*
|
|||
ins->mIntValue = dec->mOffset;
|
||||
ins->mVarIndex = dec->mVarIndex;
|
||||
|
||||
int ref = 1;
|
||||
if (dec->mType == DT_ARGUMENT)
|
||||
{
|
||||
if (inlineMapper)
|
||||
|
@ -718,12 +718,18 @@ InterCodeGenerator::ExValue InterCodeGenerator::TranslateExpression(Declaration*
|
|||
}
|
||||
else
|
||||
ins->mMemory = IM_PARAM;
|
||||
if (dec->mBase->mType == DT_TYPE_ARRAY)
|
||||
{
|
||||
ref = 2;
|
||||
ins->mOperandSize = 2;
|
||||
}
|
||||
}
|
||||
else if (dec->mFlags & DTF_GLOBAL)
|
||||
{
|
||||
InitGlobalVariable(proc->mModule, dec);
|
||||
ins->mMemory = IM_GLOBAL;
|
||||
ins->mLinkerObject = dec->mLinkerObject;
|
||||
ins->mVarIndex = dec->mVarIndex;
|
||||
}
|
||||
else
|
||||
ins->mMemory = IM_LOCAL;
|
||||
|
@ -733,7 +739,7 @@ InterCodeGenerator::ExValue InterCodeGenerator::TranslateExpression(Declaration*
|
|||
if (!(dec->mBase->mFlags & DTF_DEFINED))
|
||||
mErrors->Error(dec->mLocation, EERR_VARIABLE_TYPE, "Undefined variable type");
|
||||
|
||||
return ExValue(dec->mBase, ins->mTTemp, 1);
|
||||
return ExValue(dec->mBase, ins->mTTemp, ref);
|
||||
}
|
||||
|
||||
|
||||
|
@ -1384,7 +1390,9 @@ InterCodeGenerator::ExValue InterCodeGenerator::TranslateExpression(Declaration*
|
|||
if (vl.mType->mType == DT_TYPE_POINTER || vr.mType->mType == DT_TYPE_POINTER)
|
||||
{
|
||||
dtype = vl.mType;
|
||||
if (!vl.mType->IsSame(vr.mType))
|
||||
if (vl.mType->IsIntegerType() || vr.mType->IsIntegerType())
|
||||
;
|
||||
else if (!vl.mType->IsSame(vr.mType))
|
||||
mErrors->Error(exp->mLocation, EERR_INCOMPATIBLE_OPERATOR, "Incompatible pointer types");
|
||||
}
|
||||
else if (!vl.mType->IsNumericType() || !vr.mType->IsNumericType())
|
||||
|
@ -1703,7 +1711,10 @@ InterCodeGenerator::ExValue InterCodeGenerator::TranslateExpression(Declaration*
|
|||
{
|
||||
ains->mVarIndex = pdec->mVarIndex;
|
||||
ains->mIntValue = pdec->mOffset;
|
||||
ains->mOperandSize = pdec->mSize;
|
||||
if (pdec->mBase->mType == DT_TYPE_ARRAY)
|
||||
ains->mOperandSize = 2;
|
||||
else
|
||||
ains->mOperandSize = pdec->mSize;
|
||||
}
|
||||
else if (ftype->mFlags & DTF_VARIADIC)
|
||||
{
|
||||
|
@ -1781,7 +1792,12 @@ InterCodeGenerator::ExValue InterCodeGenerator::TranslateExpression(Declaration*
|
|||
wins->mSType[1] = IT_POINTER;
|
||||
wins->mSTemp[1] = ains->mTTemp;
|
||||
if (pdec)
|
||||
wins->mOperandSize = pdec->mSize;
|
||||
{
|
||||
if (pdec->mBase->mType == DT_TYPE_ARRAY)
|
||||
wins->mOperandSize = 2;
|
||||
else
|
||||
wins->mOperandSize = pdec->mSize;
|
||||
}
|
||||
else if (vr.mType->mSize > 2 && vr.mType->mType != DT_TYPE_ARRAY)
|
||||
wins->mOperandSize = vr.mType->mSize;
|
||||
else
|
||||
|
@ -1967,17 +1983,17 @@ InterCodeGenerator::ExValue InterCodeGenerator::TranslateExpression(Declaration*
|
|||
|
||||
InterInstruction * zins = new InterInstruction();
|
||||
zins->mCode = IC_CONSTANT;
|
||||
zins->mTType = InterTypeOf(vr.mType);
|
||||
zins->mTType = InterTypeOf(vl.mType);
|
||||
zins->mTTemp = proc->AddTemporary(zins->mTType);
|
||||
zins->mIntValue = 0;
|
||||
block->Append(zins);
|
||||
|
||||
InterInstruction * ins = new InterInstruction();
|
||||
ins->mCode = IC_RELATIONAL_OPERATOR;
|
||||
ins->mOperator = IA_CMPNE;
|
||||
ins->mSType[0] = InterTypeOf(vr.mType);
|
||||
ins->mOperator = IA_CMPEQ;
|
||||
ins->mSType[0] = InterTypeOf(vl.mType);
|
||||
ins->mSTemp[0] = zins->mTTemp;
|
||||
ins->mSType[1] = InterTypeOf(vr.mType);
|
||||
ins->mSType[1] = InterTypeOf(vl.mType);
|
||||
ins->mSTemp[1] = vl.mTemp;
|
||||
ins->mTType = IT_BOOL;
|
||||
ins->mTTemp = proc->AddTemporary(ins->mTType);
|
||||
|
|
|
@ -3730,8 +3730,8 @@ NativeCodeBasicBlock* NativeCodeBasicBlock::BinaryOperator(InterCodeProcedure* p
|
|||
case IA_AND:
|
||||
case IA_XOR:
|
||||
{
|
||||
if (sins1) LoadValueToReg(proc, sins1, BC_REG_ACCU, nullptr, nullptr);
|
||||
if (sins0) LoadValueToReg(proc, sins0, BC_REG_ACCU, nullptr, nullptr);
|
||||
if (sins1) LoadValueToReg(proc, sins1, BC_REG_TMP + proc->mTempOffset[ins->mSTemp[1]], nullptr, nullptr);
|
||||
if (sins0) LoadValueToReg(proc, sins0, BC_REG_TMP + proc->mTempOffset[ins->mSTemp[0]], nullptr, nullptr);
|
||||
|
||||
AsmInsType atype;
|
||||
switch (ins->mOperator)
|
||||
|
@ -5835,6 +5835,13 @@ void NativeCodeBasicBlock::CallFunction(InterCodeProcedure* proc, NativeCodeProc
|
|||
mIns.Push(NativeCodeInstruction(ASMIT_LDA, ASMIM_ZERO_PAGE, BC_REG_ACCU + 1));
|
||||
mIns.Push(NativeCodeInstruction(ASMIT_STA, ASMIM_ZERO_PAGE, BC_REG_TMP + proc->mTempOffset[ins->mTTemp] + 1));
|
||||
}
|
||||
if (InterTypeSize[ins->mTType] > 2)
|
||||
{
|
||||
mIns.Push(NativeCodeInstruction(ASMIT_LDA, ASMIM_ZERO_PAGE, BC_REG_ACCU + 2));
|
||||
mIns.Push(NativeCodeInstruction(ASMIT_STA, ASMIM_ZERO_PAGE, BC_REG_TMP + proc->mTempOffset[ins->mTTemp] + 2));
|
||||
mIns.Push(NativeCodeInstruction(ASMIT_LDA, ASMIM_ZERO_PAGE, BC_REG_ACCU + 3));
|
||||
mIns.Push(NativeCodeInstruction(ASMIT_STA, ASMIM_ZERO_PAGE, BC_REG_TMP + proc->mTempOffset[ins->mTTemp] + 3));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -5869,6 +5876,13 @@ void NativeCodeBasicBlock::CallAssembler(InterCodeProcedure* proc, const InterIn
|
|||
mIns.Push(NativeCodeInstruction(ASMIT_LDA, ASMIM_ZERO_PAGE, BC_REG_ACCU + 1));
|
||||
mIns.Push(NativeCodeInstruction(ASMIT_STA, ASMIM_ZERO_PAGE, BC_REG_TMP + proc->mTempOffset[ins->mTTemp] + 1));
|
||||
}
|
||||
if (InterTypeSize[ins->mTType] > 2)
|
||||
{
|
||||
mIns.Push(NativeCodeInstruction(ASMIT_LDA, ASMIM_ZERO_PAGE, BC_REG_ACCU + 2));
|
||||
mIns.Push(NativeCodeInstruction(ASMIT_STA, ASMIM_ZERO_PAGE, BC_REG_TMP + proc->mTempOffset[ins->mTTemp] + 2));
|
||||
mIns.Push(NativeCodeInstruction(ASMIT_LDA, ASMIM_ZERO_PAGE, BC_REG_ACCU + 3));
|
||||
mIns.Push(NativeCodeInstruction(ASMIT_STA, ASMIM_ZERO_PAGE, BC_REG_TMP + proc->mTempOffset[ins->mTTemp] + 3));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -411,8 +411,11 @@ Declaration* Parser::ParsePostfixDeclaration(void)
|
|||
adec->mType = DT_ARGUMENT;
|
||||
adec->mVarIndex = vi;
|
||||
adec->mOffset = 0;
|
||||
adec->mSize = adec->mBase->mSize;
|
||||
vi += adec->mBase->mSize;
|
||||
if (adec->mBase->mType == DT_TYPE_ARRAY)
|
||||
adec->mSize = 2;
|
||||
else
|
||||
adec->mSize = adec->mBase->mSize;
|
||||
vi += adec->mSize;
|
||||
if (pdec)
|
||||
pdec->mNext = adec;
|
||||
else
|
||||
|
|
|
@ -464,7 +464,7 @@ void Scanner::NextToken(void)
|
|||
else if (mToken == TK_PREP_DEFINE)
|
||||
{
|
||||
NextRawToken();
|
||||
if (mToken == TK_IDENT)
|
||||
if (mToken == TK_IDENT || mToken >= TK_IF && mToken <= TK_ASM || mToken == TK_TRUE || mToken == TK_FALSE)
|
||||
{
|
||||
Macro* macro = new Macro(mTokenIdent);
|
||||
|
||||
|
@ -472,19 +472,26 @@ void Scanner::NextToken(void)
|
|||
{
|
||||
NextRawToken();
|
||||
|
||||
// Macro with argument
|
||||
do
|
||||
if (mTokenChar == ')')
|
||||
{
|
||||
NextRawToken();
|
||||
if (mToken == TK_IDENT)
|
||||
}
|
||||
else
|
||||
{
|
||||
// Macro with argument
|
||||
do
|
||||
{
|
||||
macro->AddArgument(mTokenIdent);
|
||||
NextRawToken();
|
||||
}
|
||||
else
|
||||
mErrors->Error(mLocation, EERR_INVALID_PREPROCESSOR, "Invalid define argument");
|
||||
if (mToken == TK_IDENT)
|
||||
{
|
||||
macro->AddArgument(mTokenIdent);
|
||||
NextRawToken();
|
||||
}
|
||||
else
|
||||
mErrors->Error(mLocation, EERR_INVALID_PREPROCESSOR, "Invalid define argument");
|
||||
|
||||
} while (mToken == TK_COMMA);
|
||||
} while (mToken == TK_COMMA);
|
||||
}
|
||||
|
||||
if (mToken == TK_CLOSE_PARENTHESIS)
|
||||
{
|
||||
|
|
|
@ -28,6 +28,12 @@
|
|||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_216D2A5FECF74C96A4964A74DFEB8552"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_317711E6E48744A18655469B4C53767E"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
|
@ -52,6 +58,12 @@
|
|||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_8B258D238AC44D43A7DC654AFE0B9D8B"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_9D0D7A63D6C848CD85489D6E7C43AFAD"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
|
@ -88,6 +100,12 @@
|
|||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_E5405BA024FB44FB8A71DC51B3B35428"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_E54AFD61BAD0414C9C5B2EFF31DA01FA"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
|
@ -112,6 +130,12 @@
|
|||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_F8F279E2317342BB8F6FD09FE8FE4EF5"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_FB2E467BC172457785F4279BB0BFE8B6"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
|
@ -243,6 +267,26 @@
|
|||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_216D2A5FECF74C96A4964A74DFEB8552"
|
||||
{
|
||||
"SourcePath" = "8:..\\include\\stdbool.h"
|
||||
"TargetName" = "8:stdbool.h"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_7C0D28C244F14A21B5F72213BBE59B6F"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_317711E6E48744A18655469B4C53767E"
|
||||
{
|
||||
"SourcePath" = "8:..\\include\\math.c"
|
||||
|
@ -323,6 +367,26 @@
|
|||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_8B258D238AC44D43A7DC654AFE0B9D8B"
|
||||
{
|
||||
"SourcePath" = "8:..\\include\\time.h"
|
||||
"TargetName" = "8:time.h"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_7C0D28C244F14A21B5F72213BBE59B6F"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_9D0D7A63D6C848CD85489D6E7C43AFAD"
|
||||
{
|
||||
"SourcePath" = "8:..\\include\\stdio.h"
|
||||
|
@ -443,6 +507,26 @@
|
|||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E5405BA024FB44FB8A71DC51B3B35428"
|
||||
{
|
||||
"SourcePath" = "8:..\\include\\stdint.h"
|
||||
"TargetName" = "8:stdint.h"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_7C0D28C244F14A21B5F72213BBE59B6F"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_E54AFD61BAD0414C9C5B2EFF31DA01FA"
|
||||
{
|
||||
"SourcePath" = "8:..\\include\\assert.h"
|
||||
|
@ -523,6 +607,26 @@
|
|||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_F8F279E2317342BB8F6FD09FE8FE4EF5"
|
||||
{
|
||||
"SourcePath" = "8:..\\include\\time.c"
|
||||
"TargetName" = "8:time.c"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_7C0D28C244F14A21B5F72213BBE59B6F"
|
||||
"Condition" = "8:"
|
||||
"Transitive" = "11:FALSE"
|
||||
"Vital" = "11:TRUE"
|
||||
"ReadOnly" = "11:FALSE"
|
||||
"Hidden" = "11:FALSE"
|
||||
"System" = "11:FALSE"
|
||||
"Permanent" = "11:FALSE"
|
||||
"SharedLegacy" = "11:FALSE"
|
||||
"PackageAs" = "3:1"
|
||||
"Register" = "3:1"
|
||||
"Exclude" = "11:FALSE"
|
||||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
}
|
||||
"FileType"
|
||||
{
|
||||
|
@ -602,7 +706,7 @@
|
|||
"Name" = "8:Microsoft Visual Studio"
|
||||
"ProductName" = "8:oscar64"
|
||||
"ProductCode" = "8:{DD6A1D1D-E6A7-4EB4-912E-725CBB8EB76F}"
|
||||
"PackageCode" = "8:{5524804F-A9C3-411D-92CD-F805012EBDAE}"
|
||||
"PackageCode" = "8:{6A7C50E8-23AF-4F35-8542-FB26343A6248}"
|
||||
"UpgradeCode" = "8:{9AB61EFF-ACAC-4079-9950-8D96615CD4EF}"
|
||||
"AspNetVersion" = "8:2.0.50727.0"
|
||||
"RestartWWWService" = "11:FALSE"
|
||||
|
@ -1123,7 +1227,7 @@
|
|||
{
|
||||
"{5259A561-127C-4D43-A0A1-72F10C7B3BF8}:_FB2E467BC172457785F4279BB0BFE8B6"
|
||||
{
|
||||
"SourcePath" = "8:..\\Release\\oscar64.exe"
|
||||
"SourcePath" = "8:..\\Debug\\oscar64.exe"
|
||||
"TargetName" = "8:"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_607E75AF0E2A4CB9908C4C39DF8FE6E4"
|
||||
|
|
Loading…
Reference in New Issue