feat(L08): add subroutines and ABI card

This commit is contained in:
user
2026-07-21 17:19:51 +02:00
commit ea50415a5e
42 changed files with 7250 additions and 0 deletions
+37
View File
@@ -0,0 +1,37 @@
schema: 1
card: rv32i-asm/L08
title: Subroutines and ABI
steps:
- id: link-target
task: task01_link_address
action: debug
profile: hazard3-sim
target: hazard3-baremetal
command: stemctl debug hazard3-sim rv32i-asm L08 1
board:
show: [pc, rs1, immediate, jalr, target, link, waveform]
highlight: [pc_plus_4, pc_relative_target, jalr_bit_zero]
question: Dlaczego link jest taki sam dla JAL i JALR przy tym samym PC?
evidence: [jal_target, jalr_target, link, trace_vcd]
- id: abi-map
task: task02_abi_registers
action: test
profile: hazard3-sim
target: hazard3-baremetal
command: stemctl test hazard3-sim rv32i-asm L08 2
board:
show: [register_index, abi_class, class_counts]
highlight: [arguments, callee_saved, temporaries, fixed]
question: Które rejestry funkcja wywołana musi odtworzyć przed return?
evidence: [all_32_classified, class_counts]
- id: nested-calls
task: task03_call_stack
action: debug
profile: hazard3-sim
target: hazard3-baremetal
command: stemctl debug hazard3-sim rv32i-asm L08 3
board:
show: [call, ret, link, depth, return_address, underflow, waveform]
highlight: [push_104, push_204, pop_204, pop_104]
question: Dlaczego pierwszy return używa adresu 0x204, a nie 0x104?
evidence: [nested_depth, return_order, underflow, trace_vcd]