From 3763b365d1730e2903d5efb7e045327bfb76e952 Mon Sep 17 00:00:00 2001 From: "fires.gc" Date: Sat, 11 Oct 2008 17:21:00 +0000 Subject: [PATCH] small improvements of the LLE plugin git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@840 8ced0084-cf51-0410-be5f-012b33b47a6e --- Docs/DSP/DSP_InterC/DSP_InterC/DSP_InterC.cpp | 2 +- .../Plugin_DSP_LLE/Plugin_DSP_LLE.vcproj | 8 + .../Plugin_DSP_LLE/Src/HLE_Functions.cpp | 2912 ++++++++--------- .../Plugins/Plugin_DSP_LLE/Src/HLE_Helper.cpp | 35 + .../Plugins/Plugin_DSP_LLE/Src/HLE_Helper.h | 129 + 5 files changed, 1593 insertions(+), 1493 deletions(-) create mode 100644 Source/Plugins/Plugin_DSP_LLE/Src/HLE_Helper.cpp create mode 100644 Source/Plugins/Plugin_DSP_LLE/Src/HLE_Helper.h diff --git a/Docs/DSP/DSP_InterC/DSP_InterC/DSP_InterC.cpp b/Docs/DSP/DSP_InterC/DSP_InterC/DSP_InterC.cpp index a7bb11e6e9..31c88990e1 100644 --- a/Docs/DSP/DSP_InterC/DSP_InterC/DSP_InterC.cpp +++ b/Docs/DSP/DSP_InterC/DSP_InterC/DSP_InterC.cpp @@ -26,7 +26,7 @@ void Decode(uint16 startAddress, uint16 endAddress) uint16 oldPC = g_currentAddress; uint16 op = FetchOpcode(); - OutBuffer::Add("l_%4X:", oldPC); + OutBuffer::Add("// l_%4X:", oldPC); DecodeOpcode(op); } } diff --git a/Source/Plugins/Plugin_DSP_LLE/Plugin_DSP_LLE.vcproj b/Source/Plugins/Plugin_DSP_LLE/Plugin_DSP_LLE.vcproj index 59e2e3ca74..9d602c98eb 100644 --- a/Source/Plugins/Plugin_DSP_LLE/Plugin_DSP_LLE.vcproj +++ b/Source/Plugins/Plugin_DSP_LLE/Plugin_DSP_LLE.vcproj @@ -754,6 +754,14 @@ RelativePath=".\Src\HLE_Functions.cpp" > + + + + >=(sint64 value) - { - sint64 acc = dsp_get_long_acc(m_num); - acc >>= value; - dsp_set_long_acc(m_num, acc); - } - - void operator+=(sint64 value) - { - sint64 acc = dsp_get_long_acc(m_num); - acc += value; - dsp_set_long_acc(m_num, acc); - } - - operator sint64() - { - return dsp_get_long_acc(m_num); - } - - operator uint64() - { - return dsp_get_long_acc(m_num); - } - -private: - - uint8 m_num; -}; - - -ACCU ACC0(0); -ACCU ACC1(1); - - -class CProd -{ -public: - CProd() - { - } - - void operator=(sint64 value) - { - dsp_set_long_prod(value); - } - - operator sint64() - { - return dsp_get_long_prod(); - } - -private: - -}; - +TAccumulator<0> ACC0; +TAccumulator<1> ACC1; CProd PROD; u16 HLE_ROM_80E7_81F8() { sint8 MultiplyModifier = GetMultiplyModifier(); -l_80E7: - AX0_h = ReadDMEM(R00); - R00++; - ACC0 = 0; - Update_SR_Register(ACC0); -l_80E8: - AX1_l = ReadDMEM(R01); - R01++; - ACC1 = 0; - Update_SR_Register(ACC1); -l_80E9: - AC0_m = ReadDMEM(R02); - R02++; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_80EA: - AC0_l = ReadDMEM(R02); - R02++; - ACC1 = 0; - Update_SR_Register(ACC1); -l_80EB: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 <<= 16; - Update_SR_Register(ACC0); -l_80EC: - AX0_h = ReadDMEM(R00); - R00++; -l_80ED: - AC1_l = ReadDMEM(R02); - R02++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_80EE: - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_80EF: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_80F0: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_80F1: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_80F2: - AC0_l = ReadDMEM(R02); - R02++; -l_80F3: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_80F4: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_80F5: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_80F6: - AC1_l = ReadDMEM(R02); - R02++; -l_80F7: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_80F8: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_80F9: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_80FA: - AC0_l = ReadDMEM(R02); - R02++; -l_80FB: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_80FC: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_80FD: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_80FE: - AC1_l = ReadDMEM(R02); - R02++; -l_80FF: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_8100: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8101: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_8102: - AC0_l = ReadDMEM(R02); - R02++; -l_8103: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_8104: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8105: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_8106: - AC1_l = ReadDMEM(R02); - R02++; -l_8107: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_8108: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8109: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_810A: - AC0_l = ReadDMEM(R02); - R02++; -l_810B: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_810C: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_810D: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_810E: - AC1_l = ReadDMEM(R02); - R02++; -l_810F: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_8110: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8111: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_8112: - AC0_l = ReadDMEM(R02); - R02++; -l_8113: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_8114: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8115: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_8116: - AC1_l = ReadDMEM(R02); - R02++; -l_8117: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_8118: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8119: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_811A: - AC0_l = ReadDMEM(R02); - R02++; -l_811B: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_811C: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_811D: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_811E: - AC1_l = ReadDMEM(R02); - R02++; -l_811F: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_8120: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8121: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_8122: - AC0_l = ReadDMEM(R02); - R02++; -l_8123: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_8124: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8125: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_8126: - AC1_l = ReadDMEM(R02); - R02++; -l_8127: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_8128: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8129: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_812A: - AC0_l = ReadDMEM(R02); - R02++; -l_812B: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_812C: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_812D: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_812E: - AC1_l = ReadDMEM(R02); - R02++; -l_812F: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_8130: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8131: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_8132: - AC0_l = ReadDMEM(R02); - R02++; -l_8133: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_8134: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8135: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_8136: - AC1_l = ReadDMEM(R02); - R02++; -l_8137: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_8138: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8139: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_813A: - AC0_l = ReadDMEM(R02); - R02++; -l_813B: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_813C: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_813D: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_813E: - AC1_l = ReadDMEM(R02); - R02++; -l_813F: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_8140: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8141: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_8142: - AC0_l = ReadDMEM(R02); - R02++; -l_8143: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_8144: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8145: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_8146: - AC1_l = ReadDMEM(R02); - R02++; -l_8147: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_8148: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8149: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_814A: - AC0_l = ReadDMEM(R02); - R02++; -l_814B: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_814C: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_814D: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_814E: - AC1_l = ReadDMEM(R02); - R02++; -l_814F: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_8150: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8151: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_8152: - AC0_l = ReadDMEM(R02); - R02++; -l_8153: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_8154: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8155: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_8156: - AC1_l = ReadDMEM(R02); - R02++; -l_8157: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_8158: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8159: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_815A: - AC0_l = ReadDMEM(R02); - R02++; -l_815B: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_815C: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_815D: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_815E: - AC1_l = ReadDMEM(R02); - R02++; -l_815F: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_8160: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8161: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_8162: - AC0_l = ReadDMEM(R02); - R02++; -l_8163: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_8164: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8165: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_8166: - AC1_l = ReadDMEM(R02); - R02++; -l_8167: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_8168: - WriteDMEM(R03, AC0_l); - R03++; -l_8169: - ACC0 = PROD; -l_816A: - AX0_l = AC0_m; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_816B: - R01++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_816C: - WriteDMEM(R03, AC1_m); - R03++; -l_816D: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 = 0; - Update_SR_Register(ACC0); -l_816E: - R00 = R04; -l_816F: - R02 = R05; -l_8170: - R03 = R02; -l_8171: - AX0_h = ReadDMEM(R00); - R00++; - ACC0 = 0; - Update_SR_Register(ACC0); -l_8172: - AX1_l = ReadDMEM(R01); - R01++; - ACC1 = 0; - Update_SR_Register(ACC1); -l_8173: - AC0_m = ReadDMEM(R02); - R02++; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8174: - AC0_l = ReadDMEM(R02); - R02++; - ACC1 = 0; - Update_SR_Register(ACC1); -l_8175: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 <<= 16; - Update_SR_Register(ACC0); -l_8176: - AX0_h = ReadDMEM(R00); - R00++; -l_8177: - AC1_l = ReadDMEM(R02); - R02++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8178: - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_8179: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_817A: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_817B: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_817C: - AC0_l = ReadDMEM(R02); - R02++; -l_817D: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_817E: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_817F: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_8180: - AC1_l = ReadDMEM(R02); - R02++; -l_8181: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_8182: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8183: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_8184: - AC0_l = ReadDMEM(R02); - R02++; -l_8185: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_8186: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8187: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_8188: - AC1_l = ReadDMEM(R02); - R02++; -l_8189: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_818A: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_818B: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_818C: - AC0_l = ReadDMEM(R02); - R02++; -l_818D: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_818E: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_818F: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_8190: - AC1_l = ReadDMEM(R02); - R02++; -l_8191: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_8192: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8193: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_8194: - AC0_l = ReadDMEM(R02); - R02++; -l_8195: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_8196: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_8197: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_8198: - AC1_l = ReadDMEM(R02); - R02++; -l_8199: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_819A: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_819B: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_819C: - AC0_l = ReadDMEM(R02); - R02++; -l_819D: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_819E: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_819F: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_81A0: - AC1_l = ReadDMEM(R02); - R02++; -l_81A1: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_81A2: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81A3: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_81A4: - AC0_l = ReadDMEM(R02); - R02++; -l_81A5: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_81A6: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81A7: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_81A8: - AC1_l = ReadDMEM(R02); - R02++; -l_81A9: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_81AA: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81AB: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_81AC: - AC0_l = ReadDMEM(R02); - R02++; -l_81AD: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_81AE: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81AF: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_81B0: - AC1_l = ReadDMEM(R02); - R02++; -l_81B1: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_81B2: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81B3: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_81B4: - AC0_l = ReadDMEM(R02); - R02++; -l_81B5: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_81B6: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81B7: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_81B8: - AC1_l = ReadDMEM(R02); - R02++; -l_81B9: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_81BA: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81BB: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_81BC: - AC0_l = ReadDMEM(R02); - R02++; -l_81BD: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_81BE: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81BF: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_81C0: - AC1_l = ReadDMEM(R02); - R02++; -l_81C1: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_81C2: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81C3: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_81C4: - AC0_l = ReadDMEM(R02); - R02++; -l_81C5: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_81C6: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81C7: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_81C8: - AC1_l = ReadDMEM(R02); - R02++; -l_81C9: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_81CA: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81CB: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_81CC: - AC0_l = ReadDMEM(R02); - R02++; -l_81CD: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_81CE: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81CF: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_81D0: - AC1_l = ReadDMEM(R02); - R02++; -l_81D1: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_81D2: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81D3: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_81D4: - AC0_l = ReadDMEM(R02); - R02++; -l_81D5: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_81D6: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81D7: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_81D8: - AC1_l = ReadDMEM(R02); - R02++; -l_81D9: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_81DA: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81DB: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_81DC: - AC0_l = ReadDMEM(R02); - R02++; -l_81DD: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_81DE: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81DF: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_81E0: - AC1_l = ReadDMEM(R02); - R02++; -l_81E1: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_81E2: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81E3: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_81E4: - AC0_l = ReadDMEM(R02); - R02++; -l_81E5: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_81E6: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81E7: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_81E8: - AC1_l = ReadDMEM(R02); - R02++; -l_81E9: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_81EA: - WriteDMEM(R03, AC0_l); - R03++; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81EB: - AC0_m = ReadDMEM(R02); - R02++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_81EC: - AC0_l = ReadDMEM(R02); - R02++; -l_81ED: - WriteDMEM(R03, AC1_m); - R03++; - ACC0 <<= 16; - Update_SR_Register(ACC0); - AX0_h = ReadDMEM(R00); - R00++; -l_81EE: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81EF: - AC1_m = ReadDMEM(R02); - R02++; - ACC0 >>= 16; - Update_SR_Register(ACC0); -l_81F0: - AC1_l = ReadDMEM(R02); - R02++; -l_81F1: - WriteDMEM(R03, AC0_m); - R03++; - ACC1 <<= 16; - Update_SR_Register(ACC1); - AX0_h = ReadDMEM(R00); - R00++; -l_81F2: - WriteDMEM(R03, AC0_l); - R03++; -l_81F3: - ACC0 = PROD; -l_81F4: - AX1_h = AC0_m; - ACC1 += PROD; - PROD = AX0_h * AX1_l * MultiplyModifier; - Update_SR_Register(PROD); -l_81F5: - R01++; - ACC1 >>= 16; - Update_SR_Register(ACC1); -l_81F6: - WriteDMEM(R03, AC1_m); - R03++; -l_81F7: - WriteDMEM(R03, AC1_l); - R03++; - ACC0 = 0; - Update_SR_Register(ACC0); -l_81F8: +// l_80E7: + AX0_h = ReadDMEM(R00); + R00++; + ACC0 = 0; + Update_SR_Register(ACC0); +// l_80E8: + AX1_l = ReadDMEM(R01); + R01++; + ACC1 = 0; + Update_SR_Register(ACC1); +// l_80E9: + AC0_m = ReadDMEM(R02); + R02++; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_80EA: + AC0_l = ReadDMEM(R02); + R02++; + ACC1 = 0; + Update_SR_Register(ACC1); +// l_80EB: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 <<= 16; + Update_SR_Register(ACC0); +// l_80EC: + AX0_h = ReadDMEM(R00); + R00++; +// l_80ED: + AC1_l = ReadDMEM(R02); + R02++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_80EE: + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_80EF: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_80F0: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_80F1: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_80F2: + AC0_l = ReadDMEM(R02); + R02++; +// l_80F3: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_80F4: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_80F5: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_80F6: + AC1_l = ReadDMEM(R02); + R02++; +// l_80F7: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_80F8: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_80F9: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_80FA: + AC0_l = ReadDMEM(R02); + R02++; +// l_80FB: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_80FC: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_80FD: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_80FE: + AC1_l = ReadDMEM(R02); + R02++; +// l_80FF: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_8100: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8101: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_8102: + AC0_l = ReadDMEM(R02); + R02++; +// l_8103: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_8104: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8105: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_8106: + AC1_l = ReadDMEM(R02); + R02++; +// l_8107: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_8108: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8109: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_810A: + AC0_l = ReadDMEM(R02); + R02++; +// l_810B: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_810C: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_810D: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_810E: + AC1_l = ReadDMEM(R02); + R02++; +// l_810F: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_8110: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8111: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_8112: + AC0_l = ReadDMEM(R02); + R02++; +// l_8113: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_8114: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8115: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_8116: + AC1_l = ReadDMEM(R02); + R02++; +// l_8117: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_8118: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8119: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_811A: + AC0_l = ReadDMEM(R02); + R02++; +// l_811B: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_811C: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_811D: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_811E: + AC1_l = ReadDMEM(R02); + R02++; +// l_811F: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_8120: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8121: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_8122: + AC0_l = ReadDMEM(R02); + R02++; +// l_8123: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_8124: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8125: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_8126: + AC1_l = ReadDMEM(R02); + R02++; +// l_8127: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_8128: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8129: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_812A: + AC0_l = ReadDMEM(R02); + R02++; +// l_812B: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_812C: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_812D: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_812E: + AC1_l = ReadDMEM(R02); + R02++; +// l_812F: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_8130: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8131: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_8132: + AC0_l = ReadDMEM(R02); + R02++; +// l_8133: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_8134: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8135: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_8136: + AC1_l = ReadDMEM(R02); + R02++; +// l_8137: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_8138: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8139: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_813A: + AC0_l = ReadDMEM(R02); + R02++; +// l_813B: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_813C: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_813D: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_813E: + AC1_l = ReadDMEM(R02); + R02++; +// l_813F: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_8140: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8141: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_8142: + AC0_l = ReadDMEM(R02); + R02++; +// l_8143: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_8144: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8145: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_8146: + AC1_l = ReadDMEM(R02); + R02++; +// l_8147: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_8148: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8149: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_814A: + AC0_l = ReadDMEM(R02); + R02++; +// l_814B: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_814C: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_814D: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_814E: + AC1_l = ReadDMEM(R02); + R02++; +// l_814F: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_8150: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8151: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_8152: + AC0_l = ReadDMEM(R02); + R02++; +// l_8153: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_8154: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8155: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_8156: + AC1_l = ReadDMEM(R02); + R02++; +// l_8157: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_8158: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8159: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_815A: + AC0_l = ReadDMEM(R02); + R02++; +// l_815B: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_815C: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_815D: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_815E: + AC1_l = ReadDMEM(R02); + R02++; +// l_815F: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_8160: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8161: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_8162: + AC0_l = ReadDMEM(R02); + R02++; +// l_8163: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_8164: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8165: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_8166: + AC1_l = ReadDMEM(R02); + R02++; +// l_8167: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_8168: + WriteDMEM(R03, AC0_l); + R03++; +// l_8169: + ACC0 = PROD; +// l_816A: + AX0_l = AC0_m; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_816B: + R01++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_816C: + WriteDMEM(R03, AC1_m); + R03++; +// l_816D: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 = 0; + Update_SR_Register(ACC0); +// l_816E: + R00 = R04; +// l_816F: + R02 = R05; +// l_8170: + R03 = R02; +// l_8171: + AX0_h = ReadDMEM(R00); + R00++; + ACC0 = 0; + Update_SR_Register(ACC0); +// l_8172: + AX1_l = ReadDMEM(R01); + R01++; + ACC1 = 0; + Update_SR_Register(ACC1); +// l_8173: + AC0_m = ReadDMEM(R02); + R02++; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8174: + AC0_l = ReadDMEM(R02); + R02++; + ACC1 = 0; + Update_SR_Register(ACC1); +// l_8175: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 <<= 16; + Update_SR_Register(ACC0); +// l_8176: + AX0_h = ReadDMEM(R00); + R00++; +// l_8177: + AC1_l = ReadDMEM(R02); + R02++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8178: + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_8179: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_817A: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_817B: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_817C: + AC0_l = ReadDMEM(R02); + R02++; +// l_817D: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_817E: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_817F: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_8180: + AC1_l = ReadDMEM(R02); + R02++; +// l_8181: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_8182: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8183: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_8184: + AC0_l = ReadDMEM(R02); + R02++; +// l_8185: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_8186: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8187: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_8188: + AC1_l = ReadDMEM(R02); + R02++; +// l_8189: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_818A: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_818B: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_818C: + AC0_l = ReadDMEM(R02); + R02++; +// l_818D: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_818E: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_818F: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_8190: + AC1_l = ReadDMEM(R02); + R02++; +// l_8191: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_8192: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8193: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_8194: + AC0_l = ReadDMEM(R02); + R02++; +// l_8195: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_8196: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_8197: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_8198: + AC1_l = ReadDMEM(R02); + R02++; +// l_8199: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_819A: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_819B: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_819C: + AC0_l = ReadDMEM(R02); + R02++; +// l_819D: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_819E: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_819F: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_81A0: + AC1_l = ReadDMEM(R02); + R02++; +// l_81A1: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_81A2: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81A3: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_81A4: + AC0_l = ReadDMEM(R02); + R02++; +// l_81A5: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_81A6: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81A7: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_81A8: + AC1_l = ReadDMEM(R02); + R02++; +// l_81A9: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_81AA: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81AB: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_81AC: + AC0_l = ReadDMEM(R02); + R02++; +// l_81AD: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_81AE: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81AF: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_81B0: + AC1_l = ReadDMEM(R02); + R02++; +// l_81B1: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_81B2: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81B3: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_81B4: + AC0_l = ReadDMEM(R02); + R02++; +// l_81B5: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_81B6: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81B7: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_81B8: + AC1_l = ReadDMEM(R02); + R02++; +// l_81B9: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_81BA: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81BB: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_81BC: + AC0_l = ReadDMEM(R02); + R02++; +// l_81BD: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_81BE: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81BF: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_81C0: + AC1_l = ReadDMEM(R02); + R02++; +// l_81C1: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_81C2: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81C3: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_81C4: + AC0_l = ReadDMEM(R02); + R02++; +// l_81C5: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_81C6: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81C7: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_81C8: + AC1_l = ReadDMEM(R02); + R02++; +// l_81C9: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_81CA: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81CB: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_81CC: + AC0_l = ReadDMEM(R02); + R02++; +// l_81CD: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_81CE: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81CF: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_81D0: + AC1_l = ReadDMEM(R02); + R02++; +// l_81D1: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_81D2: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81D3: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_81D4: + AC0_l = ReadDMEM(R02); + R02++; +// l_81D5: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_81D6: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81D7: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_81D8: + AC1_l = ReadDMEM(R02); + R02++; +// l_81D9: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_81DA: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81DB: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_81DC: + AC0_l = ReadDMEM(R02); + R02++; +// l_81DD: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_81DE: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81DF: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_81E0: + AC1_l = ReadDMEM(R02); + R02++; +// l_81E1: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_81E2: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81E3: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_81E4: + AC0_l = ReadDMEM(R02); + R02++; +// l_81E5: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_81E6: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81E7: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_81E8: + AC1_l = ReadDMEM(R02); + R02++; +// l_81E9: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_81EA: + WriteDMEM(R03, AC0_l); + R03++; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81EB: + AC0_m = ReadDMEM(R02); + R02++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_81EC: + AC0_l = ReadDMEM(R02); + R02++; +// l_81ED: + WriteDMEM(R03, AC1_m); + R03++; + ACC0 <<= 16; + Update_SR_Register(ACC0); + AX0_h = ReadDMEM(R00); + R00++; +// l_81EE: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81EF: + AC1_m = ReadDMEM(R02); + R02++; + ACC0 >>= 16; + Update_SR_Register(ACC0); +// l_81F0: + AC1_l = ReadDMEM(R02); + R02++; +// l_81F1: + WriteDMEM(R03, AC0_m); + R03++; + ACC1 <<= 16; + Update_SR_Register(ACC1); + AX0_h = ReadDMEM(R00); + R00++; +// l_81F2: + WriteDMEM(R03, AC0_l); + R03++; +// l_81F3: + ACC0 = PROD; +// l_81F4: + AX1_h = AC0_m; + ACC1 += PROD; + PROD = AX0_h * AX1_l * MultiplyModifier; + Update_SR_Register(PROD); +// l_81F5: + R01++; + ACC1 >>= 16; + Update_SR_Register(ACC1); +// l_81F6: + WriteDMEM(R03, AC1_m); + R03++; +// l_81F7: + WriteDMEM(R03, AC1_l); + R03++; + ACC0 = 0; + Update_SR_Register(ACC0); +// l_81F8: //missing: dsp_opc_ret; return 0x81f8; diff --git a/Source/Plugins/Plugin_DSP_LLE/Src/HLE_Helper.cpp b/Source/Plugins/Plugin_DSP_LLE/Src/HLE_Helper.cpp new file mode 100644 index 0000000000..ee82e38bdc --- /dev/null +++ b/Source/Plugins/Plugin_DSP_LLE/Src/HLE_Helper.cpp @@ -0,0 +1,35 @@ +// Copyright (C) 2003-2008 Dolphin Project. + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 2.0. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License 2.0 for more details. + +// A copy of the GPL 2.0 should have been included with the program. +// If not, see http://www.gnu.org/licenses/ + +// Official SVN repository and contact information can be found at +// http://code.google.com/p/dolphin-emu/ + +#include "stdafx.h" + +#include "globals.h" +#include "gdsp_interpreter.h" +#include "gdsp_memory.h" +#include "gdsp_opcodes_helper.h" + + +bool WriteDMEM(uint16 addr, uint16 val) +{ + return dsp_dmem_write(addr, val); +} + +uint16 ReadDMEM(uint16 addr) +{ + return dsp_dmem_read(addr); +} + diff --git a/Source/Plugins/Plugin_DSP_LLE/Src/HLE_Helper.h b/Source/Plugins/Plugin_DSP_LLE/Src/HLE_Helper.h new file mode 100644 index 0000000000..f0e5abb76c --- /dev/null +++ b/Source/Plugins/Plugin_DSP_LLE/Src/HLE_Helper.h @@ -0,0 +1,129 @@ +// Copyright (C) 2003-2008 Dolphin Project. + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, version 2.0. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License 2.0 for more details. + +// A copy of the GPL 2.0 should have been included with the program. +// If not, see http://www.gnu.org/licenses/ + +// Official SVN repository and contact information can be found at +// http://code.google.com/p/dolphin-emu/ + +#ifndef HLE_HELPER_H +#define HLE_HELPER_H + +#include "gdsp_interpreter.h" + +bool WriteDMEM(uint16 addr, uint16 val); +uint16 ReadDMEM(uint16 addr); +void Update_SR_Register(sint64 _Value); +sint8 GetMultiplyModifier(); + +template +class TAccumulator +{ +public: + + TAccumulator() + { + _dbg_assert_(N < 2); + } + + void operator=(sint64 val) + { + setValue(val); + } + + void operator<<=(sint64 value) + { + sint64 acc = getValue(); + acc <<= value; + setValue(acc); + } + + void operator>>=(sint64 value) + { + sint64 acc = getValue(); + acc >>= value; + setValue(acc); + } + + void operator+=(sint64 value) + { + sint64 acc = getValue(); + acc += value; + setValue(acc); + } + + operator sint64() + { + return getValue(); + } + + operator uint64() + { + return getValue(); + } + + inline void setValue(sint64 val) + { + g_dsp.r[0x1c + N] = (uint16)val; + val >>= 16; + g_dsp.r[0x1e + N] = (uint16)val; + val >>= 16; + g_dsp.r[0x10 + N] = (uint16)val; + } + + inline sint64 getValue() + { + sint64 val; + sint64 low_acc; + val = (sint8)g_dsp.r[0x10 + N]; + val <<= 32; + low_acc = g_dsp.r[0x1e + N]; + low_acc <<= 16; + low_acc |= g_dsp.r[0x1c + N]; + val |= low_acc; + return(val); + } +}; + +class CProd +{ +public: + CProd() + { + } + + void operator=(sint64 val) + { + g_dsp.r[0x14] = (uint16)val; + val >>= 16; + g_dsp.r[0x15] = (uint16)val; + val >>= 16; + g_dsp.r[0x16] = (uint16)val; + g_dsp.r[0x17] = 0; + } + + operator sint64() + { + sint64 val; + sint64 low_prod; + val = (sint8)g_dsp.r[0x16]; + val <<= 32; + low_prod = g_dsp.r[0x15]; + low_prod += g_dsp.r[0x17]; + low_prod <<= 16; + low_prod |= g_dsp.r[0x14]; + val += low_prod; + return(val); + } +}; + +#endif \ No newline at end of file