From 6c797570fac6862293f2c0c432f75b9d1b395e17 Mon Sep 17 00:00:00 2001 From: Jordan Carlin Date: Fri, 12 Jan 2024 19:10:13 -0800 Subject: [PATCH] Add coverage for all Zcb instructions --- tests/coverage/ifu.S | 32 ++++++++++++++++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/tests/coverage/ifu.S b/tests/coverage/ifu.S index cc24b50b0..f387774bf 100644 --- a/tests/coverage/ifu.S +++ b/tests/coverage/ifu.S @@ -40,12 +40,40 @@ main: .hword 0x2002 // c.fldsp fs0, 0 .hword 0xA002 // c.fsdsp fs0, 0 .hword 0x9C41 // line 134 Illegal compressed instruction + + # Zcb coverage tests # could restore assembly language versions when GCC supports Zcb -# c.lbu s1, 0(s0) // exercise c.lbu mv s0, sp + #c.lbu s1, 0(s0) // exercise c.lbu .hword 0x8004 // c.lbu s1, 0(s0) + #c.lh s1, 0(s0) // exercise c.lh + .hword 0x8444 // c.lh s1, 0(s0) + #c.lhu s1, 0(s0) // exercise c.lhu + .hword 0x8404 // c.lhu s1, 0(s0) + #c.sb s1, 0(s0) // exercise c.sb + .hword 0x8804 // c.sb s1, 0(s0) + #c.sh s1, 0(s0) // exercise c.sh + .hword 0x8C04 // c.sh s1, 0(s0) + + .hword 0x8C44 // Illegal compressed instruction with op = 00, Instr[15:10] = 100011, Instr[6] = 1 and 0's everywhere else. Line 119 illegal instruction + .hword 0x9C00 // Illegal compressed instruction with op = 00, Instr[15:10] = 100111, and 0's everywhere else. Line 119 illegal instruction + + li s0, 0xFF + # c.zext.b s0 // exercise c.zext.b + .hword 0x9C61 // c.zext.b s0 + # c.sext.b s0 // exercise c.sext.b + .hword 0x9C65 // c.sext.b s0 + # c.zext.h s0 // exercise c.zext.h + .hword 0x9C69 // c.zext.h s0 + # c.sext.h s0 // exercise c.sext.h + .hword 0x9C6D // c.sext.h s0 + # c.zext.w s0 // exercise c.zext.w + .hword 0x9C71 // c.zext.w s0 + # c.not s0 // exercise c.not + .hword 0x9C75 // c.not s0 + + .hword 0x9C7D // Reserved instruction from line 187 with op = 01, Instr[15:10] = 100111, Instr[6:5] = 11, and 0's everywhere else - //.hword 0x9C01 //# Illegal compressed instruction with op = 01, instr[15:10] = 100111, and 0's everywhere else