	.section .text.m0, "ax"
	.file	"CRC24Asm.m0.asm"
	// DO NOT MODIFY THE CONTENT ABOVE
	.global CRC24Asm
CRC24Asm:
R1: M[0] -> BIU1.T0;
NOP;
NOP;
NOP;
BIU1:Load(T0)(A++) -> BIU1.T1;
BIU1:Load(T0)(A++) -> M[61];
BIU1:Load(T0)(A++) -> M[62];
BIU1:Load(T0)(A++) -> M[63];
BIU1:Load(T0)(A++) -> SHU1.T2;
BIU1:Load(T0)(A++) -> SHU1.T3;
BIU1:Load(T0)(A++) -> SHU0.T4;
BIU1:Load(T0)(A++) -> SHU1.T4  || IMA0: CompSel(0,0,0,0) (B) -> BIU1.T3;
BIU1:Load(T0)(A++) -> BIU1.T2;
BIU1:Load(T0)(A++) -> M[60] || IMA0: CompSel(0,0,0,0) (B) -> SHU1.T1;
BIU1:Store(T3,T1)(Mask)  || R0:M[61] -> BIU0.T1 || IMA0: CompSel(0,0,0,0) (B) -> SHU2.T1;
NOP;
R5:PreConfig(M[63]);
R5:WriteConf(Mfetch)->KI[0-3];
BIU0:Load(T1)(A++) -> SHU1.T0 || R5:WriteConf(Mfetch)->KI[8-11] || SHU1:Index(T2,T1) -> IMA3.T0;
BIU0:Load(T1)(A++) -> M[0] || SHU1:T3+V(0)->IMA3.T1;
SHU1:T3+V(64)->IMA3.T1;
IMA3: T1 - T0 (B)(T) -> IMA3.T4 || SHU1:T1+V(64)->IMA3.T2;
R0:M[60] -> BIU0.T2 || IMA3: T1 - T0 (B)(T) -> SHU1.T3;
R0:M[62] -> BIU0.T1;
IMA3: CompSel(T4,0,T4,T1) (B) -> SHU1.T2;
NOP;
NOP;
SHU1:Index(T1,T2);
R3:M[0] -> IMA3.T3 || SHU1:Index(T0,T2) -> BIU1.T3;
NOP;
NOP;
IMA3: CompSel(T2,T0,T3,0) (B) -> SHU1.T1;
NOP;
SHU1:Index(T1,T3);
SHU1:Index(T0,T3) -> BIU0.T3;
NOP;

MFetch:LPTO %HW_CRC24P2P @(KI0 - 0);
BIU1:DisLoad(T2,T3)(A++)(QL) -> SHU0.T0 || BIU0:DisLoad(T2,T3)(A++)(QL) -> SHU0.T1;
BIU1:DisLoad(T2,T3)(A++)(QL) -> SHU1.T0 || BIU0:DisLoad(T2,T3)(A++)(QL) -> SHU1.T1;
BIU1:DisLoad(T2,T3)(A++)(QL) -> SHU2.T0 || BIU0:DisLoad(T2,T3)(A++)(QL) -> SHU2.T1;
BIU0:Load(T1)(A++) -> IMA2.T4;
BIU0:Load(T1)(A++) -> BIU0.T3;
NOP;
NOP;
NOP;
NOP;
NOP;
SHU0:T0^T1->SHU0.T0;
SHU0:CRC(T0) -> SHU0.T0  || SHU1:T0^T1->SHU1.T0;
SHU0:CRC(T0) -> SHU0.T0  || SHU1:CRC(T0) -> SHU1.T0  || SHU2:T0^T1-> SHU2.T0;
SHU0:CRC(T0) -> SHU0.T0  || SHU1:CRC(T0) -> SHU1.T0  || SHU2:CRC(T0) -> SHU2.T0;
SHU0:Index(T0,T4)->IMA2.T2 || SHU1:CRC(T0) -> SHU1.T0  || SHU2:CRC(T0) -> SHU2.T0;
SHU1:Index(T0,T4)->IMA2.T1 || SHU2:CRC(T0) -> IMA2.T0;
IMA2:T2^T4->IMA2.T3;
IMA2:T1^Ttmp->IMA2.T3;
IMA2:T0^Ttmp->BIU1.T3;
NOP;
NOP;

HW_CRC24P2P:

IMA2:T2^T1->IMA2.T3;
IMA2:T0^Ttmp->BIU1.T3;
NOP;
NOP;
BIU1:Store(T3,T1)(Mask)(Mode0);
NOP;
NOP;
NOP;
NOP;
NOP;
NOP;
MFetch:MPU.STOP;
