From 54f3a6fdf33bb974a1a4219d2afe31d326a4cf18 Mon Sep 17 00:00:00 2001 From: Alexander Horner <contact@alexhorner.cc> Date: Fri, 16 Jun 2023 21:56:07 +0100 Subject: [PATCH] Revert instruction decompression for performance --- minichlink/minichlink.c | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/minichlink/minichlink.c b/minichlink/minichlink.c index 36dbc9b..8c3e5ec 100644 --- a/minichlink/minichlink.c +++ b/minichlink/minichlink.c @@ -1307,30 +1307,26 @@ static int DefaultReadWord( void * dev, uint32_t address_to_read, uint32_t * dat { MCF.WriteReg32( dev, DMABSTRACTAUTO, 0 ); // Disable Autoexec. - // lw x8,0(x11) // Pull the address from DATA1 - // lw x9,0(x8) // Read the data at that location. - MCF.WriteReg32( dev, DMPROGBUF0, 0x0005a403 ); - MCF.WriteReg32( dev, DMPROGBUF1, 0x00042483 ); + // c.lw x8,0(x11) // Pull the address from DATA1 + // c.lw x9,0(x8) // Read the data at that location. + MCF.WriteReg32( dev, DMPROGBUF0, 0x40044180 ); if( autoincrement ) { - // addi x8, x8, 4 - // sw x9, 0(x10) // Write back to DATA0 + // c.addi x8, 4 + // c.sw x9, 0(x10) // Write back to DATA0 - MCF.WriteReg32( dev, DMPROGBUF2, 0x00440413 ); - MCF.WriteReg32( dev, DMPROGBUF3, 0x00952023 ); + MCF.WriteReg32( dev, DMPROGBUF1, 0xc1040411 ); } else { - // nop // ADDI x0, x0, 0 - // sw x9, 0(x10) // Write back to DATA0 + // c.nop + // c.sw x9, 0(x10) // Write back to DATA0 - MCF.WriteReg32( dev, DMPROGBUF2, 0x00000013 ); - MCF.WriteReg32( dev, DMPROGBUF3, 0x00952023 ); + MCF.WriteReg32( dev, DMPROGBUF1, 0xc1040001 ); } - // sw x8, 0(x11) // Write addy to DATA1 - // ebreak - MCF.WriteReg32( dev, DMPROGBUF4, 0x0085a023 ); - MCF.WriteReg32( dev, DMPROGBUF5, 0x00100073 ); + // c.sw x8, 0(x11) // Write addy to DATA1 + // c.ebreak + MCF.WriteReg32( dev, DMPROGBUF2, 0x9002c180 ); if( iss->statetag != STTAG( "WRSQ" ) ) { -- GitLab