Fix byte limit in #embed
This commit is contained in:
parent
aee284c1d6
commit
2d41edfc97
|
@ -1,6 +1,6 @@
|
|||
#include "memmap.h"
|
||||
|
||||
char PLAShadow;
|
||||
volatile char PLAShadow;
|
||||
|
||||
__asm DoneTrampoline
|
||||
{
|
||||
|
|
|
@ -159,7 +159,7 @@ void GlobalAnalyzer::AnalyzeProcedure(Expression* exp, Declaration* dec)
|
|||
mFunctions.Push(dec);
|
||||
|
||||
dec->mFlags |= DTF_ANALYZED;
|
||||
if (dec->mFlags & DTF_INTRINSIC)
|
||||
if ((dec->mFlags & DTF_INTRINSIC) && !dec->mValue)
|
||||
dec->mFlags |= DTF_FUNC_CONSTEXPR;
|
||||
else if (dec->mFlags & DTF_DEFINED)
|
||||
{
|
||||
|
|
|
@ -1987,6 +1987,12 @@ bool NativeCodeInstruction::ValueForwarding(NativeRegisterDataSet& data, AsmInsT
|
|||
changed = true;
|
||||
}
|
||||
|
||||
if (mMode == ASMIM_ABSOLUTE_X && data.mRegs[CPU_REG_X].SameData(data.mRegs[CPU_REG_Y]) && HasAsmInstructionMode(mType, ASMIM_ABSOLUTE_Y))
|
||||
{
|
||||
mMode = ASMIM_ABSOLUTE_Y;
|
||||
changed = true;
|
||||
}
|
||||
|
||||
if (mMode == ASMIM_ZERO_PAGE)
|
||||
{
|
||||
switch (mType)
|
||||
|
@ -12335,6 +12341,9 @@ bool NativeCodeBasicBlock::PeepHoleOptimizer(int pass)
|
|||
{
|
||||
if (!mIns[i].MayBeChangedOnAddress(mIns[i + 1]))
|
||||
{
|
||||
if (mIns[i + 1].SameEffectiveAddress(mIns[i]))
|
||||
mIns[i + 1].mLive |= LIVE_MEM;
|
||||
|
||||
NativeCodeInstruction ins = mIns[i];
|
||||
mIns[i] = mIns[i + 1];
|
||||
mIns[i + 1] = ins;
|
||||
|
@ -12348,6 +12357,9 @@ bool NativeCodeBasicBlock::PeepHoleOptimizer(int pass)
|
|||
{
|
||||
if (!mIns[i].MayBeChangedOnAddress(mIns[i + 1]))
|
||||
{
|
||||
if (mIns[i + 1].SameEffectiveAddress(mIns[i]))
|
||||
mIns[i + 1].mLive |= LIVE_MEM;
|
||||
|
||||
NativeCodeInstruction ins = mIns[i];
|
||||
mIns[i] = mIns[i + 1];
|
||||
mIns[i + 1] = ins;
|
||||
|
@ -12691,6 +12703,7 @@ bool NativeCodeBasicBlock::PeepHoleOptimizer(int pass)
|
|||
#endif
|
||||
|
||||
}
|
||||
#if 1
|
||||
else if (FindGlobalAddressSumY(i, sreg, true, apos, ains, iins, flags, addr))
|
||||
{
|
||||
if (iins || (flags & LIVE_CPU_REG_Y) || (flags & LIVE_CPU_REG_X)) //!(mIns[i + 1].mLive & LIVE_CPU_REG_X))
|
||||
|
@ -12782,6 +12795,7 @@ bool NativeCodeBasicBlock::PeepHoleOptimizer(int pass)
|
|||
progress = true;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -13175,6 +13189,9 @@ bool NativeCodeBasicBlock::PeepHoleOptimizer(int pass)
|
|||
mIns[i + 0].mAddress = iins->mAddress;
|
||||
mIns[i + 0].mLinkerObject = iins->mLinkerObject;
|
||||
mIns[i + 0].mFlags = iins->mFlags;
|
||||
|
||||
if (!(flags & LIVE_CPU_REG_Y) && (flags & LIVE_CPU_REG_X))
|
||||
mIns[i + 0].mType == ASMIT_LDX;
|
||||
}
|
||||
else if (iins->mAddress == sreg)
|
||||
{
|
||||
|
@ -13182,7 +13199,7 @@ bool NativeCodeBasicBlock::PeepHoleOptimizer(int pass)
|
|||
if (flags & LIVE_CPU_REG_Y)
|
||||
{
|
||||
mIns.Insert(apos, NativeCodeInstruction(ASMIT_LDY, ASMIM_ZERO_PAGE, iins->mAddress));
|
||||
mIns[apos].mLive = LIVE_CPU_REG_Y | LIVE_CPU_REG_A | LIVE_MEM;
|
||||
mIns[apos].mLive = mIns[apos + 1].mLive | LIVE_CPU_REG_Y | LIVE_CPU_REG_A | LIVE_MEM;
|
||||
for (int j = apos; j < i + 2; j++)
|
||||
mIns[j].mLive |= LIVE_CPU_REG_Y;
|
||||
}
|
||||
|
@ -13190,7 +13207,7 @@ bool NativeCodeBasicBlock::PeepHoleOptimizer(int pass)
|
|||
{
|
||||
PatchGlobalAdressSumYByX(i + 1, sreg, *ains, addr);
|
||||
mIns.Insert(apos, NativeCodeInstruction(ASMIT_LDX, ASMIM_ZERO_PAGE, iins->mAddress));
|
||||
mIns[apos].mLive = LIVE_CPU_REG_X | LIVE_CPU_REG_A | LIVE_MEM;
|
||||
mIns[apos].mLive = mIns[apos + 1].mLive | LIVE_CPU_REG_X | LIVE_CPU_REG_A | LIVE_MEM;
|
||||
for (int j = apos; j < i + 2; j++)
|
||||
mIns[j].mLive |= LIVE_CPU_REG_X;
|
||||
}
|
||||
|
@ -13199,6 +13216,9 @@ bool NativeCodeBasicBlock::PeepHoleOptimizer(int pass)
|
|||
{
|
||||
mIns[i + 0].mMode = ASMIM_ZERO_PAGE;
|
||||
mIns[i + 0].mAddress = iins->mAddress;
|
||||
|
||||
if (!(flags & LIVE_CPU_REG_Y) && (flags & LIVE_CPU_REG_X))
|
||||
mIns[i + 0].mType == ASMIT_LDX;
|
||||
}
|
||||
|
||||
progress = true;
|
||||
|
|
|
@ -26,6 +26,7 @@ bool SourceFile::ReadLine(char* line)
|
|||
if (mBinary)
|
||||
{
|
||||
if (mLimit)
|
||||
{
|
||||
mLimit--;
|
||||
|
||||
int c = fgetc(mFile);
|
||||
|
@ -35,6 +36,9 @@ bool SourceFile::ReadLine(char* line)
|
|||
return true;
|
||||
}
|
||||
}
|
||||
else
|
||||
return false;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (fgets(line, 1024, mFile))
|
||||
|
|
|
@ -73,7 +73,7 @@ int main(int argc, const char** argv)
|
|||
|
||||
#else
|
||||
strcpy(strProductName, "oscar64");
|
||||
strcpy(strProductVersion, "1.2.68");
|
||||
strcpy(strProductVersion, "1.2.69");
|
||||
|
||||
#ifdef __APPLE__
|
||||
uint32_t length = sizeof(basePath);
|
||||
|
|
|
@ -25,8 +25,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL
|
|||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,2,68,0
|
||||
PRODUCTVERSION 1,2,68,0
|
||||
FILEVERSION 1,2,69,0
|
||||
PRODUCTVERSION 1,2,69,0
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
|
@ -43,12 +43,12 @@ BEGIN
|
|||
BEGIN
|
||||
VALUE "CompanyName", "oscar64"
|
||||
VALUE "FileDescription", "oscar64 compiler"
|
||||
VALUE "FileVersion", "1.2.68.0"
|
||||
VALUE "FileVersion", "1.2.69.0"
|
||||
VALUE "InternalName", "oscar64.exe"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2021"
|
||||
VALUE "OriginalFilename", "oscar64.exe"
|
||||
VALUE "ProductName", "oscar64"
|
||||
VALUE "ProductVersion", "1.2.68.0"
|
||||
VALUE "ProductVersion", "1.2.69.0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
|
|
@ -124,6 +124,12 @@
|
|||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_3277DE1463544F67B7E7390175F8A9CF"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_343F58F80DF84D40AE23457288C5D7D5"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
|
@ -1121,6 +1127,26 @@
|
|||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_3277DE1463544F67B7E7390175F8A9CF"
|
||||
{
|
||||
"SourcePath" = "8:..\\samples\\rasterirq\\autocrawler.c"
|
||||
"TargetName" = "8:autocrawler.c"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_E925E579BC89433389A5D5B048CAA36A"
|
||||
"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}:_343F58F80DF84D40AE23457288C5D7D5"
|
||||
{
|
||||
"SourcePath" = "8:..\\include\\c64\\keyboard.c"
|
||||
|
|
Binary file not shown.
Loading…
Reference in New Issue