CREATOR (https://creatorsim.github.io/)
-
Test checking correct behaviour:
-
RISC-V default examples:
Click to expand
Test Name Description In use test_riscv_example_001 Data Storage βοΈ test_riscv_example_002 ALU operations β test_riscv_example_003 Store/Load Data in Memory β test_riscv_example_004 FPU operations β test_riscv_example_005 Loop β test_riscv_example_006 Branch β test_riscv_example_007 Loop + Memory β test_riscv_example_008 I/O Syscalls βοΈ test_riscv_example_009 I/O Syscalls + Strings βοΈ test_riscv_example_011 Subrutines β test_riscv_example_012 Factorial β -
Libraries:
Click to expand
Test Name Description In use test_riscv_libraries_001 Min and Max β -
System calls:
Click to expand
Test Name Description In use test_riscv_syscall_001 print_int β test_riscv_syscall_002 print_float β test_riscv_syscall_003 print_double β test_riscv_syscall_004 print_string β test_riscv_syscall_005 read_int βοΈ test_riscv_syscall_006 read_float βοΈ test_riscv_syscall_007 read_double βοΈ test_riscv_syscall_008 read_string βοΈ test_riscv_syscall_009 sbrk β test_riscv_syscall_010 exit β test_riscv_syscall_011 print_char β test_riscv_syscall_012 read_char βοΈ
-
-
Tests that force errors to check that they are detected correctly:
-
Compilation:
Click to expand
Test Name Description In use test_riscv_error_compiler_001 Tag repeated (m1) β test_riscv_error_compiler_002 Instruction not found (m2) β test_riscv_error_compiler_003 Incorrect syntax in an instruction (m3) β test_riscv_error_compiler_004 Nonexistent register (m4) β test_riscv_error_compiler_005 Immediate number too large (m5) β test_riscv_error_compiler_006 Immediate number not valid (m6) β test_riscv_error_compiler_007 Invalid tag (m7) β test_riscv_error_compiler_008 Address too large (m8) β test_riscv_error_compiler_009 Invalid address (m9) β test_riscv_error_compiler_010 Space allocation too large (m10) βοΈ test_riscv_error_compiler_014 Incorrect directive (m14) β test_riscv_error_compiler_015 Invalid value, must be a number (m15) β test_riscv_error_compiler_016 Character string does not begin with " (m16) β test_riscv_error_compiler_017 Character string not ending with " (m17) β test_riscv_error_compiler_018 Number too large (m18) β test_riscv_error_compiler_019 Empty number (m19) β test_riscv_error_compiler_021 Data not aligned (m21) β test_riscv_error_compiler_022 Number not positive (m22) β test_riscv_error_compiler_023 Empty directive (m23) β test_riscv_error_compiler_030 Empty file β -
Execution:
Click to expand
Test Name Description In use test_riscv_error_executor_001 Program without instructions β test_riscv_error_executor_002 main tag does not exist β test_riscv_error_executor_003 sp register in data segment β test_riscv_error_executor_004 sp register in text segment β test_riscv_error_executor_005 Memory writing in text segment β test_riscv_error_executor_006 Memory reading from text segment β test_riscv_error_executor_007 Memory write not aligned β test_riscv_error_executor_008 Memory read not aligned β test_riscv_error_executor_009 Write to register without permision β -
Sentinel (tests that check the parameter passing convention):
Click to expand
Test Name Description In use test_riscv_sentinels_001 Changing the a0 register inside test function β test_riscv_sentinels_002 Changing the a1 register inside the test function β test_riscv_sentinels_003 Changing the a2 register inside the test function β test_riscv_sentinels_004 Changing the a3 register inside the test function β test_riscv_sentinels_005 Changing the a4 register inside the test function β test_riscv_sentinels_006 Changing the a5 register inside the test function β test_riscv_sentinels_007 Changing the a6 register inside the test function β test_riscv_sentinels_008 Changing the a7 register inside the test function β test_riscv_sentinels_009 Changing the t0 register inside the test function β test_riscv_sentinels_010 Changing the t1 register inside the test function β test_riscv_sentinels_011 Changing the t2 register inside the test function β test_riscv_sentinels_012 Changing the t3 register inside the test function β test_riscv_sentinels_013 Changing the t4 register inside the test function β test_riscv_sentinels_014 Changing the t5 register inside the test function β test_riscv_sentinels_015 Changing the t6 register inside the test function β test_riscv_sentinels_016 Changing the s0 register inside the test function β test_riscv_sentinels_017 Changing the s1 register inside the test function β test_riscv_sentinels_018 Changing the s2 register inside the test function β test_riscv_sentinels_019 Changing the s3 register inside the test function β test_riscv_sentinels_020 Changing the s4 register inside the test function β test_riscv_sentinels_021 Changing the s5 register inside the test function β test_riscv_sentinels_022 Changing the s6 register inside the test function β test_riscv_sentinels_023 Changing the s7 register inside the test function β test_riscv_sentinels_024 Changing the s8 register inside the test function β test_riscv_sentinels_025 Changing the s9 register inside the test function β test_riscv_sentinels_026 Changing the s10 register inside the test function β test_riscv_sentinels_027 Changing the s11 register inside the test function β test_riscv_sentinels_028 Changing the ra register inside the test function β test_riscv_sentinels_029 Changing the sp register inside the test function β test_riscv_sentinels_030 Changing the gp register inside test function β test_riscv_sentinels_031 Changing the tp register inside the test function β test_riscv_sentinels_032 Changing the s1 register inside the test function and saving to the stack β test_riscv_sentinels_033 Changing the s1 register inside the test function and saving on stack, but without restoring β test_riscv_sentinels_034 Changing register s1 inside the test function and saving to stack, but restoring another address β test_riscv_sentinels_035 Changing register s1 inside the test function and saving to stack, but restoring another size β test_riscv_sentinels_036 Changing of register s1 inside the test function and saving to stack, but the stack is overwritten β -
Instructions (tests that check the instruction set):
Click to expand
Test Name Description In use test_riscv_instruction_001 add β test_riscv_instruction_002 addi β test_riscv_instruction_003 sub β test_riscv_instruction_004 lui β test_riscv_instruction_005 jal β test_riscv_instruction_006 jalr β test_riscv_instruction_007 beq β test_riscv_instruction_008 bne β test_riscv_instruction_009 blt β test_riscv_instruction_010 bge β test_riscv_instruction_011 bltu β test_riscv_instruction_012 bgeu β test_riscv_instruction_013 lb, lh, lw, sb, sh, sw β test_riscv_instruction_014 lbu, lhu β test_riscv_instruction_015 slti β test_riscv_instruction_016 sltiu β test_riscv_instruction_017 xori β test_riscv_instruction_018 ori β test_riscv_instruction_019 andi β test_riscv_instruction_020 div-2reg β test_riscv_instruction_021 divu-2reg β test_riscv_instruction_022 rotr β test_riscv_instruction_023 sll β test_riscv_instruction_024 slt β test_riscv_instruction_025 sltu β test_riscv_instruction_026 xori β test_riscv_instruction_027 srl β test_riscv_instruction_028 sra β test_riscv_instruction_029 or β test_riscv_instruction_030 and β test_riscv_instruction_031 l.d y s.d β test_riscv_instruction_032 mult β test_riscv_instruction_033 multu β test_riscv_instruction_034 mul β test_riscv_instruction_035 addu β test_riscv_instruction_036 addiu β test_riscv_instruction_037 b β test_riscv_instruction_038 div β test_riscv_instruction_039 divu β test_riscv_instruction_040 rem/mod β test_riscv_instruction_041 modu β test_riscv_instruction_042 bgt β test_riscv_instruction_043 bgtu β test_riscv_instruction_044 ble β test_riscv_instruction_045 bleu β test_riscv_instruction_046 nor β test_riscv_instruction_047 nop β test_riscv_instruction_048 move β test_riscv_instruction_049 mthi, mtlo, mfhi, mflo β test_riscv_instruction_050 subu β test_riscv_instruction_051 beqz β test_riscv_instruction_052 bgez β test_riscv_instruction_053 bgezal β test_riscv_instruction_054 bgtz β test_riscv_instruction_055 blez β test_riscv_instruction_056 blt β test_riscv_instruction_057 bnez β test_riscv_instruction_058 sqrt.s/d, li.s/d β test_riscv_instruction_059 add.s/d β test_riscv_instruction_060 sub.s/d β test_riscv_instruction_061 abs.s/d β test_riscv_instruction_062 mul.s/d β test_riscv_instruction_063 div.s/d β test_riscv_instruction_064 rsqrt.s/d β test_riscv_instruction_065 cvt.s.d/d.s β test_riscv_instruction_066 cvt.w.d/w.s β test_riscv_instruction_067 cvt.s.w/cvt.d.w β
-
-
Test checking correct behaviour:
-
MIPS-32 default examples:
Click to expand
Test Name Description In use test_mips_example_001 Data Storage βοΈ test_mips_example_002 ALU operations β test_mips_example_003 Store/Load Data in Memory β test_mips_example_004 FPU operations β test_mips_example_005 Loop β test_mips_example_006 Branch β test_mips_example_007 Loop + Memory β test_mips_example_008 I/O Syscalls βοΈ test_mips_example_009 I/O Syscalls + Strings βοΈ test_mips_example_011 Subrutines β test_mips_example_012 Factorial β -
Libraries:
Click to expand
Test Name Description In use test_mpis_libraries_001 Min and Max β -
System calls:
Click to expand
Test Name Description In use test_mips_syscall_001 print_int β test_mips_syscall_002 print_float β test_mips_syscall_003 print_double β test_mips_syscall_004 print_string β test_mips_syscall_005 read_int βοΈ test_mips_syscall_006 read_float βοΈ test_mips_syscall_007 read_double βοΈ test_mips_syscall_008 read_string βοΈ test_mips_syscall_009 sbrk β test_mips_syscall_010 exit β test_mips_syscall_011 print_char β test_mips_syscall_012 read_char βοΈ
-
-
Tests that force errors to check that they are detected correctly:
-
Compilation:
Click to expand
Test Name Description In use test_mips_error_compiler_001 Tag repeated (m1) β test_mips_error_compiler_002 Instruction not found (m2) β test_mips_error_compiler_003 Incorrect syntax in an instruction (m3) β test_mips_error_compiler_004 Nonexistent register (m4) β test_mips_error_compiler_005 Immediate number too large (m5) β test_mips_error_compiler_006 Immediate number not valid (m6) β test_mips_error_compiler_007 Invalid tag (m7) β test_mips_error_compiler_008 Address too large (m8) β test_mips_error_compiler_009 Invalid address (m9) β test_mips_error_compiler_010 Space allocation too large (m10) βοΈ test_mips_error_compiler_014 Incorrect directive (m14) β test_mips_error_compiler_015 Invalid value, must be a number (m15) β test_mips_error_compiler_016 Character string does not begin with " (m16) β test_mips_error_compiler_017 Character string not ending with " (m17) β test_mips_error_compiler_018 Number too large (m18) β test_mips_error_compiler_019 Empty number (m19) β test_mips_error_compiler_021 Data not aligned (m21) β test_mips_error_compiler_022 Number not positive (m22) β test_mips_error_compiler_023 Empty directive (m23) β test_mips_error_compiler_030 Empty file β -
Execution:
Click to expand
Test Name Description In use test_mips_error_executor_001 Program without instructions β test_mips_error_executor_002 main tag does not exist β test_mips_error_executor_003 $sp register in data segment β test_mips_error_executor_004 $sp register in text segment β test_mips_error_executor_005 Memory writing in text segment β test_mips_error_executor_006 Memory reading from text segment β test_mips_error_executor_007 Memory write not aligned β test_mips_error_executor_008 Memory read not aligned β test_mips_error_executor_009 Write to register without permision β -
Sentinel (tests that check the parameter passing convention):
Click to expand
Test Name Description In use test_mips_sentinels_001 Changing the a0 register inside test function β test_mips_sentinels_002 Changing the a1 register inside the test function β test_mips_sentinels_003 Changing the a2 register inside the test function β test_mips_sentinels_004 Changing the a3 register inside the test function β test_mips_sentinels_005 Changing the fp register inside the test function β test_mips_sentinels_006 Changing the gp register inside the test function β test_mips_sentinels_007 Changing the k0 register inside the test function β test_mips_sentinels_008 Changing the k1 register inside the test function β test_mips_sentinels_009 Changing the ra register inside the test function β test_mips_sentinels_010 Changing the s0 register inside the test function β test_mips_sentinels_011 Changing the s1 register inside the test function β test_mips_sentinels_012 Changing the s2 register inside the test function β test_mips_sentinels_013 Changing the s3 register inside the test function β test_mips_sentinels_014 Changing the s4 register inside the test function β test_mips_sentinels_015 Changing the s5 register inside the test function β test_mips_sentinels_016 Changing the s6 register inside the test function β test_mips_sentinels_017 Changing the s7 register inside the test function β test_mips_sentinels_018 Changing the sp register inside the test function β test_mips_sentinels_019 Changing the t0 register inside the test function β test_mips_sentinels_020 Changing the t1 register inside the test function β test_mips_sentinels_021 Changing the t2 register inside the test function β test_mips_sentinels_022 Changing the t3 register inside the test function β test_mips_sentinels_023 Changing the t4 register inside the test function β test_mips_sentinels_024 Changing the t5 register inside the test function β test_mips_sentinels_025 Changing the t6 register inside the test function β test_mips_sentinels_026 Changing the t7 register inside the test function β test_mips_sentinels_027 Changing the t8 register inside the test function β test_mips_sentinels_028 Changing the t9 register inside the test function β test_mips_sentinels_029 Changing the v0 register inside the test function β test_mips_sentinels_030 Changing the v1 register inside test function β test_mips_sentinels_031 Changing the s0 register inside the test function and saving to the stack β test_mips_sentinels_032 Changing the s0 register inside the test function and saving on stack, but without restoring β test_mips_sentinels_033 Changing register s0 inside the test function and saving to stack, but restoring another address β test_mips_sentinels_034 Changing register s0 inside the test function and saving to stack, but restoring another size β test_mips_sentinels_035 Changing of register s0 inside the test function and saving to stack, but the stack is overwritten β -
Instructions (tests that check the instruction set):
Click to expand
Test Name Description In use test_mips_instruction_001 add β test_mips_instruction_002 addi β test_mips_instruction_003 sub β test_mips_instruction_004 lui β test_mips_instruction_005 jal β test_mips_instruction_006 jalr β test_mips_instruction_007 beq β test_mips_instruction_008 bne β test_mips_instruction_009 blt β test_mips_instruction_010 bge β test_mips_instruction_011 bltu β test_mips_instruction_012 bgeu β test_mips_instruction_013 lb, lh, lw, sb, sh, sw β test_mips_instruction_014 lbu, lhu β test_mips_instruction_015 slti β test_mips_instruction_016 sltiu β test_mips_instruction_017 xori β test_mips_instruction_018 ori β test_mips_instruction_019 andi β test_mips_instruction_020 div-2reg β test_mips_instruction_021 divu-2reg β test_mips_instruction_022 rotr β test_mips_instruction_023 sll β test_mips_instruction_024 slt β test_mips_instruction_025 sltu β test_mips_instruction_026 xori β test_mips_instruction_027 srl β test_mips_instruction_028 sra β test_mips_instruction_029 or β test_mips_instruction_030 and β test_mips_instruction_031 l.d y s.d β test_mips_instruction_032 mult β test_mips_instruction_033 multu β test_mips_instruction_034 mul β test_mips_instruction_035 addu β test_mips_instruction_036 addiu β test_mips_instruction_037 b β test_mips_instruction_038 div β test_mips_instruction_039 divu β test_mips_instruction_040 rem/mod β test_mips_instruction_041 modu β test_mips_instruction_042 bgt β test_mips_instruction_043 bgtu β test_mips_instruction_044 ble β test_mips_instruction_045 bleu β test_mips_instruction_046 nor β test_mips_instruction_047 nop β test_mips_instruction_048 move β test_mips_instruction_049 mthi, mtlo, mfhi, mflo β test_mips_instruction_050 subu β test_mips_instruction_051 beqz β test_mips_instruction_052 bgez β test_mips_instruction_053 bgezal β test_mips_instruction_054 bgtz β test_mips_instruction_055 blez β test_mips_instruction_056 blt β test_mips_instruction_057 bnez β test_mips_instruction_058 sqrt.s/d, li.s/d β test_mips_instruction_059 add.s/d β test_mips_instruction_060 sub.s/d β test_mips_instruction_061 abs.s/d β test_mips_instruction_062 mul.s/d β test_mips_instruction_063 div.s/d β test_mips_instruction_064 rsqrt.s/d β test_mips_instruction_065 cvt.s.d/d.s β test_mips_instruction_066 cvt.w.d/w.s β test_mips_instruction_067 cvt.s.w/cvt.d.w β
-