Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
b662904
fix jalr load and store bugs
fmoletta Dec 10, 2025
7ad729d
JALR/JAL: do not write next pc into zero
fmoletta Dec 10, 2025
4457a67
MultipleOpcodes: use i32 for immediates
fmoletta Dec 10, 2025
efa652c
fix(dirty): handle mem & register values as i32 + implement missing a…
fmoletta Dec 11, 2025
2e418d1
clipppy
fmoletta Dec 11, 2025
3154d0f
Move inside workspace
gianbelinche Dec 11, 2025
d99b6ca
Add addi tests
gianbelinche Dec 11, 2025
4333a9a
Add add tests
gianbelinche Dec 11, 2025
ac54b87
Refactor tests
gianbelinche Dec 11, 2025
4c9f348
Add and tests
gianbelinche Dec 11, 2025
119b7cf
Change names
gianbelinche Dec 11, 2025
068f09e
Merge branch 'main' into add-tests
gianbelinche Dec 11, 2025
1a24191
Add artifacts
gianbelinche Dec 11, 2025
10e264d
Add ori tests
gianbelinche Dec 11, 2025
e15cab8
Add xori tests
gianbelinche Dec 11, 2025
d915916
Add slti tests
gianbelinche Dec 11, 2025
e4edd5a
Add sltiu tests
gianbelinche Dec 11, 2025
0f50b3b
Add basic rust elf
gianbelinche Dec 11, 2025
4c41a82
Clean only run files
gianbelinche Dec 11, 2025
2d5c573
Format code
gianbelinche Dec 11, 2025
8618c31
Clippy
gianbelinche Dec 11, 2025
8ae4118
Add slli tests
gianbelinche Dec 11, 2025
976cf3e
Format code
gianbelinche Dec 11, 2025
8c81693
Merge branch 'main' into add-tests
gianbelinche Dec 11, 2025
990e602
Merge branch 'main' into add-tests
gianbelinche Dec 11, 2025
2d8c690
Clippy
gianbelinche Dec 11, 2025
ddf3145
Add srli tests
gianbelinche Dec 11, 2025
aaf9073
Format
gianbelinche Dec 11, 2025
373ee52
Address comment
gianbelinche Dec 12, 2025
a6abdce
Clippy
gianbelinche Dec 12, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 7 additions & 3 deletions vm/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ RUST_PROGRAM_DIRS := $(dir $(wildcard $(RUST_PROGRAMS_DIR)/*/Cargo.toml))
RUST_PROGRAMS := $(notdir $(basename $(RUST_PROGRAM_DIRS:%/=%)))
RUST_ARTIFACTS := $(addprefix $(RUST_ARTIFACTS_DIR)/, $(addsuffix .elf, $(RUST_PROGRAMS)))

compile-programs-asm: clean $(ARTIFACTS_ASM)
compile-programs-asm: clean-asm $(ARTIFACTS_ASM)

compile-programs-rust: clean $(RUST_ARTIFACTS)
compile-programs-rust: clean-rust $(RUST_ARTIFACTS)

compile-programs: compile-programs-asm compile-programs-rust

Expand All @@ -36,12 +36,16 @@ $(RUST_ARTIFACTS_DIR)/%.elf: $(RUST_PROGRAMS_DIR)/%/Cargo.toml
cp $(RUST_PROGRAMS_DIR)/$*/target/riscv32im-unknown-none-elf/debug/$* $@
rm -rf $(RUST_PROGRAMS_DIR)/$*/target

clean:
clean-asm:
-rm -rf $(ASM_ARTIFACTS_DIR)
mkdir -p $(ASM_ARTIFACTS_DIR)

clean-rust:
-rm -rf $(RUST_ARTIFACTS_DIR)
mkdir -p $(RUST_ARTIFACTS_DIR)

clean: clean-asm clean-rust

test: compile-programs test-no-compile

test-asm: compile-programs-asm
Expand Down
Binary file added vm/program_artifacts/asm/add.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/add_max.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/add_max_plus_one.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/add_min.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/add_min_minus_one.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/add_neg.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/addi_255.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/addi_max.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/addi_min.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/addi_minus_one.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/addi_one.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/addi_reg.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/addi_reg_max.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/addi_reg_min.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/andi.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/andi_max.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/andi_one.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/andi_one_and_two.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/andi_one_and_zero.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/ori.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/ori_five_and_four.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/ori_max.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/ori_one.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/ori_one_and_one.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/ori_three_and_five.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/ori_two_and_one.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/slli.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/slli_ff_four.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/slli_max.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/slli_max_half.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/slli_max_max.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/slli_one.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/slli_one_one.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/slli_one_zero.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/slti.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/slti_minus_one.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/slti_negative.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/slti_negative_minus.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/slti_one.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/sltiu.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/sltiu_negative.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/sltiu_one.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/sltiu_two_negatives.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/srli.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/srli_max.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/srli_max_max.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/srli_one.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/srli_one_one.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/srli_one_zero.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/srli_two_one.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/xori.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/xori_max.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/xori_negate.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/xori_one.elf
Binary file not shown.
Binary file added vm/program_artifacts/asm/xori_one_and_one.elf
Binary file not shown.
10 changes: 10 additions & 0 deletions vm/programs/asm/add.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
addi a2, zero, 10
addi a3, zero, 20
add a0, a2, a3
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
30 changes: 30 additions & 0 deletions vm/programs/asm/add_max.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
addi a2, zero, 2047 # 2_047
add a2, a2, a2 # 4_094
add a2, a2, a2 # 8_188
add a2, a2, a2 # 16_376
add a2, a2, a2 # 32_752
add a2, a2, a2 # 65_504
add a2, a2, a2 # 131_008
add a2, a2, a2 # 262_016
add a2, a2, a2 # 524_032
add a3, a2, a2 # 1_048_064
add a2, a3, a3 # 2_096_128
add a2, a2, a2 # 4_192_256
add a2, a2, a2 # 8_384_512
add a2, a2, a2 # 16_769_024
add a2, a2, a2 # 33_538_048
add a2, a2, a2 # 67_076_096
add a2, a2, a2 # 134_152_192
add a2, a2, a2 # 268_304_384
add a2, a2, a2 # 536_608_768
add a2, a2, a2 # 1_073_217_536
add a2, a2, a2 # 2_146_435_072
add a2, a2, a3 # 2_147_483_136
addi a0, a2, 511 # 2_147_483_647
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
31 changes: 31 additions & 0 deletions vm/programs/asm/add_max_plus_one.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
addi a2, zero, 2047 # 2_047
add a2, a2, a2 # 4_094
add a2, a2, a2 # 8_188
add a2, a2, a2 # 16_376
add a2, a2, a2 # 32_752
add a2, a2, a2 # 65_504
add a2, a2, a2 # 131_008
add a2, a2, a2 # 262_016
add a2, a2, a2 # 524_032
add a3, a2, a2 # 1_048_064
add a2, a3, a3 # 2_096_128
add a2, a2, a2 # 4_192_256
add a2, a2, a2 # 8_384_512
add a2, a2, a2 # 16_769_024
add a2, a2, a2 # 33_538_048
add a2, a2, a2 # 67_076_096
add a2, a2, a2 # 134_152_192
add a2, a2, a2 # 268_304_384
add a2, a2, a2 # 536_608_768
add a2, a2, a2 # 1_073_217_536
add a2, a2, a2 # 2_146_435_072
add a2, a2, a3 # 2_147_483_136
addi a0, a2, 511 # 2_147_483_647
addi a0, a0, 1 # -2_147_483_648 (overflow)
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
30 changes: 30 additions & 0 deletions vm/programs/asm/add_min.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
addi a2, zero, -2047 # -2_047
add a2, a2, a2 # -4_094
add a2, a2, a2 # -8_188
add a2, a2, a2 # -16_376
add a2, a2, a2 # -32_752
add a2, a2, a2 # -65_504
add a2, a2, a2 # -131_008
add a2, a2, a2 # -262_016
add a2, a2, a2 # -524_032
add a3, a2, a2 # -1_048_064
add a2, a3, a3 # -2_096_128
add a2, a2, a2 # -4_192_256
add a2, a2, a2 # -8_384_512
add a2, a2, a2 # -16_769_024
add a2, a2, a2 # -33_538_048
add a2, a2, a2 # -67_076_096
add a2, a2, a2 # -134_152_192
add a2, a2, a2 # -268_304_384
add a2, a2, a2 # -536_608_768
add a2, a2, a2 # -1_073_217_536
add a2, a2, a2 # -2_146_435_072
add a2, a2, a3 # -2_147_483_136
addi a0, a2, -512 # -2_147_483_648
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
31 changes: 31 additions & 0 deletions vm/programs/asm/add_min_minus_one.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
addi a2, zero, -2047 # -2_047
add a2, a2, a2 # -4_094
add a2, a2, a2 # -8_188
add a2, a2, a2 # -16_376
add a2, a2, a2 # -32_752
add a2, a2, a2 # -65_504
add a2, a2, a2 # -131_008
add a2, a2, a2 # -262_016
add a2, a2, a2 # -524_032
add a3, a2, a2 # -1_048_064
add a2, a3, a3 # -2_096_128
add a2, a2, a2 # -4_192_256
add a2, a2, a2 # -8_384_512
add a2, a2, a2 # -16_769_024
add a2, a2, a2 # -33_538_048
add a2, a2, a2 # -67_076_096
add a2, a2, a2 # -134_152_192
add a2, a2, a2 # -268_304_384
add a2, a2, a2 # -536_608_768
add a2, a2, a2 # -1_073_217_536
add a2, a2, a2 # -2_146_435_072
add a2, a2, a3 # -2_147_483_136
addi a0, a2, -512 # -2_147_483_648
addi a0, a0, -1 # 2_147_483_647 (overflow)
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
10 changes: 10 additions & 0 deletions vm/programs/asm/add_neg.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
addi a2, zero, -10
addi a3, zero, 20
add a0, a2, a3
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
9 changes: 9 additions & 0 deletions vm/programs/asm/addi_255.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
addi a2, zero, 255
addi a0, a2, 0
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
8 changes: 8 additions & 0 deletions vm/programs/asm/addi_max.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
addi a0, zero, 2047
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
8 changes: 8 additions & 0 deletions vm/programs/asm/addi_min.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
addi a0, zero, -2048
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
8 changes: 8 additions & 0 deletions vm/programs/asm/addi_minus_one.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
addi a0, zero, -1
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
8 changes: 8 additions & 0 deletions vm/programs/asm/addi_one.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
addi a0, zero, 1
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
9 changes: 9 additions & 0 deletions vm/programs/asm/addi_reg.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
addi a2, zero, 10
addi a0, a2, 20
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
9 changes: 9 additions & 0 deletions vm/programs/asm/addi_reg_max.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
addi a2, zero, 2047
addi a0, a2, 33
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
9 changes: 9 additions & 0 deletions vm/programs/asm/addi_reg_min.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
addi a2, zero, -2048
addi a0, a2, -22
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
8 changes: 8 additions & 0 deletions vm/programs/asm/andi.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
andi a0, zero, 0x00
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
9 changes: 9 additions & 0 deletions vm/programs/asm/andi_max.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
addi a2, zero, 0xFFFFFFFF # -1
andi a0, a2, 0xFFFFFFFF
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
9 changes: 9 additions & 0 deletions vm/programs/asm/andi_one.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
addi a2, zero, 0x01
andi a0, a2, 0x01
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
9 changes: 9 additions & 0 deletions vm/programs/asm/andi_one_and_two.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
addi a2, zero, 0x01
andi a0, a2, 0x02
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
8 changes: 8 additions & 0 deletions vm/programs/asm/andi_one_and_zero.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
andi a0, zero, 0x01
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
8 changes: 8 additions & 0 deletions vm/programs/asm/ori.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
ori a0, zero, 0x00
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
9 changes: 9 additions & 0 deletions vm/programs/asm/ori_five_and_four.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
ori a2, zero, 0x04
ori a0, a2, 0x05
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
9 changes: 9 additions & 0 deletions vm/programs/asm/ori_max.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
ori a2, zero, 0xFFFFFFFF
ori a0, a2, 0xFFFFFFFF
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
8 changes: 8 additions & 0 deletions vm/programs/asm/ori_one.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
ori a0, zero, 0x01
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
9 changes: 9 additions & 0 deletions vm/programs/asm/ori_one_and_one.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
ori a2, zero, 0x01
ori a0, a2, 0x01
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
9 changes: 9 additions & 0 deletions vm/programs/asm/ori_three_and_five.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
ori a2, zero, 0x03 # 0011
ori a0, a2, 0x05 # 0101
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
9 changes: 9 additions & 0 deletions vm/programs/asm/ori_two_and_one.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
ori a2, zero, 0x01
ori a0, a2, 0x02
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
8 changes: 8 additions & 0 deletions vm/programs/asm/slli.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
slli a0, zero, 0
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
9 changes: 9 additions & 0 deletions vm/programs/asm/slli_ff_four.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
addi a2, zero, 0xFF
slli a0, a2, 4
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
9 changes: 9 additions & 0 deletions vm/programs/asm/slli_max.s
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
.attribute 5, "rv32i2p1_m2p0_zmmul1p0"
.Lfunc_end0:
.globl main
main:
addi a2, zero, 0xFFFFFFFF
slli a0, a2, 4
jalr zero, 0(ra)
.Lfunc_end1:
.size main, .Lfunc_end1-main
Loading