From 8ea98874a590154a618464605d009956beed705b Mon Sep 17 00:00:00 2001 From: FallenSigh Date: Wed, 24 Jun 2026 22:52:08 +0800 Subject: [PATCH] Inline CRC32 computation into main (bypass function call) --- sdk/software/examples/asm/user-sample.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/sdk/software/examples/asm/user-sample.c b/sdk/software/examples/asm/user-sample.c index a1360b4..3322369 100644 --- a/sdk/software/examples/asm/user-sample.c +++ b/sdk/software/examples/asm/user-sample.c @@ -201,7 +201,15 @@ int main(void) } /* ── CRC32 over result region ─────────────────────────────── */ - crc = compute_crc32(extram); + crc = 0xFFFFFFFF; + for (i = 0; i < RESULT_WORDS; i++) { + uint32_t w = extram[DST_BASE + i]; + crc = crc32_table[(crc ^ (w & 0xFF)) & 0xFF] ^ (crc >> 8); + crc = crc32_table[(crc ^ ((w >> 8) & 0xFF)) & 0xFF] ^ (crc >> 8); + crc = crc32_table[(crc ^ ((w >> 16) & 0xFF)) & 0xFF] ^ (crc >> 8); + crc = crc32_table[(crc ^ (w >> 24) ) & 0xFF] ^ (crc >> 8); + } + crc ^= 0xFFFFFFFF; /* ── Final markers ────────────────────────────────────────── */ printf("MATMUL_CRC32=%08lx\n", (unsigned long)crc);