Bump version to 1.1.44
This commit is contained in:
parent
a52c869099
commit
214ebd93f2
|
@ -23,7 +23,7 @@ The goal is to implement the actual C standard and not some subset for performan
|
|||
|
||||
## Limits and Errors
|
||||
|
||||
There are still several open areas, but most targets have been reached. The current Dhrystone performance is 35 iterations per second with byte code (12259) and 203 iterations with native code (13572 Bytes).
|
||||
There are still several open areas, but most targets have been reached. The current Dhrystone performance is 48 iterations per second with byte code (12275) and 245 iterations with native code (12688 Bytes).
|
||||
|
||||
### Language
|
||||
|
||||
|
|
|
@ -7923,6 +7923,39 @@ bool NativeCodeBasicBlock::MoveStoreXUp(int at)
|
|||
return done;
|
||||
}
|
||||
|
||||
bool NativeCodeBasicBlock::MoveStoreHighByteDown(int at)
|
||||
{
|
||||
int i = at + 4;
|
||||
while (i + 1 < mIns.Size())
|
||||
{
|
||||
if (mIns[i].mLive & LIVE_CPU_REG_Y)
|
||||
return false;
|
||||
if (mIns[i].ChangesZeroPage(mIns[at + 2].mAddress) || mIns[i].ChangesZeroPage(mIns[at + 2].mAddress + 1) || mIns[i].ChangesZeroPage(mIns[at + 3].mAddress))
|
||||
return false;
|
||||
if (mIns[i].UsesZeroPage(mIns[at + 3].mAddress))
|
||||
return false;
|
||||
if (mIns[i].ChangesGlobalMemory())
|
||||
return false;
|
||||
|
||||
if (!(mIns[i].mLive & (LIVE_CPU_REG_A | LIVE_CPU_REG_Z)))
|
||||
{
|
||||
mIns.Insert(i + 1, mIns[at + 3]);
|
||||
mIns.Insert(i + 1, mIns[at + 2]);
|
||||
mIns.Insert(i + 1, mIns[at + 1]);
|
||||
|
||||
mIns[at + 1].mType = ASMIT_NOP; mIns[at + 1].mMode = ASMIM_IMPLIED; // LDY
|
||||
mIns[at + 2].mType = ASMIT_NOP; mIns[at + 2].mMode = ASMIM_IMPLIED; // LDA (x), y
|
||||
mIns[at + 3].mType = ASMIT_NOP; mIns[at + 3].mMode = ASMIM_IMPLIED; // STA T
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
i++;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
bool NativeCodeBasicBlock::MoveLoadStoreUp(int at)
|
||||
{
|
||||
int j = at;
|
||||
|
@ -8943,6 +8976,21 @@ bool NativeCodeBasicBlock::PeepHoleOptimizer(void)
|
|||
}
|
||||
}
|
||||
#endif
|
||||
// move high byte load down, if low byte is immediatedly needed afterwards
|
||||
|
||||
for (int i = 0; i + 4 < mIns.Size(); i++)
|
||||
{
|
||||
if (mIns[i + 0].mType == ASMIT_STA && mIns[i + 0].mMode == ASMIM_ZERO_PAGE &&
|
||||
mIns[i + 1].mType == ASMIT_LDY && mIns[i + 1].mMode == ASMIM_IMMEDIATE &&
|
||||
mIns[i + 2].mType == ASMIT_LDA && mIns[i + 2].mMode == ASMIM_INDIRECT_Y && mIns[i + 2].mAddress != mIns[i + 3].mAddress && mIns[i + 2].mAddress + 1 != mIns[i + 3].mAddress &&
|
||||
mIns[i + 3].mType == ASMIT_STA && mIns[i + 3].mMode == ASMIM_ZERO_PAGE && mIns[i + 3].mAddress != mIns[i + 0].mAddress &&
|
||||
mIns[i + 4].mType == ASMIT_LDA && mIns[i + 4].mMode == ASMIM_ZERO_PAGE && mIns[i + 4].mAddress == mIns[i + 0].mAddress && !(mIns[i + 4].mLive & LIVE_CPU_REG_Z))
|
||||
{
|
||||
if (MoveStoreHighByteDown(i))
|
||||
changed = true;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
bool progress = false;
|
||||
do {
|
||||
|
|
|
@ -178,6 +178,7 @@ public:
|
|||
bool FindGlobalAddress(int at, int reg, int& apos);
|
||||
bool FindGlobalAddressSumY(int at, int reg, bool direct, int& apos, const NativeCodeInstruction * & ains, const NativeCodeInstruction*& iins, uint32 & flags);
|
||||
bool MoveStoreXUp(int at);
|
||||
bool MoveStoreHighByteDown(int at);
|
||||
|
||||
bool ValueForwarding(const NativeRegisterDataSet& data);
|
||||
|
||||
|
|
|
@ -75,7 +75,7 @@ int main(int argc, const char** argv)
|
|||
DWORD length = ::GetModuleFileNameA(NULL, basePath, sizeof(basePath));
|
||||
|
||||
#else
|
||||
printf("Starting oscar64 1.1.43\n");
|
||||
printf("Starting oscar64 1.1.44\n");
|
||||
|
||||
#ifdef __APPLE__
|
||||
uint32_t length = sizeof(basePath);
|
||||
|
|
|
@ -25,8 +25,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL
|
|||
//
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION 1,1,43,0
|
||||
PRODUCTVERSION 1,1,43,0
|
||||
FILEVERSION 1,1,44,0
|
||||
PRODUCTVERSION 1,1,44,0
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
|
@ -43,12 +43,12 @@ BEGIN
|
|||
BEGIN
|
||||
VALUE "CompanyName", "oscar64"
|
||||
VALUE "FileDescription", "oscar64 compiler"
|
||||
VALUE "FileVersion", "1.1.43.0"
|
||||
VALUE "FileVersion", "1.1.44.0"
|
||||
VALUE "InternalName", "oscar64.exe"
|
||||
VALUE "LegalCopyright", "Copyright (C) 2021"
|
||||
VALUE "OriginalFilename", "oscar64.exe"
|
||||
VALUE "ProductName", "oscar64"
|
||||
VALUE "ProductVersion", "1.1.43.0"
|
||||
VALUE "ProductVersion", "1.1.44.0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
|
|
@ -46,6 +46,12 @@
|
|||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_343F58F80DF84D40AE23457288C5D7D5"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_3AFDC86156F04AABB8D82218C17005F2"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
|
@ -112,6 +118,12 @@
|
|||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_A32AAE4931564357A3222F04C8D99C2F"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
}
|
||||
"Entry"
|
||||
{
|
||||
"MsmKey" = "8:_A566398810C1458E8E063A81FA88D46F"
|
||||
"OwnerKey" = "8:_UNDEFINED"
|
||||
"MsmSig" = "8:_UNDEFINED"
|
||||
|
@ -381,6 +393,26 @@
|
|||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_343F58F80DF84D40AE23457288C5D7D5"
|
||||
{
|
||||
"SourcePath" = "8:..\\include\\c64\\keyboard.c"
|
||||
"TargetName" = "8:keyboard.c"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_247D4CAD3CB843B3A8A4DC2D90F47C28"
|
||||
"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}:_3AFDC86156F04AABB8D82218C17005F2"
|
||||
{
|
||||
"SourcePath" = "8:..\\include\\c64\\vic.h"
|
||||
|
@ -601,6 +633,26 @@
|
|||
"IsDependency" = "11:FALSE"
|
||||
"IsolateTo" = "8:"
|
||||
}
|
||||
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_A32AAE4931564357A3222F04C8D99C2F"
|
||||
{
|
||||
"SourcePath" = "8:..\\include\\c64\\keyboard.h"
|
||||
"TargetName" = "8:keyboard.h"
|
||||
"Tag" = "8:"
|
||||
"Folder" = "8:_247D4CAD3CB843B3A8A4DC2D90F47C28"
|
||||
"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}:_A566398810C1458E8E063A81FA88D46F"
|
||||
{
|
||||
"SourcePath" = "8:..\\include\\stddef.h"
|
||||
|
@ -950,15 +1002,15 @@
|
|||
{
|
||||
"Name" = "8:Microsoft Visual Studio"
|
||||
"ProductName" = "8:oscar64"
|
||||
"ProductCode" = "8:{9CDBFF70-1B69-46D4-AF9A-421A9A0A39A3}"
|
||||
"PackageCode" = "8:{5E5D8444-E4D7-49D3-B597-D5F498EC44BE}"
|
||||
"ProductCode" = "8:{25890560-0659-4815-9695-967059797606}"
|
||||
"PackageCode" = "8:{277046A3-B4FB-4443-B541-4CA3F0FC51B8}"
|
||||
"UpgradeCode" = "8:{9AB61EFF-ACAC-4079-9950-8D96615CD4EF}"
|
||||
"AspNetVersion" = "8:2.0.50727.0"
|
||||
"RestartWWWService" = "11:FALSE"
|
||||
"RemovePreviousVersions" = "11:TRUE"
|
||||
"DetectNewerInstalledVersion" = "11:TRUE"
|
||||
"InstallAllUsers" = "11:FALSE"
|
||||
"ProductVersion" = "8:1.1.43"
|
||||
"ProductVersion" = "8:1.1.44"
|
||||
"Manufacturer" = "8:oscar64"
|
||||
"ARPHELPTELEPHONE" = "8:"
|
||||
"ARPHELPLINK" = "8:"
|
||||
|
|
Loading…
Reference in New Issue