Notebooks · lib/rv32/tests/riscv/rv32um_mul
lib/ rv32/ tests/ riscv/ rv32um_mul.viv
lib/rv32/tests/riscv/rv32um_mul.viv · 1 code cellOpen in the workbenchDownload .vivLook inside this program
- Atlas
The program’s map: every function and which calls which.
There’s no recorded run of this program yet.
Shift+Enter in a cell runs it and moves to the next. Running a cell runs every cell above it too, as one program.
[1]lines 1–325
# riscv-tests rv32um/mul.S, preprocessed by tools/rv32/riscv_tests.py # (riscv-tests commit 7b68f7b91f82; BSD-3-Clause, The Regents of the # University of California). Generated: do not edit. from rv32.system import run_asm, STEP_LIMIT SOURCE = """ .text _start: test_32: li gp, 32 li x11, 32256 li x12, 3067833783 mul x14, x11, x12 li x7, 4608 bne x14, x7, fail test_33: li gp, 33 li x11, 32704 li x12, 3067833783 mul x14, x11, x12 li x7, 4672 bne x14, x7, fail test_2: li gp, 2 li x11, 0 li x12, 0 mul x14, x11, x12 li x7, 0 bne x14, x7, fail test_3: li gp, 3 li x11, 1 li x12, 1 mul x14, x11, x12 li x7, 1 bne x14, x7, fail test_4: li gp, 4 li x11, 3 li x12, 7 mul x14, x11, x12 li x7, 21 bne x14, x7, fail test_5: li gp, 5 li x11, 0 li x12, 4294934528 mul x14, x11, x12 li x7, 0 bne x14, x7, fail test_6: li gp, 6 li x11, 2147483648 li x12, 0 mul x14, x11, x12 li x7, 0 bne x14, x7, fail test_7: li gp, 7 li x11, 2147483648 li x12, 4294934528 mul x14, x11, x12 li x7, 0 bne x14, x7, fail test_30: li gp, 30 li x11, 2863311531 li x12, 196221 mul x14, x11, x12 li x7, 65407 bne x14, x7, fail test_31: li gp, 31 li x11, 196221 li x12, 2863311531 mul x14, x11, x12 li x7, 65407 bne x14, x7, fail test_34: li gp, 34 li x11, 4278190080 li x12, 4278190080 mul x14, x11, x12 li x7, 0 bne x14, x7, fail test_35: li gp, 35 li x11, 4294967295 li x12, 4294967295 mul x14, x11, x12 li x7, 1 bne x14, x7, fail test_36: li gp, 36 li x11, 4294967295 li x12, 1 mul x14, x11, x12 li x7, 4294967295 bne x14, x7, fail test_37: li gp, 37 li x11, 1 li x12, 4294967295 mul x14, x11, x12 li x7, 4294967295 bne x14, x7, fail test_8: li gp, 8 li x11, 13 li x12, 11 mul x11, x11, x12 li x7, 143 bne x11, x7, fail test_9: li gp, 9 li x11, 14 li x12, 11 mul x12, x11, x12 li x7, 154 bne x12, x7, fail test_10: li gp, 10 li x11, 13 mul x11, x11, x11 li x7, 169 bne x11, x7, fail test_11: li gp, 11 li x4, 0 1: li x1, 13 li x2, 11 mul x14, x1, x2 addi x6, x14, 0 addi x4, x4, 1 li x5, 2 bne x4, x5, 1b li x7, 143 bne x6, x7, fail test_12: li gp, 12 li x4, 0 1: li x1, 14 li x2, 11 mul x14, x1, x2 nop addi x6, x14, 0 addi x4, x4, 1 li x5, 2 bne x4, x5, 1b li x7, 154 bne x6, x7, fail test_13: li gp, 13 li x4, 0 1: li x1, 15 li x2, 11 mul x14, x1, x2 nop nop addi x6, x14, 0 addi x4, x4, 1 li x5, 2 bne x4, x5, 1b li x7, 165 bne x6, x7, fail test_14: li gp, 14 li x4, 0 1: li x1, 13 li x2, 11 mul x14, x1, x2 addi x4, x4, 1 li x5, 2 bne x4, x5, 1b li x7, 143 bne x14, x7, fail test_15: li gp, 15 li x4, 0 1: li x1, 14 li x2, 11 nop mul x14, x1, x2 addi x4, x4, 1 li x5, 2 bne x4, x5, 1b li x7, 154 bne x14, x7, fail test_16: li gp, 16 li x4, 0 1: li x1, 15 li x2, 11 nop nop mul x14, x1, x2 addi x4, x4, 1 li x5, 2 bne x4, x5, 1b li x7, 165 bne x14, x7, fail test_17: li gp, 17 li x4, 0 1: li x1, 13 nop li x2, 11 mul x14, x1, x2 addi x4, x4, 1 li x5, 2 bne x4, x5, 1b li x7, 143 bne x14, x7, fail test_18: li gp, 18 li x4, 0 1: li x1, 14 nop li x2, 11 nop mul x14, x1, x2 addi x4, x4, 1 li x5, 2 bne x4, x5, 1b li x7, 154 bne x14, x7, fail test_19: li gp, 19 li x4, 0 1: li x1, 15 nop nop li x2, 11 mul x14, x1, x2 addi x4, x4, 1 li x5, 2 bne x4, x5, 1b li x7, 165 bne x14, x7, fail test_20: li gp, 20 li x4, 0 1: li x2, 11 li x1, 13 mul x14, x1, x2 addi x4, x4, 1 li x5, 2 bne x4, x5, 1b li x7, 143 bne x14, x7, fail test_21: li gp, 21 li x4, 0 1: li x2, 11 li x1, 14 nop mul x14, x1, x2 addi x4, x4, 1 li x5, 2 bne x4, x5, 1b li x7, 154 bne x14, x7, fail test_22: li gp, 22 li x4, 0 1: li x2, 11 li x1, 15 nop nop mul x14, x1, x2 addi x4, x4, 1 li x5, 2 bne x4, x5, 1b li x7, 165 bne x14, x7, fail test_23: li gp, 23 li x4, 0 1: li x2, 11 nop li x1, 13 mul x14, x1, x2 addi x4, x4, 1 li x5, 2 bne x4, x5, 1b li x7, 143 bne x14, x7, fail test_24: li gp, 24 li x4, 0 1: li x2, 11 nop li x1, 14 nop mul x14, x1, x2 addi x4, x4, 1 li x5, 2 bne x4, x5, 1b li x7, 154 bne x14, x7, fail test_25: li gp, 25 li x4, 0 1: li x2, 11 nop nop li x1, 15 mul x14, x1, x2 addi x4, x4, 1 li x5, 2 bne x4, x5, 1b li x7, 165 bne x14, x7, fail test_26: li gp, 26 li x1, 31 mul x2, x0, x1 li x7, 0 bne x2, x7, fail test_27: li gp, 27 li x1, 32 mul x2, x1, x0 li x7, 0 bne x2, x7, fail test_28: li gp, 28 mul x1, x0, x0 li x7, 0 bne x1, x7, fail test_29: li gp, 29 li x1, 33 li x2, 34 mul x0, x1, x2 li x7, 0 bne x0, x7, fail bne x0, gp, pass fail: mv a0, gp li a7, 93 ecall pass: li gp, 1 li a7, 93 li a0, 0 ecall .data .data """ result = run_asm(SOURCE, STEP_LIMIT) show "rv32um-mul", result.exit_code, result.steps test "rv32um-mul passes every case" { assert_true(result.halted) assert_true(result.exit_code == 0) } # SPDX-License-Identifier: BSD-3-Clause # SPDX-FileCopyrightText: 2012-2015 The Regents of the University of California (Regents) # SPDX-FileCopyrightText: 2026 The Viv authors