made module runnable

float_support
Anton Lydike 4 years ago
parent 20db1e02ab
commit 8d39d79032

@ -0,0 +1,22 @@
.data 0x200
fibs: .space 56
.text
main:
addi s1, zero, 0 # storage index
addi s2, zero, 56 # last storage index
addi t0, zero, 1 # t0 = F_{i}
addi t1, zero, 1 # t1 = F_{i+1}
loop:
sw t0, fibs(s1) # save
add t2, t1, t0 # t2 = F_{i+2}
addi t0, t1, 0 # t0 = t1
addi t1, t2, 0 # t1 = t2
addi s1, s1, 4 # increment storage pointer
blt s1, s2, loop # loop as long as we did not reach array length
# exit gracefully
addi a0, zero, 0
addi a7, zero, 93
ebreak # launch debugger
scall # exit with code 0

@ -3,24 +3,27 @@ if __name__ == '__main__':
from .helpers import * from .helpers import *
import argparse import argparse
parser = argparse.ArgumentParser(description='RISC-V Userspace parser and emulator') parser = argparse.ArgumentParser(description='RISC-V Userspace parser and emulator', prog='riscemu')
parser.add_argument('file', metavar='file.asm', type=str, help='The assembly file to interpret and run') parser.add_argument('file', metavar='file.asm', type=str, help='The assembly file to interpret and run')
# RunConfig parameters # RunConfig parameters
parser.add_argument('color', type=bool, help='Colored output', default=True) parser.add_argument('--no-color', type=bool, help='no colored output', default=False,
parser.add_argument('default_stack_size', type=int, help='Default stack size of loaded programs', default=None, nargs='?')
metavar='default-stack-size') parser.add_argument('--default_stack_size', type=int, help='Default stack size of loaded programs', default=None,
parser.add_argument('debug_instruction', type=bool, default=True, metavar='debug-instruction', metavar='default-stack-size', nargs='?')
parser.add_argument('--debug_instruction', type=bool, default=True, metavar='debug-instruction',
help='Switches to an interactive python interpreter when ebreak/sbreak instruction ' help='Switches to an interactive python interpreter when ebreak/sbreak instruction '
'is encountered. Otherwise these instructions are treated as nop.') 'is encountered. Otherwise these instructions are treated as nop.', nargs='?')
parser.add_argument('print_tokens', metavar='print-tokens', type=bool, help='Print tokens after tokenization', parser.add_argument('--print_tokens', metavar='print-tokens', type=bool, help='Print tokens after tokenization',
default=False) default=False, nargs='?')
args = parser.parse_args() args = parser.parse_args()
print(args)
cfg = RunConfig( cfg = RunConfig(
color=args.color, color=not args.no_color,
preffered_stack_size=args.default_stack_size, preffered_stack_size=args.default_stack_size,
debug_instruction=args.debug_instruction debug_instruction=args.debug_instruction
) )
Loading…
Cancel
Save