Optimize compile time
This commit is contained in:
parent
3377ac04fc
commit
f8f81f6d4c
|
@ -8100,8 +8100,8 @@ void InterCodeBasicBlock::BuildConstTempSets(void)
|
||||||
{
|
{
|
||||||
mVisited = true;
|
mVisited = true;
|
||||||
|
|
||||||
mEntryConstTemp = NumberSet(mEntryRequiredTemps.Size());
|
mEntryConstTemp.Reset(mEntryRequiredTemps.Size());
|
||||||
mExitConstTemp = NumberSet(mEntryRequiredTemps.Size());
|
mExitConstTemp.Reset(mEntryRequiredTemps.Size());
|
||||||
|
|
||||||
for (i = 0; i < mInstructions.Size(); i++)
|
for (i = 0; i < mInstructions.Size(); i++)
|
||||||
{
|
{
|
||||||
|
@ -8594,18 +8594,20 @@ bool InterCodeBasicBlock::BuildGlobalRequiredTempSet(NumberSet& fromRequiredTemp
|
||||||
{
|
{
|
||||||
mVisited = true;
|
mVisited = true;
|
||||||
|
|
||||||
NumberSet newRequiredTemps(mExitRequiredTemps);
|
mNewRequiredTemps = mExitRequiredTemps;
|
||||||
|
|
||||||
if (mTrueJump && mTrueJump->BuildGlobalRequiredTempSet(newRequiredTemps)) revisit = true;
|
// NumberSet newRequiredTemps(mExitRequiredTemps);
|
||||||
if (mFalseJump && mFalseJump->BuildGlobalRequiredTempSet(newRequiredTemps)) revisit = true;
|
|
||||||
|
|
||||||
if (!(newRequiredTemps <= mExitRequiredTemps))
|
if (mTrueJump && mTrueJump->BuildGlobalRequiredTempSet(mNewRequiredTemps)) revisit = true;
|
||||||
|
if (mFalseJump && mFalseJump->BuildGlobalRequiredTempSet(mNewRequiredTemps)) revisit = true;
|
||||||
|
|
||||||
|
if (!(mNewRequiredTemps <= mExitRequiredTemps))
|
||||||
{
|
{
|
||||||
revisit = true;
|
revisit = true;
|
||||||
|
|
||||||
mExitRequiredTemps = newRequiredTemps;
|
mExitRequiredTemps = mNewRequiredTemps;
|
||||||
newRequiredTemps -= mLocalProvidedTemps;
|
mNewRequiredTemps -= mLocalProvidedTemps;
|
||||||
mEntryRequiredTemps |= newRequiredTemps;
|
mEntryRequiredTemps |= mNewRequiredTemps;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -8716,13 +8718,13 @@ void InterCodeBasicBlock::BuildStaticVariableSet(const GrowingVariableArray& sta
|
||||||
{
|
{
|
||||||
mVisited = true;
|
mVisited = true;
|
||||||
|
|
||||||
mLocalRequiredStatics = NumberSet(staticVars.Size());
|
mLocalRequiredStatics.Reset(staticVars.Size());
|
||||||
mLocalProvidedStatics = NumberSet(staticVars.Size());
|
mLocalProvidedStatics.Reset(staticVars.Size());
|
||||||
|
|
||||||
mEntryRequiredStatics = NumberSet(staticVars.Size());
|
mEntryRequiredStatics.Reset(staticVars.Size());
|
||||||
mEntryProvidedStatics = NumberSet(staticVars.Size());
|
mEntryProvidedStatics.Reset(staticVars.Size());
|
||||||
mExitRequiredStatics = NumberSet(staticVars.Size());
|
mExitRequiredStatics.Reset(staticVars.Size());
|
||||||
mExitProvidedStatics = NumberSet(staticVars.Size());
|
mExitProvidedStatics.Reset(staticVars.Size());
|
||||||
|
|
||||||
for (int i = 0; i < mInstructions.Size(); i++)
|
for (int i = 0; i < mInstructions.Size(); i++)
|
||||||
mInstructions[i]->FilterStaticVarsUsage(staticVars, mLocalRequiredStatics, mLocalProvidedStatics);
|
mInstructions[i]->FilterStaticVarsUsage(staticVars, mLocalRequiredStatics, mLocalProvidedStatics);
|
||||||
|
@ -8819,13 +8821,13 @@ void InterCodeBasicBlock::BuildStaticVariableByteSet(const GrowingVariableArray&
|
||||||
{
|
{
|
||||||
mVisited = true;
|
mVisited = true;
|
||||||
|
|
||||||
mLocalRequiredStatics = NumberSet(bsize);
|
mLocalRequiredStatics.Reset(bsize);
|
||||||
mLocalProvidedStatics = NumberSet(bsize);
|
mLocalProvidedStatics.Reset(bsize);
|
||||||
|
|
||||||
mEntryRequiredStatics = NumberSet(bsize);
|
mEntryRequiredStatics.Reset(bsize);
|
||||||
mEntryProvidedStatics = NumberSet(bsize);
|
mEntryProvidedStatics.Reset(bsize);
|
||||||
mExitRequiredStatics = NumberSet(bsize);
|
mExitRequiredStatics.Reset(bsize);
|
||||||
mExitProvidedStatics = NumberSet(bsize);
|
mExitProvidedStatics.Reset(bsize);
|
||||||
|
|
||||||
for (int i = 0; i < mInstructions.Size(); i++)
|
for (int i = 0; i < mInstructions.Size(); i++)
|
||||||
mInstructions[i]->FilterStaticVarsByteUsage(staticVars, mLocalRequiredStatics, mLocalProvidedStatics);
|
mInstructions[i]->FilterStaticVarsByteUsage(staticVars, mLocalRequiredStatics, mLocalProvidedStatics);
|
||||||
|
@ -8881,21 +8883,21 @@ void InterCodeBasicBlock::BuildLocalVariableSets(const GrowingVariableArray& loc
|
||||||
{
|
{
|
||||||
mVisited = true;
|
mVisited = true;
|
||||||
|
|
||||||
mLocalRequiredVars = NumberSet(localVars.Size());
|
mLocalRequiredVars.Reset(localVars.Size());
|
||||||
mLocalProvidedVars = NumberSet(localVars.Size());
|
mLocalProvidedVars.Reset(localVars.Size());
|
||||||
|
|
||||||
mEntryRequiredVars = NumberSet(localVars.Size());
|
mEntryRequiredVars.Reset(localVars.Size());
|
||||||
mEntryProvidedVars = NumberSet(localVars.Size());
|
mEntryProvidedVars.Reset(localVars.Size());
|
||||||
mExitRequiredVars = NumberSet(localVars.Size());
|
mExitRequiredVars.Reset(localVars.Size());
|
||||||
mExitProvidedVars = NumberSet(localVars.Size());
|
mExitProvidedVars.Reset(localVars.Size());
|
||||||
|
|
||||||
mLocalRequiredParams = NumberSet(params.Size());
|
mLocalRequiredParams.Reset(params.Size());
|
||||||
mLocalProvidedParams = NumberSet(params.Size());
|
mLocalProvidedParams.Reset(params.Size());
|
||||||
|
|
||||||
mEntryRequiredParams = NumberSet(params.Size());
|
mEntryRequiredParams.Reset(params.Size());
|
||||||
mEntryProvidedParams = NumberSet(params.Size());
|
mEntryProvidedParams.Reset(params.Size());
|
||||||
mExitRequiredParams = NumberSet(params.Size());
|
mExitRequiredParams.Reset(params.Size());
|
||||||
mExitProvidedParams = NumberSet(params.Size());
|
mExitProvidedParams.Reset(params.Size());
|
||||||
|
|
||||||
for (i = 0; i < mInstructions.Size(); i++)
|
for (i = 0; i < mInstructions.Size(); i++)
|
||||||
{
|
{
|
||||||
|
|
|
@ -368,6 +368,7 @@ public:
|
||||||
NumberSet mEntryRequiredTemps, mEntryProvidedTemps, mEntryPotentialTemps;
|
NumberSet mEntryRequiredTemps, mEntryProvidedTemps, mEntryPotentialTemps;
|
||||||
NumberSet mExitRequiredTemps, mExitProvidedTemps, mExitPotentialTemps;
|
NumberSet mExitRequiredTemps, mExitProvidedTemps, mExitPotentialTemps;
|
||||||
NumberSet mEntryConstTemp, mExitConstTemp;
|
NumberSet mEntryConstTemp, mExitConstTemp;
|
||||||
|
NumberSet mNewRequiredTemps;
|
||||||
|
|
||||||
NumberSet mLocalRequiredVars, mLocalProvidedVars;
|
NumberSet mLocalRequiredVars, mLocalProvidedVars;
|
||||||
NumberSet mEntryRequiredVars, mEntryProvidedVars;
|
NumberSet mEntryRequiredVars, mEntryProvidedVars;
|
||||||
|
|
|
@ -95,13 +95,9 @@ void NativeRegisterDataSet::ResetMask(void)
|
||||||
void NativeRegisterDataSet::ResetWorkRegs(void)
|
void NativeRegisterDataSet::ResetWorkRegs(void)
|
||||||
{
|
{
|
||||||
ResetZeroPage(BC_REG_WORK_Y);
|
ResetZeroPage(BC_REG_WORK_Y);
|
||||||
ResetZeroPage(BC_REG_ADDR + 0);
|
ResetZeroPageRange(BC_REG_ADDR, 2);
|
||||||
ResetZeroPage(BC_REG_ADDR + 1);
|
ResetZeroPageRange(BC_REG_ACCU, 4);
|
||||||
|
ResetZeroPageRange(BC_REG_WORK, 8);
|
||||||
for (int i = 0; i < 4; i++)
|
|
||||||
ResetZeroPage(BC_REG_ACCU + i);
|
|
||||||
for (int i = 0; i < 8; i++)
|
|
||||||
ResetZeroPage(BC_REG_WORK + i);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void NativeRegisterDataSet::ResetWorkMasks(void)
|
void NativeRegisterDataSet::ResetWorkMasks(void)
|
||||||
|
@ -129,6 +125,20 @@ void NativeRegisterDataSet::ResetZeroPage(int addr)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void NativeRegisterDataSet::ResetZeroPageRange(int addr, int num)
|
||||||
|
{
|
||||||
|
for(int i=0; i<num; i++)
|
||||||
|
mRegs[addr + i].Reset();
|
||||||
|
for (int i = 0; i < NUM_REGS; i++)
|
||||||
|
{
|
||||||
|
if (mRegs[i].mMode == NRDM_ZERO_PAGE && mRegs[i].mValue >= addr && mRegs[i].mValue < addr + num)
|
||||||
|
mRegs[i].Reset();
|
||||||
|
else if (mRegs[i].mMode == NRDM_INDIRECT_Y && mRegs[i].mValue + 1 >= addr && mRegs[i].mValue < addr + num)
|
||||||
|
mRegs[i].Reset();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int NativeRegisterDataSet::FindAbsolute(LinkerObject* linkerObject, int addr)
|
int NativeRegisterDataSet::FindAbsolute(LinkerObject* linkerObject, int addr)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < 256; i++)
|
for (int i = 0; i < 256; i++)
|
||||||
|
@ -12467,13 +12477,13 @@ void NativeCodeBasicBlock::BuildLocalRegSets(void)
|
||||||
{
|
{
|
||||||
mVisited = true;
|
mVisited = true;
|
||||||
|
|
||||||
mLocalRequiredRegs = NumberSet(NUM_REGS);
|
mLocalRequiredRegs.Reset(NUM_REGS);
|
||||||
mLocalProvidedRegs = NumberSet(NUM_REGS);
|
mLocalProvidedRegs.Reset(NUM_REGS);
|
||||||
|
|
||||||
mEntryRequiredRegs = NumberSet(NUM_REGS);
|
mEntryRequiredRegs.Reset(NUM_REGS);
|
||||||
mEntryProvidedRegs = NumberSet(NUM_REGS);
|
mEntryProvidedRegs.Reset(NUM_REGS);
|
||||||
mExitRequiredRegs = NumberSet(NUM_REGS);
|
mExitRequiredRegs.Reset(NUM_REGS);
|
||||||
mExitProvidedRegs = NumberSet(NUM_REGS);
|
mExitProvidedRegs.Reset(NUM_REGS);
|
||||||
|
|
||||||
if (mEntryRegA)
|
if (mEntryRegA)
|
||||||
mLocalProvidedRegs += CPU_REG_A;
|
mLocalProvidedRegs += CPU_REG_A;
|
||||||
|
@ -12546,18 +12556,18 @@ bool NativeCodeBasicBlock::BuildGlobalRequiredRegSet(NumberSet& fromRequiredRegs
|
||||||
{
|
{
|
||||||
mVisited = true;
|
mVisited = true;
|
||||||
|
|
||||||
NumberSet newRequiredRegs(mExitRequiredRegs);
|
mNewRequiredRegs = mExitRequiredRegs;
|
||||||
|
|
||||||
if (mTrueJump && mTrueJump->BuildGlobalRequiredRegSet(newRequiredRegs)) revisit = true;
|
if (mTrueJump && mTrueJump->BuildGlobalRequiredRegSet(mNewRequiredRegs)) revisit = true;
|
||||||
if (mFalseJump && mFalseJump->BuildGlobalRequiredRegSet(newRequiredRegs)) revisit = true;
|
if (mFalseJump && mFalseJump->BuildGlobalRequiredRegSet(mNewRequiredRegs)) revisit = true;
|
||||||
|
|
||||||
if (!(newRequiredRegs <= mExitRequiredRegs))
|
if (!(mNewRequiredRegs <= mExitRequiredRegs))
|
||||||
{
|
{
|
||||||
revisit = true;
|
revisit = true;
|
||||||
|
|
||||||
mExitRequiredRegs = newRequiredRegs;
|
mExitRequiredRegs = mNewRequiredRegs;
|
||||||
newRequiredRegs -= mLocalProvidedRegs;
|
mNewRequiredRegs -= mLocalProvidedRegs;
|
||||||
mEntryRequiredRegs |= newRequiredRegs;
|
mEntryRequiredRegs |= mNewRequiredRegs;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -45,6 +45,7 @@ struct NativeRegisterDataSet
|
||||||
void ResetMask(void);
|
void ResetMask(void);
|
||||||
|
|
||||||
void ResetZeroPage(int addr);
|
void ResetZeroPage(int addr);
|
||||||
|
void ResetZeroPageRange(int addr, int num);
|
||||||
void ResetAbsolute(LinkerObject * linkerObject, int addr);
|
void ResetAbsolute(LinkerObject * linkerObject, int addr);
|
||||||
int FindAbsolute(LinkerObject* linkerObject, int addr);
|
int FindAbsolute(LinkerObject* linkerObject, int addr);
|
||||||
void ResetIndirect(int reg);
|
void ResetIndirect(int reg);
|
||||||
|
@ -369,6 +370,7 @@ public:
|
||||||
NumberSet mLocalRequiredRegs, mLocalProvidedRegs;
|
NumberSet mLocalRequiredRegs, mLocalProvidedRegs;
|
||||||
NumberSet mEntryRequiredRegs, mEntryProvidedRegs;
|
NumberSet mEntryRequiredRegs, mEntryProvidedRegs;
|
||||||
NumberSet mExitRequiredRegs, mExitProvidedRegs;
|
NumberSet mExitRequiredRegs, mExitProvidedRegs;
|
||||||
|
NumberSet mNewRequiredRegs;
|
||||||
NumberSet mTempRegs;
|
NumberSet mTempRegs;
|
||||||
|
|
||||||
void BuildLocalRegSets(void);
|
void BuildLocalRegSets(void);
|
||||||
|
|
|
@ -74,7 +74,7 @@ int main2(int argc, const char** argv)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
strcpy(strProductName, "oscar64");
|
strcpy(strProductName, "oscar64");
|
||||||
strcpy(strProductVersion, "1.26.224");
|
strcpy(strProductVersion, "1.26.225");
|
||||||
|
|
||||||
#ifdef __APPLE__
|
#ifdef __APPLE__
|
||||||
uint32_t length = sizeof(basePath);
|
uint32_t length = sizeof(basePath);
|
||||||
|
|
|
@ -25,8 +25,8 @@ LANGUAGE LANG_ENGLISH, SUBLANG_NEUTRAL
|
||||||
//
|
//
|
||||||
|
|
||||||
VS_VERSION_INFO VERSIONINFO
|
VS_VERSION_INFO VERSIONINFO
|
||||||
FILEVERSION 1,26,224,0
|
FILEVERSION 1,26,225,0
|
||||||
PRODUCTVERSION 1,26,224,0
|
PRODUCTVERSION 1,26,225,0
|
||||||
FILEFLAGSMASK 0x3fL
|
FILEFLAGSMASK 0x3fL
|
||||||
#ifdef _DEBUG
|
#ifdef _DEBUG
|
||||||
FILEFLAGS 0x1L
|
FILEFLAGS 0x1L
|
||||||
|
@ -43,12 +43,12 @@ BEGIN
|
||||||
BEGIN
|
BEGIN
|
||||||
VALUE "CompanyName", "oscar64"
|
VALUE "CompanyName", "oscar64"
|
||||||
VALUE "FileDescription", "oscar64 compiler"
|
VALUE "FileDescription", "oscar64 compiler"
|
||||||
VALUE "FileVersion", "1.26.224.0"
|
VALUE "FileVersion", "1.26.225.0"
|
||||||
VALUE "InternalName", "oscar64.exe"
|
VALUE "InternalName", "oscar64.exe"
|
||||||
VALUE "LegalCopyright", "Copyright (C) 2021"
|
VALUE "LegalCopyright", "Copyright (C) 2021"
|
||||||
VALUE "OriginalFilename", "oscar64.exe"
|
VALUE "OriginalFilename", "oscar64.exe"
|
||||||
VALUE "ProductName", "oscar64"
|
VALUE "ProductName", "oscar64"
|
||||||
VALUE "ProductVersion", "1.26.224.0"
|
VALUE "ProductVersion", "1.26.225.0"
|
||||||
END
|
END
|
||||||
END
|
END
|
||||||
BLOCK "VarFileInfo"
|
BLOCK "VarFileInfo"
|
||||||
|
|
|
@ -52,6 +52,12 @@
|
||||||
}
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
{
|
{
|
||||||
|
"MsmKey" = "8:_071415C872DB4A94B28137BD7FE1F669"
|
||||||
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
}
|
||||||
|
"Entry"
|
||||||
|
{
|
||||||
"MsmKey" = "8:_071CF34574024DBD95D2203D6E4279D0"
|
"MsmKey" = "8:_071CF34574024DBD95D2203D6E4279D0"
|
||||||
"OwnerKey" = "8:_UNDEFINED"
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
@ -1150,6 +1156,12 @@
|
||||||
}
|
}
|
||||||
"Entry"
|
"Entry"
|
||||||
{
|
{
|
||||||
|
"MsmKey" = "8:_ED20DE3FDC8A400296E92AE0D37D8665"
|
||||||
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
}
|
||||||
|
"Entry"
|
||||||
|
{
|
||||||
"MsmKey" = "8:_ED5FED616EA64689AB793E5D8BD3F13D"
|
"MsmKey" = "8:_ED5FED616EA64689AB793E5D8BD3F13D"
|
||||||
"OwnerKey" = "8:_UNDEFINED"
|
"OwnerKey" = "8:_UNDEFINED"
|
||||||
"MsmSig" = "8:_UNDEFINED"
|
"MsmSig" = "8:_UNDEFINED"
|
||||||
|
@ -1439,6 +1451,26 @@
|
||||||
"IsDependency" = "11:FALSE"
|
"IsDependency" = "11:FALSE"
|
||||||
"IsolateTo" = "8:"
|
"IsolateTo" = "8:"
|
||||||
}
|
}
|
||||||
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_071415C872DB4A94B28137BD7FE1F669"
|
||||||
|
{
|
||||||
|
"SourcePath" = "8:..\\include\\opp\\slab.h"
|
||||||
|
"TargetName" = "8:slab.h"
|
||||||
|
"Tag" = "8:"
|
||||||
|
"Folder" = "8:_D76A1802AFD04C48A519C9F8700E53CC"
|
||||||
|
"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}:_071CF34574024DBD95D2203D6E4279D0"
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_071CF34574024DBD95D2203D6E4279D0"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:..\\include\\opp\\iostream.h"
|
"SourcePath" = "8:..\\include\\opp\\iostream.h"
|
||||||
|
@ -5099,6 +5131,26 @@
|
||||||
"IsDependency" = "11:FALSE"
|
"IsDependency" = "11:FALSE"
|
||||||
"IsolateTo" = "8:"
|
"IsolateTo" = "8:"
|
||||||
}
|
}
|
||||||
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_ED20DE3FDC8A400296E92AE0D37D8665"
|
||||||
|
{
|
||||||
|
"SourcePath" = "8:..\\include\\opp\\static_vector.h"
|
||||||
|
"TargetName" = "8:static_vector.h"
|
||||||
|
"Tag" = "8:"
|
||||||
|
"Folder" = "8:_D76A1802AFD04C48A519C9F8700E53CC"
|
||||||
|
"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}:_ED5FED616EA64689AB793E5D8BD3F13D"
|
"{1FB2D0AE-D3B9-43D4-B9DD-F88EC61E35DE}:_ED5FED616EA64689AB793E5D8BD3F13D"
|
||||||
{
|
{
|
||||||
"SourcePath" = "8:..\\include\\nes\\mmc3.c"
|
"SourcePath" = "8:..\\include\\nes\\mmc3.c"
|
||||||
|
@ -5712,15 +5764,15 @@
|
||||||
{
|
{
|
||||||
"Name" = "8:Microsoft Visual Studio"
|
"Name" = "8:Microsoft Visual Studio"
|
||||||
"ProductName" = "8:oscar64"
|
"ProductName" = "8:oscar64"
|
||||||
"ProductCode" = "8:{F884314C-DBC1-466B-9A34-1761B921E1BD}"
|
"ProductCode" = "8:{50B8F261-E014-4D97-807C-8B181651E0CF}"
|
||||||
"PackageCode" = "8:{5563B34B-0822-45A3-85A4-8007E3D57051}"
|
"PackageCode" = "8:{73E601A2-834D-4280-AFAD-0E275AEDBF01}"
|
||||||
"UpgradeCode" = "8:{9AB61EFF-ACAC-4079-9950-8D96615CD4EF}"
|
"UpgradeCode" = "8:{9AB61EFF-ACAC-4079-9950-8D96615CD4EF}"
|
||||||
"AspNetVersion" = "8:2.0.50727.0"
|
"AspNetVersion" = "8:2.0.50727.0"
|
||||||
"RestartWWWService" = "11:FALSE"
|
"RestartWWWService" = "11:FALSE"
|
||||||
"RemovePreviousVersions" = "11:TRUE"
|
"RemovePreviousVersions" = "11:TRUE"
|
||||||
"DetectNewerInstalledVersion" = "11:TRUE"
|
"DetectNewerInstalledVersion" = "11:TRUE"
|
||||||
"InstallAllUsers" = "11:FALSE"
|
"InstallAllUsers" = "11:FALSE"
|
||||||
"ProductVersion" = "8:1.26.224"
|
"ProductVersion" = "8:1.26.225"
|
||||||
"Manufacturer" = "8:oscar64"
|
"Manufacturer" = "8:oscar64"
|
||||||
"ARPHELPTELEPHONE" = "8:"
|
"ARPHELPTELEPHONE" = "8:"
|
||||||
"ARPHELPLINK" = "8:"
|
"ARPHELPLINK" = "8:"
|
||||||
|
|
Loading…
Reference in New Issue