Initial load of files

This commit is contained in:
rsnikhil
2019-03-26 14:49:40 -04:00
parent bc62f17032
commit ee24a93944
1008 changed files with 354221 additions and 224 deletions

253
README.md
View File

@@ -1,5 +1,9 @@
# Open-source RISC-V CPUs from Bluespec, Inc.
***** UNDER CONSTRUCTION *****
***** PLEASE COME BACK LATER (EARLY APRIL 2019) *****
This is one of a family of free, open-source RISC-V CPUs created by Bluespec, Inc.
- [Piccolo](https://github.com/bluespec/Piccolo): 3-stage, in-order pipeline
@@ -12,244 +16,45 @@ This is one of a family of free, open-source RISC-V CPUs created by Bluespec, In
64-bit operation, an MMU (Virtual Memory) and more performance than
Piccolo-class processors.
- [Bassoon](https://github.com/bluespec/Bassoon): deep, out-of-order pipeline [Coming!]
The three repo structures are nearly identical, and the ways to build
and run are identical. This README is identical--please substitute
"Piccolo" or "Flute" or "Basoon" below wherever you see <CPU>.
### About the source codes (in BSV and Verilog)
The BSV source code in this repository, from which the synthesizable
Verilog RTL in this repository is generated, is highly parameterized
to allow generating many possible configurations, some of which are
adequate to boot a Linux kernel.
The pre-generated synthesizable Verilog RTL source files in this
repository are for a few specific configurations:
1. RV32ACIMU: **(DARPA SSITH users: this is the "P1" processor)**
- RV32I: base RV32 integer instructions
- 'A' extension: atomic memory ops
- 'C' extension: compressed instructions
- 'M' extension: integer multiply/divide instructions
- Privilege levels M (machine) and U (user)
- Supports external, timer, software and non-maskable interrupts
- Passes all riscv-isa tests for RV32ACIMU
- Boots FreeRTOS
2. RV64ACDFIMSU
- RV64I: base RV64 integer instructions
- 'A' extension: atomic memory ops
- 'C' extension: compressed instructions
- 'D' extension: double-precision floating point instructions
- 'F' extension: single-precision floating point instructions
- 'M' extension: integer multiply/divide instructions
- Privilege levels M (machine), S (Supervisor) and U (user)
- Supports external, timer, software and non-maskable interrupts
- Passes all riscv-isa tests for RV64ACDFIMSU
- Boots the Linux kernel
If you want to generate other Verilog variants, you'll need a Bluespec
`bsc` compiler [Note: Bluespec, Inc. provides free licenses to
academia and for non-profit research].
The BSV source code supports:
- RV32I or RV64I
- Optional 'A', 'C', 'D', 'F' and 'M' extensions
- Privilege level options M, MU and MSU
- For privilege S, virtual memory schemes Sv32 (RV32) and Sv39 (RV64)
- Hardware implementation option: serial shifter (smaller hardware, slower) or barrel shifter (more HW, faster) for shift instructions
- Hardware implementation option: serial integer multiplier (smaller hardware, slower) or synthesized (more HW, faster)
- AXI4-Lite Fabric interfaces, with optional 32-bit or 64-bit datapaths (independent of RV32/RV64 choice)
- and several other localized options
### Testbench included
This repository contains a simple testbench (a small SoC) with which
one can run RISC-V binaries in simulation by loading standard mem hex
files and executing in Bluespec's Bluesim, Verilator simulation or
iVerilog simulation. The testbench contains an AXI4-Lite interconnect
fabric that connects the CPU to models of a boot ROM, a memory, a
timer and a UART for console I/O.
[Note: **iverilog functionality is currently limited** because we are
still working out robust mechanisms to import C code, which is used in
parts of the testbench.]
This repository contains several sample build directories, to build
RV32ACIMU or RV64ACDFIMSU simulators, using Bluespec Bluesim
simulation, Verilator Verilog simulation, or Icarus Verilog
("iverilog") simulation.
The generated Verilog is synthesizable. Bluespec tests all this code
on Xilinx FPGAs.
#### Plans
- Ongoing continuous micro-architectural improvements for performance and hardware area.
- [Tooba](https://github.com/bluespec/Tooba): superscalar, out-of-order
pipeline, slight variation on MIT's RISCY-OOO [In progress!]
----------------------------------------------------------------
## Source codes
### Note re. distribution of MIT RISCY-OOO sources.
This repository contains two levels of source code: Verilog and BSV.
The directory `src_Core/RISCY_OOO` contains sources copied from MIT's
`riscy-OOO` repository. See `LICENSE_RISCY-OOO` for MIT's license.
**Verilog RTL** can be found in directories with names suffixed in
'_verilator' or '_iverilog' in the 'builds' directory:
builds/..._<verilator or iverilog>/Verilog_RTL/
[There is no difference between Verilog in a Verilator directory
vs. the corresponding iverilog directory. ]
The Verilog RTL is _synthesizable_ (and hence acceptable to
Verilator). It can be simulated in any Verilog simulator (we provide
Makefiles to build simulation executables for Verilator and for Icarus
Verilog (iverilog)).
The RTL represents RISC-V CPU RTL, plus a rudimentary surrounding SoC
enabling immediate simulation here, and which is rich enough to enable
booting a Linux kernel. Users are free to use the CPU RTL in their
own Verilog system designs. The top-level module for the CPU RTL is
`Verilog_RTL/mkBRVF_Core.v`. The top-level module for the surrounding
SoC is `Verilog_RTL/mkTop_HW_Side.v`. The SoC has an AXI4-Lite
fabric, a timer, a software-interrupt device, and a UART. Additional
library RTL can be found in the directory `src_bsc_lib_RTL`.
**Bluespec BSV** source code (which was used to generate the Verilog RTL) can be found in:
- `src_Core/`, for the CPU core, with sub-directories:
- `ISA/`: generic types/constants/functions for the RISC-V ISA (not CPU-implementation-specific)
- `RegFiles/`: generic register files for the GPRs (General-Purpose Registers) and CSRs (Control and Status Registers)
- `Core/`: the CPU Core
- `Near_Mem_VM/`: for the MMU and first-level cache. In the CPU,
this is instantiated twice to provide completely separate
channels (MMU and Cache) for instructions and data.
- `BSV_Additional_Libs/`: generic utilities (not CPU-specific)
- `Debug_Module/`: RISC-V Debug Module to debug the CPU from GDB or other debuggers
- `src_Testbench/`, for the surrounding testbench, with sub-directories:
- `Top/`: The system top-level (`Top_HW_Side.bsv`), a memory model
that loads from a memory hex file, and some imported C
functions for polled reads from the console tty (not currently
available for Icarus Verilog).
- `SoC/`: An interconnect, a boot ROM, a memory controller, a timer
and software-interrupt device, and a UART for console tty I/O.
- `Fabrics/`: Generic AXI4-Lite code for the SoC fabric.
The BSV source code has a rich set of parameters, mentioned above. The
provided RTL source has been generated from the BSV source
automatically using Bluespec's `bsc` compiler, with certain particular
sets of choices for the various parameters. The generated RTL is not
parameterized.
To generate Verilog variants with other parameter choices, the user
will need Bluespec's `bsc` compiler. See the next section for
examples of how the build is configured for different ISA features.
In fact the CPU also supports a "Tandem Verifier" that produces an
instruction-by-instruction trace that can be checked for correctness
against a RISC-V Golden Reference Model. Please contact Bluespec,
Inc. for more information.
[Note: MIT's repository is on an MIT git server, which can only be
accessed with credentials; hence the local copy in of these files.]
----------------------------------------------------------------
### Building and running from the Verilog sources, out of the box
### Building and running Tooba
In any of the Verilog-build directories:
You will need:
builds/<ARCH>_<CPU>_verilator/
builds/<ARCH>_<CPU>_iverilog/
- A Bluespec tools installation (so you can run 'bsc', the Bluespec
compiler for BSV). We recommend version 2018.10.beta1 or later.
- `$ make simulator` will create a Verilog simulation executable using Verilator or iverilog, respectively
- A Verilator installation. We recommend version 3.922 or later.
- `$ make test` will run the executable on the standard RISC-V ISA
test `rv32ui-p-add` or `rv64ui-p-add`, which is one of the
tests in the `Tests/isa/` directory. Examining the `test:`
target in `Makefile`, we see that it first runs the program
`Tests/elf_to_hex/elf_to_hex` on the `rv32ui-p-add` or
`rv64ui-p-add` ELF file to create a `Mem.hex` file, and then
runs the simulation executable which loads this `Mem.hex` file
into its memory.
Then:
- Following the pattern of `$ make test`, the user can run any of
the other tests in the `Tests/isa/` directory by pointing at the
chosen ELF file.
$ cd builds/RV64ADFIMSU_Tuba_verilator
$ make all
- `$ make isa_tests` will run the executable on
all the standard RISC-V ISA tests relevant for ARCH (regression testing).
This uses the Python script `Tests/Run_regression.py`.
Please see the documentation at the top of that program for details.
This will compile BSV sources using the 'bsc' compiler into Verilog in
the directory `Verilog_RTL`, then compile and link into a verilator
executable `exe_HW_sim`.
Note: an RV32ACIMU simulator will only successfully run ELF files
compiled for RV32ACIMU, privilege U and M; running it on any other ELF
file will result in illegal instruction traps. An RV64ACDFIMSU
simulator will successfully run ELF files compiled for RV64ACDFIMSU,
privilege U, S and M.
Then:
#### Tool dependencies:
$ make test (1)
$ make TEST=<isa_test_name> test (2)
$ make isa_tests (3)
We test our builds with the following versions of iVerilog and
Verilator. Later versions are probably ok; we have observed some
problems with earlier versions of both tools.
$ iverilog -v
Icarus Verilog version 10.1 (stable) ()
$ verilator --version
Verilator 3.922 2018-03-17 rev verilator_3_920-32-gdf3d1a4
----------------------------------------------------------------
### What you can build and run if you have Bluespec's `bsc` compiler
[Note: Bluespec, Inc. provides free licenses to academia and for non-profit research].
Note: even without Bluespec's `bsc` compiler, you can use the Verilog
sources in any of the `builds/<ARCH>_<CPU>_verilator/Verilog_RTL`
directories-- build and run Verilog simulations, incorporate the
Verilog CPU into your own SoC, etc. This section describes additional
things you can do with a `bsc` compiler.
#### Building a Bluesim simulator
In any of the following directories:
builds/<ARCH>_<CPU>_bluesim
- `$ make compile simulator`
will compile and link a Bluesim executable. Then, you can `make test`
or `make isa_tests` as described above to run an individual ISA test
or run regressions on the full suite of relevant ISA tests.
#### Re-generating Verilog RTL
You can regenerate the Verilog RTL in any of the
`build/<ARCH>_<CPU>_verilator/` or `build/<ARCH>_<CPU>_iverilog/`
directories. Example:
$ cd builds/RV32ACIMU_<CPU>_verilator
$ make compile
#### Creating a new architecture configuration
In the `builds/` directory, you can create a new sub-directory to
build a new configuration of interest. For example:
$ cd builds
$ Resources/mkBuild_Dir.py .. RV32CI bluesim
will create a new directory: `builds\RV32CIU_<CPU>_bluesim`
populated with a `Makefile` to compile and link a bluesim simulation
for an RV32 CPU with 'I' and 'C' ISA options. You can build and run
that simulator as usual:
$ cd builds/RV32CIU_<CPU>_bluesim
$ make compile simulator test isa_tests
(1) Will run a single ISA test, `rv64ui-p-add`.
(2) Will do the same, but with the ISA test whose name you supply.
(3) Will run ISA tests for RV64G.
----------------------------------------------------------------

51
Tests/Makefile Normal file
View File

@@ -0,0 +1,51 @@
### -*-Makefile-*-
# Copyright (c) 2018 Bluespec, Inc. All Rights Reserved
# ================================================================
# Regression: run all ISA tests relevant for the chosen simulator
# ----------------
# Choose a prefix for the simulation executable dir
ARCH ?= RV32IMU
# ARCH ?= RV32ACIMSU
# ARCH ?= RV64IMU
# ARCH ?= RV64ACIMSU
# ----------------
# Choose a simulation engine
SIM ?= Bluesim
# SIM ?= iverilog
# SIM ?= verilator
# ----------------
# Optionally choose an architecture explicitly,
# overriding the simulation executable path
OPTARCH ?=
# ----------------
SIM_DIR = ../builds/$(ARCH)_$(SIM)
# ================================================================
.PHONY: test
test:
@echo "Running regressions; saving logs in Logs/"
./Run_regression.py \
$(SIM_DIR)/exe_HW_sim \
./isa ./Logs $(OPTARCH)
@echo "Finished running regressions; saved logs in Logs/"
# ================================================================
.PHONY: clean
clean:
rm *~
.PHONY: full_clean
full_clean:
rm -r -f *~ Logs *.log

82
Tests/README.txt Normal file
View File

@@ -0,0 +1,82 @@
Copyright (c) 2018-2019 Bluespec, Inc. All Rights Reserved
>================================================================
The './isa' sub-directory contains pre-built ELF and objdump files
(.dump) for all the standard RISC-V ISA tests. For example, the
files:
./isa/rv32ui-p-add
./isa/rv32ui-p-add.dump
are an ELF file and its objdump (disassembly) that tests the RISC-V
user-level integer ADD instruction for RV32. The tests are built when
one clones the following GitHub repository:
https://github.com/riscv/riscv-tools.git
and follows the build directions therein, resulting in all the ISA
tests being built, such as this:
<riscv-tools build dir>/riscv64-unknown-elf/share/riscv-tests/isa/rv32ui-p-add
>================================================================
The Makefile has a command to run regressions on ISA tests.
$ make test
In the Makefile, you will see definitions for ARCH (such as `RV32IMU`)
and SIM (such as `verilator`), which together specify which simulator
will be run (`builds/<ARCH>_SIM/exe_HW_sim`). You can change the ARCH
and SIM definitions in the Makefile for a different simulator, or
redefine them on the `make` command line.
It will run the the Python program 'Run_regression.py', described
below, to run the simulator on all the ISA tests relevant to the
architecture ARCH. A per-ISA-test log is captured in the 'Logs/'
directory.
>================================================================
With the Python program './Run_regression.py' you can run a regression
on all the standard RISC-V ISA tests that are relevant to your RISC-V
simulation executable (i.e., for the RISC-V features and extensions
supported by your simulation executable).
Please do:
$ ./Run_regression.py --help
for usage information.
Example:
$ ./Run_regression.py ../RV32IMU_verilator/exe_HW_sim ./isa ./Logs v1
will run the verilator simulation executable on the all RISC-V ISA
tests that match the following:
./isa/rv32ui-p*
./isa/rv32mi-p*
./isa/rv32um-p*
and leave a transcript of each test's simulation output in files like
./Logs/rv32ui-p-add.log
Each log will contain an instruction trace.
Example:
$ ./Run_regression.py ../RV64AIMSU_verilator/exe_HW_sim ./isa ./Logs v1
will run the verilator simulation executable on the all RISC-V ISA
tests that match the following:
./isa/rv64ui-p*
./isa/rv64um-p*
./isa/rv64ua-p*
./isa/rv64mi-p*
./isa/rv64si-p*
./isa/rv64ui-v*
./isa/rv64um-v*
./isa/rv64ua-v*
>================================================================

357
Tests/Run_regression.py Executable file
View File

@@ -0,0 +1,357 @@
#!/usr/bin/python3
# Copyright (c) 2018-2019 Bluespec, Inc.
# See LICENSE for license details
usage_line = (
" Usage:\n"
" $ <this_prog> <simulation_executable> <repo_dir> <logs_dir> <arch> <opt verbosity>\n"
"\n"
" Runs the RISC-V <simulation_executable>\n"
" on ISA tests: ELF files taken from <repo-dir>/isa and its sub-directories.\n"
"\n"
" Runs it only on those ELF files that are relevant to architecture <arch>.\n"
"\n"
" For each ELF file FOO, saves simulation output in <logs_dir>/FOO.log. \n"
"\n"
" If <opt verbosity> is given, it must be one of the following:\n"
" v1: Print instruction trace during simulation\n"
" v2: Print pipeline stage state during simulation\n"
"\n"
" Example:\n"
" $ <this_prog> .exe_HW_sim ~somebody/GitHub/Piccolo ./Logs RV32IMU v1\n"
" will run the verilator simulation executable on the following RISC-V ISA tests:\n"
" ~somebody/GitHub/Tests/isa/rv32ui-p*\n"
" ~somebody/GitHub/Tests/isa/rv32mi-p*\n"
" ~somebody/GitHub/Tests/isa/rv32um-p*\n"
" which are relevant for architecture RV32IMU\n"
" and will leave a transcript of each test's simulation output in files like\n"
" ./Logs/rv32ui-p-add.log\n"
" Each log will contain an instruction trace (because of the 'v1' arg).\n"
)
import sys
import os
import stat
import subprocess
# ================================================================
num_executed = 0
num_passed = 0
# DEBUGGING ONLY: This exclude list allows skipping some specific test
# Tuba seems to hang on this test
exclude_list = ["rv64ud-p-move"]
# ================================================================
def main (argv = None):
print ("Use flag --help or --h for a help message")
if ((len (argv) <= 1) or
(argv [1] == '-h') or (argv [1] == '--help') or
(len (argv) < 5)):
sys.stdout.write (usage_line)
sys.stdout.write ("\n")
return 0
# Simulation executable
if not (os.path.exists (argv [1])):
sys.stderr.write ("ERROR: The given simulation path does not seem to exist?\n")
sys.stderr.write (" Simulation path: " + sim_path + "\n")
sys.exit (1)
args_dict = {'sim_path': os.path.abspath (os.path.normpath (argv [1]))}
# Repo in which to find ELFs and elf_to_hex executable
if (not os.path.exists (argv [2])):
sys.stderr.write ("ERROR: repo directory ({0}) does not exist?\n".format (argv [2]))
sys.stdout.write ("\n")
sys.stdout.write (usage_line)
sys.stdout.write ("\n")
return 1
repo = os.path.abspath (os.path.normpath (argv [2]))
elfs_path = os.path.join (repo, "Tests", "isa")
if (not os.path.exists (elfs_path)):
sys.stderr.write ("ERROR: ELFs directory ({0}) does not exist?\n".format (elfs_path))
sys.stdout.write ("\n")
sys.stdout.write (usage_line)
sys.stdout.write ("\n")
return 1
args_dict ['elfs_path'] = elfs_path
# Logs directory
logs_path = os.path.abspath (os.path.normpath (argv [3]))
if not (os.path.exists (logs_path) and os.path.isdir (logs_path)):
print ("Creating dir: " + logs_path)
os.mkdir (logs_path)
args_dict ['logs_path'] = logs_path
# Architecture string and implied ISA test families
arch_string = extract_arch_string (argv [4])
if (arch_string == None):
sys.stderr.write ("ERROR: no architecture specified?\n")
sys.stdout.write ("\n")
sys.stdout.write (usage_line)
sys.stdout.write ("\n")
return 1
args_dict ['arch_string'] = arch_string
test_families = select_test_families (arch_string)
print ("Testing the following families of ISA tests")
for tf in test_families:
print (" " + tf)
args_dict ['test_families'] = test_families
# Optional verbosity
verbosity = 0
for arg in argv [5:]:
if arg == "v1":
verbosity = 1
elif arg == "v2":
verbosity = 2
args_dict ['verbosity'] = verbosity
# elf_to_hex executable
elf_to_hex_exe = os.path.join (repo, "Tests", "elf_to_hex", "elf_to_hex")
if (not os.path.exists (elf_to_hex_exe)):
sys.stderr.write ("ERROR: elf_to_hex executable does not exist?\n")
sys.stderr.write (" at {0}\n".format (elf_to_hex_exe))
sys.stdout.write ("\n")
sys.stdout.write (usage_line)
sys.stdout.write ("\n")
return 1
args_dict ['elf_to_hex_exe'] = elf_to_hex_exe
sys.stdout.write ("Parameters:\n")
for key in iter (args_dict):
sys.stdout.write (" {0:<16}: {1}\n".format (key, args_dict [key]))
# Perform the recursive traversal
max_level = 20
traverse (max_level, 0, args_dict)
# Write final statistics
sys.stdout.write ("Executed: {0} tests\n".format (num_executed))
sys.stdout.write ("PASS: {0} tests\n".format (num_passed))
# ================================================================
# Extract the architecture string (e.g., RV64AIMSU) from the string s
def extract_arch_string (s):
s1 = s.upper()
j_rv32 = s1.find ("RV32")
j_rv64 = s1.find ("RV64")
if (j_rv32 >= 0):
j = j_rv32
elif (j_rv64 >= 0):
j = j_rv64
else:
sys.stderr.write ("ERROR: cannot find architecture string beginning with RV32 or RV64 in: \n")
sys.stderr.write (" '" + s + "'\n")
sys.exit (1)
k = j + 4
rv = s1 [j:k]
extns = ""
while (k < len (s)):
ch = s [k]
if (ch < "A") or (ch > "Z"): break
extns = extns + s [k]
k = k + 1
arch = rv + extns
return arch
# ================================================================
# Select ISA test families based on provided arch string
def select_test_families (arch):
arch = arch.lower ()
families = []
if arch.find ("32") != -1:
rv = 32
families = ["rv32ui-p", "rv32mi-p"]
else:
rv = 64
families = ["rv64ui-p", "rv64mi-p"]
if (arch.find ("s") != -1):
s = True
if rv == 32:
families.extend (["rv32ui-v", "rv32si-p"])
else:
families.extend (["rv64ui-v", "rv64si-p"])
else:
s = False
def add_family (extension):
if (arch.find (extension) != -1):
if rv == 32:
families.append ("rv32u" + extension + "-p")
if s:
families.append ("rv32u" + extension + "-v")
else:
families.append ("rv64u" + extension + "-p")
if s:
families.append ("rv64u" + extension + "-v")
add_family ("m")
add_family ("a")
add_family ("f")
add_family ("d")
add_family ("c")
return families
# ================================================================
# Recursively traverse the dir tree below elf_path and process each file
def traverse (max_level, level, args_dict):
elfs_path = args_dict ['elfs_path']
st = os.stat (elfs_path)
is_dir = stat.S_ISDIR (st.st_mode)
is_regular = stat.S_ISREG (st.st_mode)
do_foreachfile_function (level, is_dir, is_regular, args_dict)
if is_dir and level < max_level:
for entry in os.listdir (elfs_path):
elfs_path1 = os.path.join (elfs_path, entry)
args_dict1 = args_dict.copy ()
args_dict1 ['elfs_path'] = elfs_path1
traverse (max_level, level + 1, args_dict1)
return 0
# ================================================================
# This function is applied to every path in the
# recursive traversal
def do_foreachfile_function (level, is_dir, is_regular, args_dict):
prefix = ""
for j in range (level): prefix = " " + prefix
elfs_path = args_dict ['elfs_path']
# directories
if is_dir:
print ("%s%d dir %s" % (prefix, level, elfs_path))
# regular files
elif is_regular:
dirname = os.path.dirname (elfs_path)
basename = os.path.basename (elfs_path)
# print ("%s%d %s" % (prefix, level, elfs_path))
do_regular_file_function (level, dirname, basename, args_dict)
# other files
else:
print ("%s%d Unknown file type: %s" % (prefix, level, os.path.basename (elfs_path)))
# ================================================================
# For each ELF file, execute it in the RISC-V simulator
def do_regular_file_function (level, dirname, basename, args_dict):
global num_executed
global num_passed
full_filename = os.path.join (dirname, basename)
# Ignore filename if has any extension (heuristic that it's not an ELF file)
if "." in basename: return
# Ignore filename if does not match test_families
ignore = True
for x in args_dict ['test_families']:
if basename.find (x) != -1: ignore = False
if ignore:
# print ("Ignoring file: " + full_filename)
return
TEMPORARY FILTER WHILE DEBUGGING:
if basename in exclude_list:
sys.stdout.write ("WARNING: TEMPORARY FILTER IN EFFECT; REMOVE AFTER DEBUGGING\n")
sys.stdout.write (" This test is in exclude_list: {0}\n".format (basename))
return
# For debugging only
# prefix = ""
# for j in range (level): prefix = " " + prefix
# sys.stdout.write ("{0}{1} ACTION: {2}\n".format (prefix, level, full_filename))
# Construct the commands for sub-process execution
command1 = [args_dict ['elf_to_hex_exe'], full_filename, "Mem.hex"]
command2 = [args_dict ['sim_path'], "+tohost"]
if (args_dict ['verbosity'] == 1): command2.append ("+v1")
elif (args_dict ['verbosity'] == 2): command2.append ("+v2")
num_executed = num_executed + 1
sys.stdout.write ("Test {0}: {1}\n".format (num_executed, basename))
sys.stdout.write (" Exec:")
for x in command1:
sys.stdout.write (" {0}".format (x))
sys.stdout.write ("\n")
sys.stdout.write (" Exec:")
for x in command2:
sys.stdout.write (" {0}".format (x))
sys.stdout.write ("\n")
# Run command as a sub-process
completed_process1 = run_command (command1)
completed_process2 = run_command (command2)
passed = completed_process2.stdout.find ("PASS") != -1
if passed:
sys.stdout.write (" PASS")
num_passed = num_passed + 1
else:
sys.stdout.write (" FAIL")
# Save stdouts in log file
log_filename = os.path.join (args_dict ['logs_path'], basename + ".log")
sys.stdout.write (" Writing log: {0}\n".format (log_filename))
fd = open (log_filename, 'w')
fd.write (completed_process1.stdout)
fd.write (completed_process2.stdout)
fd.close ()
# If Tandem Verification trace file was created, save it as well
if os.path.exists ("./trace_out.dat"):
trace_filename = os.path.join (args_dict ['logs_path'], basename + ".trace_data")
os.rename ("./trace_out.dat", trace_filename)
sys.stdout.write (" Trace output saved in: {0}\n".format (trace_filename))
return
# ================================================================
# This is a wrapper around 'subprocess.run' because of an annoying
# incompatible change in moving from Python 3.5 to 3.6
def run_command (command):
python_minor_version = sys.version_info [1]
if python_minor_version < 6:
# Python 3.5 and earlier
result = subprocess.run (args = command,
bufsize = 0,
stdout = subprocess.PIPE,
stderr = subprocess.STDOUT,
universal_newlines = True)
else:
# Python 3.6 and later
result = subprocess.run (args = command,
bufsize = 0,
stdout = subprocess.PIPE,
stderr = subprocess.STDOUT,
encoding='utf-8')
return result
# ================================================================
# For non-interactive invocations, call main() and use its return value
# as the exit code.
if __name__ == '__main__':
sys.exit (main (sys.argv))

17
Tests/elf_to_hex/Makefile Normal file
View File

@@ -0,0 +1,17 @@
# Makefile to create an elf_to_hex executable.
# The executable creates mem-hex files containing 32-Byte words
CC = gcc
elf_to_hex: elf_to_hex.c
gcc -g -o elf_to_hex elf_to_hex.c -lelf
# ================================================================
.PHONY: clean
clean:
rm -f *~
.PHONY: full_clean
full_clean:
rm -f *~ elf_to_hex

View File

@@ -0,0 +1,12 @@
Copyright (c) 2018 Bluespec, Inc. All Rights Reserved
This standalone C program takes two command-line arguments, and ELF
filename and a Mem Hex filename. It reads the ELF file and writes out
the Mem Hex file.
It assumes a memory that is:
- 16 MiB or 256 MiB (see C file)
- Each word is 32 bytes (256 bits)
- It starts at byte address 0x_8000_0000
All of these can be changed by editing the C file.

View File

@@ -0,0 +1,346 @@
// Copyright (c) 2013-2018 Bluespec, Inc. All Rights Reserved
// This program reads an ELF file and outputs a Verilog hex memory
// image file (suitable for reading using $readmemh).
// ================================================================
// Standard C includes
#include <stdio.h>
#include <stdlib.h>
#include <stdint.h>
#include <inttypes.h>
#include <string.h>
#include <fcntl.h>
#include <gelf.h>
// ================================================================
// Memory buffer into which we load the ELF file before
// writing it back out to the output file.
// 1 Gigabyte size
// #define MAX_MEM_SIZE (((uint64_t) 0x400) * ((uint64_t) 0x400) * ((uint64_t) 0x400))
#define MAX_MEM_SIZE ((uint64_t) 0x90000000)
uint8_t mem_buf [MAX_MEM_SIZE];
// Features of the ELF binary
int bitwidth;
uint64_t min_addr;
uint64_t max_addr;
uint64_t pc_start; // Addr of label '_start'
uint64_t pc_exit; // Addr of label 'exit'
uint64_t tohost_addr; // Addr of label 'tohost'
// ================================================================
// Load an ELF file.
void c_mem_load_elf (char *elf_filename,
const char *start_symbol,
const char *exit_symbol,
const char *tohost_symbol)
{
int fd;
// int n_initialized = 0;
Elf *e;
// Default start, exit and tohost symbols
if (start_symbol == NULL)
start_symbol = "_start";
if (exit_symbol == NULL)
exit_symbol = "exit";
if (tohost_symbol == NULL)
tohost_symbol = "tohost";
// Verify the elf library version
if (elf_version (EV_CURRENT) == EV_NONE) {
fprintf (stderr, "ERROR: c_mem_load_elf: Failed to initialize the libelfg library!\n");
exit (1);
}
// Open the file for reading
fd = open (elf_filename, O_RDONLY, 0);
if (fd < 0) {
fprintf (stderr, "ERROR: c_mem_load_elf: could not open elf input file: %s\n", elf_filename);
exit (1);
}
// Initialize the Elf pointer with the open file
e = elf_begin (fd, ELF_C_READ, NULL);
if (e == NULL) {
fprintf (stderr, "ERROR: c_mem_load_elf: elf_begin() initialization failed!\n");
exit (1);
}
// Verify that the file is an ELF file
if (elf_kind (e) != ELF_K_ELF) {
elf_end (e);
fprintf (stderr, "ERROR: c_mem_load_elf: specified file '%s' is not an ELF file!\n", elf_filename);
exit (1);
}
// Get the ELF header
GElf_Ehdr ehdr;
if (gelf_getehdr (e, & ehdr) == NULL) {
elf_end (e);
fprintf (stderr, "ERROR: c_mem_load_elf: get_getehdr() failed: %s\n", elf_errmsg(-1));
exit (1);
}
// Is this a 32b or 64 ELF?
if (gelf_getclass (e) == ELFCLASS32) {
fprintf (stdout, "c_mem_load_elf: %s is a 32-bit ELF file\n", elf_filename);
bitwidth = 32;
}
else if (gelf_getclass (e) == ELFCLASS64) {
fprintf (stdout, "c_mem_load_elf: %s is a 64-bit ELF file\n", elf_filename);
bitwidth = 64;
}
else {
fprintf (stderr, "ERROR: c_mem_load_elf: ELF file '%s' is not 32b or 64b\n", elf_filename);
elf_end (e);
exit (1);
}
// Verify we are dealing with a RISC-V ELF
if (ehdr.e_machine != 243) { // EM_RISCV is not defined, but this returns 243 when used with a valid elf file.
elf_end (e);
fprintf (stderr, "ERROR: c_mem_load_elf: %s is not a RISC-V ELF file\n", elf_filename);
exit (1);
}
// Verify we are dealing with a little endian ELF
if (ehdr.e_ident[EI_DATA] != ELFDATA2LSB) {
elf_end (e);
fprintf (stderr,
"ERROR: c_mem_load_elf: %s is a big-endian 64-bit RISC-V executable which is not supported\n",
elf_filename);
exit (1);
}
// Grab the string section index
size_t shstrndx;
shstrndx = ehdr.e_shstrndx;
// Iterate through each of the sections looking for code that should be loaded
Elf_Scn *scn = 0;
GElf_Shdr shdr;
min_addr = 0xFFFFFFFFFFFFFFFFllu;
max_addr = 0x0000000000000000llu;
pc_start = 0xFFFFFFFFFFFFFFFFllu;
pc_exit = 0xFFFFFFFFFFFFFFFFllu;
tohost_addr = 0xFFFFFFFFFFFFFFFFllu;
while ((scn = elf_nextscn (e,scn)) != NULL) {
// get the header information for this section
gelf_getshdr (scn, & shdr);
char *sec_name = elf_strptr (e, shstrndx, shdr.sh_name);
fprintf (stdout, "Section %-16s: ", sec_name);
Elf_Data *data = 0;
// If we find a code/data section, load it into the model
if ( ((shdr.sh_type == SHT_PROGBITS)
|| (shdr.sh_type == SHT_NOBITS)
|| (shdr.sh_type == SHT_INIT_ARRAY)
|| (shdr.sh_type == SHT_FINI_ARRAY))
&& ((shdr.sh_flags & SHF_WRITE)
|| (shdr.sh_flags & SHF_ALLOC)
|| (shdr.sh_flags & SHF_EXECINSTR))) {
data = elf_getdata (scn, data);
// n_initialized += data->d_size;
if (shdr.sh_addr < min_addr)
min_addr = shdr.sh_addr;
if (max_addr < (shdr.sh_addr + data->d_size - 1)) // shdr.sh_size + 4))
max_addr = shdr.sh_addr + data->d_size - 1; // shdr.sh_size + 4;
if (max_addr >= MAX_MEM_SIZE) {
fprintf (stdout, "INTERNAL ERROR: max_addr (0x%0" PRIx64 ") > buffer size (0x%0" PRIx64 ")\n",
max_addr, MAX_MEM_SIZE);
fprintf (stdout, " Please increase the #define in this program, recompile, and run again\n");
fprintf (stdout, " Abandoning this run\n");
exit (1);
}
if (shdr.sh_type != SHT_NOBITS) {
memcpy (& (mem_buf [shdr.sh_addr]), data->d_buf, data->d_size);
}
fprintf (stdout, "addr %16" PRIx64 " to addr %16" PRIx64 "; size 0x%8lx (= %0ld) bytes\n",
shdr.sh_addr, shdr.sh_addr + data->d_size, data->d_size, data->d_size);
}
// If we find the symbol table, search for symbols of interest
else if (shdr.sh_type == SHT_SYMTAB) {
fprintf (stdout, "Searching for addresses of '%s', '%s' and '%s' symbols\n",
start_symbol, exit_symbol, tohost_symbol);
// Get the section data
data = elf_getdata (scn, data);
// Get the number of symbols in this section
int symbols = shdr.sh_size / shdr.sh_entsize;
// search for the uart_default symbols we need to potentially modify.
GElf_Sym sym;
int i;
for (i = 0; i < symbols; ++i) {
// get the symbol data
gelf_getsym (data, i, &sym);
// get the name of the symbol
char *name = elf_strptr (e, shdr.sh_link, sym.st_name);
// Look for, and remember PC of the start symbol
if (strcmp (name, start_symbol) == 0) {
pc_start = sym.st_value;
}
// Look for, and remember PC of the exit symbol
else if (strcmp (name, exit_symbol) == 0) {
pc_exit = sym.st_value;
}
// Look for, and remember addr of 'tohost' symbol
else if (strcmp (name, tohost_symbol) == 0) {
tohost_addr = sym.st_value;
}
}
FILE *fp_symbol_table = fopen ("symbol_table.txt", "w");
if (fp_symbol_table != NULL) {
fprintf (stdout, "Writing symbols to: symbol_table.txt\n");
if (pc_start == -1)
fprintf (stdout, " No '_start' label found\n");
else
fprintf (fp_symbol_table, "_start 0x%0" PRIx64 "\n", pc_start);
if (pc_exit == -1)
fprintf (stdout, " No 'exit' label found\n");
else
fprintf (fp_symbol_table, "exit 0x%0" PRIx64 "\n", pc_exit);
if (tohost_addr == -1)
fprintf (stdout, " No 'tohost' symbol found\n");
else
fprintf (fp_symbol_table, "tohost 0x%0" PRIx64 "\n", tohost_addr);
fclose (fp_symbol_table);
}
}
else {
fprintf (stdout, "Ignored\n");
}
}
elf_end (e);
fprintf (stdout, "Min addr: %16" PRIx64 " (hex)\n", min_addr);
fprintf (stdout, "Max addr: %16" PRIx64 " (hex)\n", max_addr);
}
// ================================================================
// Min and max byte addrs for various mem sizes
#define BASE_ADDR_B 0x80000000lu
// For 16 MB memory at 0x_8000_0000
#define MIN_MEM_ADDR_16MB BASE_ADDR_B
#define MAX_MEM_ADDR_16MB (BASE_ADDR_B + 0x1000000lu)
// For 256 MB memory at 0x_8000_0000
#define MIN_MEM_ADDR_256MB BASE_ADDR_B
#define MAX_MEM_ADDR_256MB (BASE_ADDR_B + 0x10000000lu)
// ================================================================
// Write out from word containing addr1 to word containing addr2
void write_mem_hex_file (FILE *fp, uint64_t addr1, uint64_t addr2)
{
const uint64_t bits_per_raw_mem_word = 256;
uint64_t bytes_per_raw_mem_word = bits_per_raw_mem_word / 8; // 32
uint64_t raw_mem_word_align_mask = (~ ((uint64_t) (bytes_per_raw_mem_word - 1)));
fprintf (stdout, "Subtracting 0x%08" PRIx64 " base from addresses\n", BASE_ADDR_B);
// Align the start and end addrs to raw mem words
uint64_t a1 = (addr1 & raw_mem_word_align_mask);
uint64_t a2 = ((addr2 + bytes_per_raw_mem_word - 1) & raw_mem_word_align_mask);
fprintf (fp, "@%07" PRIx64 " // raw_mem addr; byte addr: %08" PRIx64 "\n",
((a1 - BASE_ADDR_B) / bytes_per_raw_mem_word),
a1 - BASE_ADDR_B);
uint64_t addr;
for (addr = a1; addr < a2; addr += bytes_per_raw_mem_word) {
for (int j = (bytes_per_raw_mem_word - 1); j >= 0; j--)
fprintf (fp, "%02x", mem_buf [addr+j]);
fprintf (fp, " // raw_mem addr %08" PRIx64 "; byte addr %08" PRIx64 "\n",
((addr - BASE_ADDR_B) / bytes_per_raw_mem_word),
(addr - BASE_ADDR_B));
}
// Write last word, if necessary, to avoid warnings about missing locations
if (addr < (MAX_MEM_ADDR_256MB - bytes_per_raw_mem_word)) {
addr = MAX_MEM_ADDR_256MB - bytes_per_raw_mem_word;
fprintf (fp, "@%07" PRIx64 " // last raw_mem addr; byte addr: %08" PRIx64 "\n",
((addr - BASE_ADDR_B) / bytes_per_raw_mem_word),
addr - BASE_ADDR_B);
for (int j = (bytes_per_raw_mem_word - 1); j >= 0; j--)
fprintf (fp, "%02x", 0);
fprintf (fp, " // raw_mem addr %08" PRIx64 "; byte addr %08" PRIx64 "\n",
((addr - BASE_ADDR_B) / bytes_per_raw_mem_word),
(addr - BASE_ADDR_B));
}
}
// ================================================================
void print_usage (FILE *fp, int argc, char *argv [])
{
fprintf (fp, "Usage:\n");
fprintf (fp, " %s --help\n", argv [0]);
fprintf (fp, " %s <ELF filename> <mem hex filename>\n", argv [0]);
fprintf (fp, "Reads ELF file and writes a Verilog Hex Memory image file\n");
fprintf (fp, "ELF file should have addresses within this range:\n");
fprintf (fp, "< Max: 0x%8" PRIx64 "\n", MAX_MEM_ADDR_256MB);
fprintf (fp, ">= Min: 0x%8" PRIx64 "\n", MIN_MEM_ADDR_256MB);
}
// ================================================================
int main (int argc, char *argv [])
{
if ((argc == 2) && (strcmp (argv [1], "--help") == 0)) {
print_usage (stdout, argc, argv);
return 0;
}
else if (argc != 3) {
print_usage (stderr, argc, argv);
return 1;
}
// Zero out the memory buffer before loading the ELF file
bzero (mem_buf, MAX_MEM_SIZE);
// bzero (& (mem_buf [BASE_ADDR_B]), MAX_MEM_SIZE - BASE_ADDR_B);
c_mem_load_elf (argv [1], "_start", "exit", "tohost");
if ((min_addr < BASE_ADDR_B) || (MAX_MEM_ADDR_256MB <= max_addr)) {
print_usage (stderr, argc, argv);
exit (1);
}
FILE *fp_out = fopen (argv [2], "w");
if (fp_out == NULL) {
fprintf (stderr, "ERROR: unable to open file '%s' for output\n", argv [2]);
return 1;
}
fprintf (stdout, "Writing mem hex to file '%s'\n", argv [2]);
write_mem_hex_file (fp_out, BASE_ADDR_B, max_addr);
// write_mem_hex_file (fp_out, BASE_ADDR_B, MAX_MEM_ADDR_256MB);
fclose (fp_out);
}

Binary file not shown.

View File

@@ -0,0 +1,207 @@
rv32mi-p-breakpoint: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 00000f17 auipc t5,0x0
80000024: 210f0f13 addi t5,t5,528 # 80000230 <mtvec_handler>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00002537 lui a0,0x2
800000ec: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
800000f0: 30052073 csrs mstatus,a0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <reset_vector+0xbc>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108: 00200193 li gp,2
8000010c: 7a001073 csrw tselect,zero
80000110: 7a0025f3 csrr a1,tselect
80000114: 10b01863 bne zero,a1,80000224 <pass>
80000118: 7a102573 csrr a0,tdata1
8000011c: 01c55513 srli a0,a0,0x1c
80000120: 00200593 li a1,2
80000124: 10b51063 bne a0,a1,80000224 <pass>
80000128: 00000617 auipc a2,0x0
8000012c: 02060613 addi a2,a2,32 # 80000148 <reset_vector+0xfc>
80000130: 7a261073 csrw tdata2,a2
80000134: 04400513 li a0,68
80000138: 7a151073 csrw tdata1,a0
8000013c: 7a1025f3 csrr a1,tdata1
80000140: 7ff5f593 andi a1,a1,2047
80000144: 00b51863 bne a0,a1,80000154 <reset_vector+0x108>
80000148: 0c000463 beqz zero,80000210 <fail>
8000014c: 00300193 li gp,3
80000150: 00062503 lw a0,0(a2)
80000154: 00400193 li gp,4
80000158: 04100513 li a0,65
8000015c: 7a151073 csrw tdata1,a0
80000160: 7a1025f3 csrr a1,tdata1
80000164: 7ff5f593 andi a1,a1,2047
80000168: 02b51063 bne a0,a1,80000188 <reset_vector+0x13c>
8000016c: 00002617 auipc a2,0x2
80000170: e9460613 addi a2,a2,-364 # 80002000 <begin_signature>
80000174: 7a261073 csrw tdata2,a2
80000178: 00062603 lw a2,0(a2)
8000017c: 08060a63 beqz a2,80000210 <fail>
80000180: 00500193 li gp,5
80000184: 00062023 sw zero,0(a2)
80000188: 00600193 li gp,6
8000018c: 04200513 li a0,66
80000190: 7a151073 csrw tdata1,a0
80000194: 7a1025f3 csrr a1,tdata1
80000198: 7ff5f593 andi a1,a1,2047
8000019c: 06b51863 bne a0,a1,8000020c <reset_vector+0x1c0>
800001a0: 00c62023 sw a2,0(a2)
800001a4: 00700193 li gp,7
800001a8: 00062603 lw a2,0(a2)
800001ac: 06061263 bnez a2,80000210 <fail>
800001b0: 00100513 li a0,1
800001b4: 7a051073 csrw tselect,a0
800001b8: 7a0025f3 csrr a1,tselect
800001bc: 06b51463 bne a0,a1,80000224 <pass>
800001c0: 7a102573 csrr a0,tdata1
800001c4: 01c55513 srli a0,a0,0x1c
800001c8: 00200593 li a1,2
800001cc: 04b51c63 bne a0,a1,80000224 <pass>
800001d0: 04100513 li a0,65
800001d4: 7a151073 csrw tdata1,a0
800001d8: 00002697 auipc a3,0x2
800001dc: e2c68693 addi a3,a3,-468 # 80002004 <data2>
800001e0: 7a269073 csrw tdata2,a3
800001e4: 00800193 li gp,8
800001e8: 0006a683 lw a3,0(a3)
800001ec: 02068263 beqz a3,80000210 <fail>
800001f0: 00a00193 li gp,10
800001f4: 00002617 auipc a2,0x2
800001f8: e0c60613 addi a2,a2,-500 # 80002000 <begin_signature>
800001fc: 00c62023 sw a2,0(a2)
80000200: 00b00193 li gp,11
80000204: 00062603 lw a2,0(a2)
80000208: 00061463 bnez a2,80000210 <fail>
8000020c: 00301c63 bne zero,gp,80000224 <pass>
80000210 <fail>:
80000210: 0ff0000f fence
80000214: 00018063 beqz gp,80000214 <fail+0x4>
80000218: 00119193 slli gp,gp,0x1
8000021c: 0011e193 ori gp,gp,1
80000220: 00000073 ecall
80000224 <pass>:
80000224: 0ff0000f fence
80000228: 00100193 li gp,1
8000022c: 00000073 ecall
80000230 <mtvec_handler>:
80000230: 0011f293 andi t0,gp,1
80000234: fc029ee3 bnez t0,80000210 <fail>
80000238: 00300293 li t0,3
8000023c: 34202373 csrr t1,mcause
80000240: fc6298e3 bne t0,t1,80000210 <fail>
80000244: 341022f3 csrr t0,mepc
80000248: 00428293 addi t0,t0,4
8000024c: 34129073 csrw mepc,t0
80000250: 30200073 mret
80000254: c0001073 unimp
80000258: 0000 unimp
8000025a: 0000 unimp
8000025c: 0000 unimp
8000025e: 0000 unimp
80000260: 0000 unimp
80000262: 0000 unimp
80000264: 0000 unimp
80000266: 0000 unimp
80000268: 0000 unimp
8000026a: 0000 unimp
8000026c: 0000 unimp
8000026e: 0000 unimp
80000270: 0000 unimp
80000272: 0000 unimp
80000274: 0000 unimp
80000276: 0000 unimp
80000278: 0000 unimp
8000027a: 0000 unimp
8000027c: 0000 unimp
8000027e: 0000 unimp
80000280: 0000 unimp
80000282: 0000 unimp
Disassembly of section .data:
80002000 <begin_signature>:
80002000: 0000 unimp
80002002: 0000 unimp
80002004 <data2>:
80002004: 0000 unimp
80002006: 0000 unimp
80002008: 0000 unimp
8000200a: 0000 unimp
8000200c: 0000 unimp
8000200e: 0000 unimp

BIN
Tests/isa/rv32mi-p-csr Normal file

Binary file not shown.

241
Tests/isa/rv32mi-p-csr.dump Normal file
View File

@@ -0,0 +1,241 @@
rv32mi-p-csr: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 00000f17 auipc t5,0x0
80000024: 248f0f13 addi t5,t5,584 # 80000268 <mtvec_handler>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00002537 lui a0,0x2
800000ec: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
800000f0: 30052073 csrs mstatus,a0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <reset_vector+0xbc>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108: 3401d073 csrwi mscratch,3
8000010c <test_2>:
8000010c: 34002573 csrr a0,mscratch
80000110: 00300e93 li t4,3
80000114: 00200193 li gp,2
80000118: 13d51863 bne a0,t4,80000248 <fail>
8000011c <test_3>:
8000011c: 3400f5f3 csrrci a1,mscratch,1
80000120: 00300e93 li t4,3
80000124: 00300193 li gp,3
80000128: 13d59063 bne a1,t4,80000248 <fail>
8000012c <test_4>:
8000012c: 34026673 csrrsi a2,mscratch,4
80000130: 00200e93 li t4,2
80000134: 00400193 li gp,4
80000138: 11d61863 bne a2,t4,80000248 <fail>
8000013c <test_5>:
8000013c: 340156f3 csrrwi a3,mscratch,2
80000140: 00600e93 li t4,6
80000144: 00500193 li gp,5
80000148: 11d69063 bne a3,t4,80000248 <fail>
8000014c <test_6>:
8000014c: 0bad2537 lui a0,0xbad2
80000150: dea50513 addi a0,a0,-534 # bad1dea <_start-0x7452e216>
80000154: 340515f3 csrrw a1,mscratch,a0
80000158: 00200e93 li t4,2
8000015c: 00600193 li gp,6
80000160: 0fd59463 bne a1,t4,80000248 <fail>
80000164 <test_7>:
80000164: 00002537 lui a0,0x2
80000168: dea50513 addi a0,a0,-534 # 1dea <_start-0x7fffe216>
8000016c: 34053573 csrrc a0,mscratch,a0
80000170: 0bad2eb7 lui t4,0xbad2
80000174: deae8e93 addi t4,t4,-534 # bad1dea <_start-0x7452e216>
80000178: 00700193 li gp,7
8000017c: 0dd51663 bne a0,t4,80000248 <fail>
80000180 <test_8>:
80000180: 0000c537 lui a0,0xc
80000184: eef50513 addi a0,a0,-273 # beef <_start-0x7fff4111>
80000188: 34052573 csrrs a0,mscratch,a0
8000018c: 0bad0eb7 lui t4,0xbad0
80000190: 00800193 li gp,8
80000194: 0bd51a63 bne a0,t4,80000248 <fail>
80000198 <test_9>:
80000198: 34002573 csrr a0,mscratch
8000019c: 0badceb7 lui t4,0xbadc
800001a0: eefe8e93 addi t4,t4,-273 # badbeef <_start-0x74524111>
800001a4: 00900193 li gp,9
800001a8: 0bd51063 bne a0,t4,80000248 <fail>
800001ac: 30102573 csrr a0,misa
800001b0: 02057513 andi a0,a0,32
800001b4: 02050863 beqz a0,800001e4 <test_10+0x14>
800001b8: 000065b7 lui a1,0x6
800001bc: 3005a073 csrs mstatus,a1
800001c0: f0000053 fmv.w.x ft0,zero
800001c4: 3005b073 csrc mstatus,a1
800001c8: 00002597 auipc a1,0x2
800001cc: e3858593 addi a1,a1,-456 # 80002000 <begin_signature>
800001d0 <test_10>:
800001d0: 0005a027 fsw ft0,0(a1)
800001d4: 0005a503 lw a0,0(a1)
800001d8: 00100e93 li t4,1
800001dc: 00a00193 li gp,10
800001e0: 07d51463 bne a0,t4,80000248 <fail>
800001e4: 30102573 csrr a0,misa
800001e8: 01455513 srli a0,a0,0x14
800001ec: 00157513 andi a0,a0,1
800001f0: 04050463 beqz a0,80000238 <finish>
800001f4: 000022b7 lui t0,0x2
800001f8: 80028293 addi t0,t0,-2048 # 1800 <_start-0x7fffe800>
800001fc: 3002b073 csrc mstatus,t0
80000200: 00000297 auipc t0,0x0
80000204: 01028293 addi t0,t0,16 # 80000210 <test_11>
80000208: 34129073 csrw mepc,t0
8000020c: 30200073 mret
80000210 <test_11>:
80000210: 0ff00513 li a0,255
80000214: c0001573 csrrw a0,cycle,zero
80000218: 0ff00e93 li t4,255
8000021c: 00b00193 li gp,11
80000220: 03d51463 bne a0,t4,80000248 <fail>
80000224 <test_12>:
80000224: 0ff00513 li a0,255
80000228: 30002573 csrr a0,mstatus
8000022c: 0ff00e93 li t4,255
80000230: 00c00193 li gp,12
80000234: 01d51a63 bne a0,t4,80000248 <fail>
80000238 <finish>:
80000238: 0ff0000f fence
8000023c: 00100193 li gp,1
80000240: 00000073 ecall
80000244: 00301c63 bne zero,gp,8000025c <pass>
80000248 <fail>:
80000248: 0ff0000f fence
8000024c: 00018063 beqz gp,8000024c <fail+0x4>
80000250: 00119193 slli gp,gp,0x1
80000254: 0011e193 ori gp,gp,1
80000258: 00000073 ecall
8000025c <pass>:
8000025c: 0ff0000f fence
80000260: 00100193 li gp,1
80000264: 00000073 ecall
80000268 <mtvec_handler>:
80000268: 00900293 li t0,9
8000026c: 0051e663 bltu gp,t0,80000278 <mtvec_handler+0x10>
80000270: 00b00293 li t0,11
80000274: 0032fe63 bleu gp,t0,80000290 <privileged>
80000278: 342022f3 csrr t0,mcause
8000027c: 00800313 li t1,8
80000280: fc6294e3 bne t0,t1,80000248 <fail>
80000284: 0ff0000f fence
80000288: 00100193 li gp,1
8000028c: 00000073 ecall
80000290 <privileged>:
80000290: 342022f3 csrr t0,mcause
80000294: 00200313 li t1,2
80000298: fa6298e3 bne t0,t1,80000248 <fail>
8000029c: 341022f3 csrr t0,mepc
800002a0: 00428293 addi t0,t0,4
800002a4: 34129073 csrw mepc,t0
800002a8: 30200073 mret
800002ac: c0001073 unimp
800002b0: 0000 unimp
800002b2: 0000 unimp
800002b4: 0000 unimp
800002b6: 0000 unimp
800002b8: 0000 unimp
800002ba: 0000 unimp
800002bc: 0000 unimp
800002be: 0000 unimp
800002c0: 0000 unimp
800002c2: 0000 unimp
Disassembly of section .data:
80002000 <begin_signature>:
80002000: 0001 nop
80002002: 0000 unimp
80002004: 0000 unimp
80002006: 0000 unimp
80002008: 0000 unimp
8000200a: 0000 unimp
8000200c: 0000 unimp
8000200e: 0000 unimp

BIN
Tests/isa/rv32mi-p-illegal Normal file

Binary file not shown.

View File

@@ -0,0 +1,383 @@
rv32mi-p-illegal: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 00000f17 auipc t5,0x0
80000024: 2e0f0f13 addi t5,t5,736 # 80000300 <mtvec_handler>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00002537 lui a0,0x2
800000ec: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
800000f0: 30052073 csrs mstatus,a0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <reset_vector+0xbc>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108: 00200193 li gp,2
8000010c <bad2>:
8000010c: 0000 unimp
8000010e: 0000 unimp
80000110: 0f40006f j 80000204 <fail>
80000114: 000022b7 lui t0,0x2
80000118: 80028293 addi t0,t0,-2048 # 1800 <_start-0x7fffe800>
8000011c: 3002b073 csrc mstatus,t0
80000120: 00001337 lui t1,0x1
80000124: 80030313 addi t1,t1,-2048 # 800 <_start-0x7ffff800>
80000128: 30032073 csrs mstatus,t1
8000012c: 300023f3 csrr t2,mstatus
80000130: 0053f3b3 and t2,t2,t0
80000134: 0e731263 bne t1,t2,80000218 <pass>
80000138 <test_vectored_interrupts>:
80000138: 34415073 csrwi mip,2
8000013c: 30415073 csrwi mie,2
80000140: 00000297 auipc t0,0x0
80000144: 1c128293 addi t0,t0,449 # 80000301 <mtvec_handler+0x1>
80000148: 30529473 csrrw s0,mtvec,t0
8000014c: 305022f3 csrr t0,mtvec
80000150: 0012f293 andi t0,t0,1
80000154: 00028663 beqz t0,80000160 <msip>
80000158: 30046073 csrsi mstatus,8
8000015c: 0000006f j 8000015c <test_vectored_interrupts+0x24>
80000160 <msip>:
80000160: 30541073 csrw mtvec,s0
80000164: 30315073 csrwi mideleg,2
80000168: 00000297 auipc t0,0x0
8000016c: 02828293 addi t0,t0,40 # 80000190 <msip+0x30>
80000170: 34129073 csrw mepc,t0
80000174: 000022b7 lui t0,0x2
80000178: 80028293 addi t0,t0,-2048 # 1800 <_start-0x7fffe800>
8000017c: 3002b073 csrc mstatus,t0
80000180: 00001337 lui t1,0x1
80000184: 80030313 addi t1,t1,-2048 # 800 <_start-0x7ffff800>
80000188: 30032073 csrs mstatus,t1
8000018c: 30200073 mret
80000190: 10500073 wfi
80000194 <bad3>:
80000194: 0000 unimp
80000196: 0000 unimp
80000198: 06c0006f j 80000204 <fail>
8000019c <bad4>:
8000019c: 10500073 wfi
800001a0: 0640006f j 80000204 <fail>
800001a4: 12000073 sfence.vma
800001a8: 180022f3 csrr t0,satp
800001ac <bad5>:
800001ac: 0000 unimp
800001ae: 0000 unimp
800001b0: 0540006f j 80000204 <fail>
800001b4 <bad6>:
800001b4: 12000073 sfence.vma
800001b8: 04c0006f j 80000204 <fail>
800001bc <bad7>:
800001bc: 180022f3 csrr t0,satp
800001c0: 0440006f j 80000204 <fail>
800001c4: 00000297 auipc t0,0x0
800001c8: 02028293 addi t0,t0,32 # 800001e4 <bad8>
800001cc: 14129073 csrw sepc,t0
800001d0: 10000293 li t0,256
800001d4: 1002a073 csrs sstatus,t0
800001d8: 02000293 li t0,32
800001dc: 1002b073 csrc sstatus,t0
800001e0: 10200073 sret
800001e4 <bad8>:
800001e4: 0000 unimp
800001e6: 0000 unimp
800001e8: 01c0006f j 80000204 <fail>
800001ec: 00000297 auipc t0,0x0
800001f0: 01028293 addi t0,t0,16 # 800001fc <bad9+0x4>
800001f4: 14129073 csrw sepc,t0
800001f8 <bad9>:
800001f8: 10200073 sret
800001fc: 0080006f j 80000204 <fail>
80000200: 00301c63 bne zero,gp,80000218 <pass>
80000204 <fail>:
80000204: 0ff0000f fence
80000208: 00018063 beqz gp,80000208 <fail+0x4>
8000020c: 00119193 slli gp,gp,0x1
80000210: 0011e193 ori gp,gp,1
80000214: 00000073 ecall
80000218 <pass>:
80000218: 0ff0000f fence
8000021c: 00100193 li gp,1
80000220: 00000073 ecall
80000224: 00000013 nop
80000228: 00000013 nop
8000022c: 00000013 nop
80000230: 00000013 nop
80000234: 00000013 nop
80000238: 00000013 nop
8000023c: 00000013 nop
80000240: 00000013 nop
80000244: 00000013 nop
80000248: 00000013 nop
8000024c: 00000013 nop
80000250: 00000013 nop
80000254: 00000013 nop
80000258: 00000013 nop
8000025c: 00000013 nop
80000260: 00000013 nop
80000264: 00000013 nop
80000268: 00000013 nop
8000026c: 00000013 nop
80000270: 00000013 nop
80000274: 00000013 nop
80000278: 00000013 nop
8000027c: 00000013 nop
80000280: 00000013 nop
80000284: 00000013 nop
80000288: 00000013 nop
8000028c: 00000013 nop
80000290: 00000013 nop
80000294: 00000013 nop
80000298: 00000013 nop
8000029c: 00000013 nop
800002a0: 00000013 nop
800002a4: 00000013 nop
800002a8: 00000013 nop
800002ac: 00000013 nop
800002b0: 00000013 nop
800002b4: 00000013 nop
800002b8: 00000013 nop
800002bc: 00000013 nop
800002c0: 00000013 nop
800002c4: 00000013 nop
800002c8: 00000013 nop
800002cc: 00000013 nop
800002d0: 00000013 nop
800002d4: 00000013 nop
800002d8: 00000013 nop
800002dc: 00000013 nop
800002e0: 00000013 nop
800002e4: 00000013 nop
800002e8: 00000013 nop
800002ec: 00000013 nop
800002f0: 00000013 nop
800002f4: 00000013 nop
800002f8: 00000013 nop
800002fc: 00000013 nop
80000300 <mtvec_handler>:
80000300: 0400006f j 80000340 <synchronous_exception>
80000304: e5dff06f j 80000160 <msip>
80000308: efdff06f j 80000204 <fail>
8000030c: ef9ff06f j 80000204 <fail>
80000310: ef5ff06f j 80000204 <fail>
80000314: ef1ff06f j 80000204 <fail>
80000318: eedff06f j 80000204 <fail>
8000031c: ee9ff06f j 80000204 <fail>
80000320: ee5ff06f j 80000204 <fail>
80000324: ee1ff06f j 80000204 <fail>
80000328: eddff06f j 80000204 <fail>
8000032c: ed9ff06f j 80000204 <fail>
80000330: ed5ff06f j 80000204 <fail>
80000334: ed1ff06f j 80000204 <fail>
80000338: ecdff06f j 80000204 <fail>
8000033c: ec9ff06f j 80000204 <fail>
80000340 <synchronous_exception>:
80000340: 00200313 li t1,2
80000344: 342022f3 csrr t0,mcause
80000348: ea629ee3 bne t0,t1,80000204 <fail>
8000034c: 341022f3 csrr t0,mepc
80000350: 343023f3 csrr t2,mbadaddr
80000354: 00038c63 beqz t2,8000036c <synchronous_exception+0x2c>
80000358: 0002de03 lhu t3,0(t0)
8000035c: 0022de83 lhu t4,2(t0)
80000360: 010e9e93 slli t4,t4,0x10
80000364: 01de6e33 or t3,t3,t4
80000368: e9c39ee3 bne t2,t3,80000204 <fail>
8000036c: 00000317 auipc t1,0x0
80000370: da030313 addi t1,t1,-608 # 8000010c <bad2>
80000374: 04628e63 beq t0,t1,800003d0 <synchronous_exception+0x90>
80000378: 00000317 auipc t1,0x0
8000037c: e1c30313 addi t1,t1,-484 # 80000194 <bad3>
80000380: 04628e63 beq t0,t1,800003dc <synchronous_exception+0x9c>
80000384: 00000317 auipc t1,0x0
80000388: e1830313 addi t1,t1,-488 # 8000019c <bad4>
8000038c: 04628263 beq t0,t1,800003d0 <synchronous_exception+0x90>
80000390: 00000317 auipc t1,0x0
80000394: e1c30313 addi t1,t1,-484 # 800001ac <bad5>
80000398: 04628863 beq t0,t1,800003e8 <synchronous_exception+0xa8>
8000039c: 00000317 auipc t1,0x0
800003a0: e1830313 addi t1,t1,-488 # 800001b4 <bad6>
800003a4: 02628663 beq t0,t1,800003d0 <synchronous_exception+0x90>
800003a8: 00000317 auipc t1,0x0
800003ac: e1430313 addi t1,t1,-492 # 800001bc <bad7>
800003b0: 02628063 beq t0,t1,800003d0 <synchronous_exception+0x90>
800003b4: 00000317 auipc t1,0x0
800003b8: e3030313 addi t1,t1,-464 # 800001e4 <bad8>
800003bc: 02628c63 beq t0,t1,800003f4 <synchronous_exception+0xb4>
800003c0: 00000317 auipc t1,0x0
800003c4: e3830313 addi t1,t1,-456 # 800001f8 <bad9>
800003c8: 02628c63 beq t0,t1,80000400 <synchronous_exception+0xc0>
800003cc: e39ff06f j 80000204 <fail>
800003d0: 00828293 addi t0,t0,8
800003d4: 34129073 csrw mepc,t0
800003d8: 30200073 mret
800003dc: 00200337 lui t1,0x200
800003e0: 30032073 csrs mstatus,t1
800003e4: fedff06f j 800003d0 <synchronous_exception+0x90>
800003e8: 00100337 lui t1,0x100
800003ec: 30032073 csrs mstatus,t1
800003f0: fe1ff06f j 800003d0 <synchronous_exception+0x90>
800003f4: 00400337 lui t1,0x400
800003f8: 30032073 csrs mstatus,t1
800003fc: fd5ff06f j 800003d0 <synchronous_exception+0x90>
80000400: fd1ff06f j 800003d0 <synchronous_exception+0x90>
80000404: c0001073 unimp
80000408: 0000 unimp
8000040a: 0000 unimp
8000040c: 0000 unimp
8000040e: 0000 unimp
80000410: 0000 unimp
80000412: 0000 unimp
80000414: 0000 unimp
80000416: 0000 unimp
80000418: 0000 unimp
8000041a: 0000 unimp
8000041c: 0000 unimp
8000041e: 0000 unimp
80000420: 0000 unimp
80000422: 0000 unimp
80000424: 0000 unimp
80000426: 0000 unimp
80000428: 0000 unimp
8000042a: 0000 unimp
8000042c: 0000 unimp
8000042e: 0000 unimp
80000430: 0000 unimp
80000432: 0000 unimp
80000434: 0000 unimp
80000436: 0000 unimp
80000438: 0000 unimp
8000043a: 0000 unimp
8000043c: 0000 unimp
8000043e: 0000 unimp
80000440: 0000 unimp
80000442: 0000 unimp
80000444: 0000 unimp
80000446: 0000 unimp
80000448: 0000 unimp
8000044a: 0000 unimp
8000044c: 0000 unimp
8000044e: 0000 unimp
80000450: 0000 unimp
80000452: 0000 unimp
80000454: 0000 unimp
80000456: 0000 unimp
80000458: 0000 unimp
8000045a: 0000 unimp
8000045c: 0000 unimp
8000045e: 0000 unimp
80000460: 0000 unimp
80000462: 0000 unimp
80000464: 0000 unimp
80000466: 0000 unimp
80000468: 0000 unimp
8000046a: 0000 unimp
8000046c: 0000 unimp
8000046e: 0000 unimp
80000470: 0000 unimp
80000472: 0000 unimp
80000474: 0000 unimp
80000476: 0000 unimp
80000478: 0000 unimp
8000047a: 0000 unimp
8000047c: 0000 unimp
8000047e: 0000 unimp
80000480: 0000 unimp
80000482: 0000 unimp
80000484: 0000 unimp
80000486: 0000 unimp
80000488: 0000 unimp
8000048a: 0000 unimp
8000048c: 0000 unimp
8000048e: 0000 unimp
80000490: 0000 unimp
80000492: 0000 unimp
80000494: 0000 unimp
80000496: 0000 unimp
80000498: 0000 unimp
8000049a: 0000 unimp
8000049c: 0000 unimp
8000049e: 0000 unimp
800004a0: 0000 unimp
800004a2: 0000 unimp

BIN
Tests/isa/rv32mi-p-ma_addr Normal file

Binary file not shown.

View File

@@ -0,0 +1,363 @@
rv32mi-p-ma_addr: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 00000f17 auipc t5,0x0
80000024: 290f0f13 addi t5,t5,656 # 800002b0 <mtvec_handler>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00002537 lui a0,0x2
800000ec: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
800000f0: 30052073 csrs mstatus,a0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <reset_vector+0xbc>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108: 00002417 auipc s0,0x2
8000010c: ef840413 addi s0,s0,-264 # 80002000 <begin_signature>
80000110: 00400493 li s1,4
80000114: 00200193 li gp,2
80000118: 00000397 auipc t2,0x0
8000011c: 01c38393 addi t2,t2,28 # 80000134 <reset_vector+0xe8>
80000120: 00140313 addi t1,s0,1
80000124: 00141303 lh t1,1(s0)
80000128: ffffc3b7 lui t2,0xffffc
8000012c: bcc38393 addi t2,t2,-1076 # ffffbbcc <_end+0x7fff9abc>
80000130: 14731e63 bne t1,t2,8000028c <fail>
80000134: 00300193 li gp,3
80000138: 00000397 auipc t2,0x0
8000013c: 01c38393 addi t2,t2,28 # 80000154 <reset_vector+0x108>
80000140: 00140313 addi t1,s0,1
80000144: 00145303 lhu t1,1(s0)
80000148: 0000c3b7 lui t2,0xc
8000014c: bcc38393 addi t2,t2,-1076 # bbcc <_start-0x7fff4434>
80000150: 12731e63 bne t1,t2,8000028c <fail>
80000154: 00400193 li gp,4
80000158: 00000397 auipc t2,0x0
8000015c: 01c38393 addi t2,t2,28 # 80000174 <reset_vector+0x128>
80000160: 00140313 addi t1,s0,1
80000164: 00142303 lw t1,1(s0)
80000168: 99aac3b7 lui t2,0x99aac
8000016c: bcc38393 addi t2,t2,-1076 # 99aabbcc <_end+0x19aa9abc>
80000170: 10731e63 bne t1,t2,8000028c <fail>
80000174: 00500193 li gp,5
80000178: 00000397 auipc t2,0x0
8000017c: 01c38393 addi t2,t2,28 # 80000194 <reset_vector+0x148>
80000180: 00240313 addi t1,s0,2
80000184: 00242303 lw t1,2(s0)
80000188: 8899b3b7 lui t2,0x8899b
8000018c: abb38393 addi t2,t2,-1349 # 8899aabb <_end+0x89989ab>
80000190: 0e731e63 bne t1,t2,8000028c <fail>
80000194: 00600193 li gp,6
80000198: 00000397 auipc t2,0x0
8000019c: 01c38393 addi t2,t2,28 # 800001b4 <reset_vector+0x168>
800001a0: 00340313 addi t1,s0,3
800001a4: 00342303 lw t1,3(s0)
800001a8: 7788a3b7 lui t2,0x7788a
800001ac: 9aa38393 addi t2,t2,-1622 # 778899aa <_start-0x8776656>
800001b0: 0c731e63 bne t1,t2,8000028c <fail>
800001b4: 00600493 li s1,6
800001b8: 01600193 li gp,22
800001bc: 00000397 auipc t2,0x0
800001c0: 03038393 addi t2,t2,48 # 800001ec <reset_vector+0x1a0>
800001c4: 00140313 addi t1,s0,1
800001c8: 000410a3 sh zero,1(s0)
800001cc: 00040303 lb t1,0(s0)
800001d0: 0a030e63 beqz t1,8000028c <fail>
800001d4: 00340303 lb t1,3(s0)
800001d8: 0a030a63 beqz t1,8000028c <fail>
800001dc: 00140303 lb t1,1(s0)
800001e0: 0a031663 bnez t1,8000028c <fail>
800001e4: 00240303 lb t1,2(s0)
800001e8: 0a031263 bnez t1,8000028c <fail>
800001ec: 01700193 li gp,23
800001f0: 00000397 auipc t2,0x0
800001f4: 03038393 addi t2,t2,48 # 80000220 <reset_vector+0x1d4>
800001f8: 00540313 addi t1,s0,5
800001fc: 000422a3 sw zero,5(s0)
80000200: 00440303 lb t1,4(s0)
80000204: 08030463 beqz t1,8000028c <fail>
80000208: 00940303 lb t1,9(s0)
8000020c: 08030063 beqz t1,8000028c <fail>
80000210: 00540303 lb t1,5(s0)
80000214: 06031c63 bnez t1,8000028c <fail>
80000218: 00840303 lb t1,8(s0)
8000021c: 06031863 bnez t1,8000028c <fail>
80000220: 01800193 li gp,24
80000224: 00000397 auipc t2,0x0
80000228: 03038393 addi t2,t2,48 # 80000254 <reset_vector+0x208>
8000022c: 00a40313 addi t1,s0,10
80000230: 00042523 sw zero,10(s0)
80000234: 00940303 lb t1,9(s0)
80000238: 04030a63 beqz t1,8000028c <fail>
8000023c: 00e40303 lb t1,14(s0)
80000240: 04030663 beqz t1,8000028c <fail>
80000244: 00a40303 lb t1,10(s0)
80000248: 04031263 bnez t1,8000028c <fail>
8000024c: 00d40303 lb t1,13(s0)
80000250: 02031e63 bnez t1,8000028c <fail>
80000254: 01900193 li gp,25
80000258: 00000397 auipc t2,0x0
8000025c: 03038393 addi t2,t2,48 # 80000288 <reset_vector+0x23c>
80000260: 00f40313 addi t1,s0,15
80000264: 000427a3 sw zero,15(s0)
80000268: 00e40303 lb t1,14(s0)
8000026c: 02030063 beqz t1,8000028c <fail>
80000270: 01340303 lb t1,19(s0)
80000274: 00030c63 beqz t1,8000028c <fail>
80000278: 00f40303 lb t1,15(s0)
8000027c: 00031863 bnez t1,8000028c <fail>
80000280: 01240303 lb t1,18(s0)
80000284: 00031463 bnez t1,8000028c <fail>
80000288: 00301c63 bne zero,gp,800002a0 <pass>
8000028c <fail>:
8000028c: 0ff0000f fence
80000290: 00018063 beqz gp,80000290 <fail+0x4>
80000294: 00119193 slli gp,gp,0x1
80000298: 0011e193 ori gp,gp,1
8000029c: 00000073 ecall
800002a0 <pass>:
800002a0: 0ff0000f fence
800002a4: 00100193 li gp,1
800002a8: 00000073 ecall
800002ac: 00000013 nop
800002b0 <mtvec_handler>:
800002b0: 342022f3 csrr t0,mcause
800002b4: fc929ce3 bne t0,s1,8000028c <fail>
800002b8: 343022f3 csrr t0,mbadaddr
800002bc: fc6298e3 bne t0,t1,8000028c <fail>
800002c0: 00028283 lb t0,0(t0)
800002c4: fc0284e3 beqz t0,8000028c <fail>
800002c8: 34139073 csrw mepc,t2
800002cc: 30200073 mret
800002d0: c0001073 unimp
800002d4: 0000 unimp
800002d6: 0000 unimp
800002d8: 0000 unimp
800002da: 0000 unimp
800002dc: 0000 unimp
800002de: 0000 unimp
800002e0: 0000 unimp
800002e2: 0000 unimp
800002e4: 0000 unimp
800002e6: 0000 unimp
800002e8: 0000 unimp
800002ea: 0000 unimp
800002ec: 0000 unimp
800002ee: 0000 unimp
800002f0: 0000 unimp
800002f2: 0000 unimp
800002f4: 0000 unimp
800002f6: 0000 unimp
800002f8: 0000 unimp
800002fa: 0000 unimp
800002fc: 0000 unimp
800002fe: 0000 unimp
80000300: 0000 unimp
80000302: 0000 unimp
Disassembly of section .data:
80002000 <begin_signature>:
80002000: ccdd beqz s1,800020be <begin_signature+0xbe>
80002002: 8899aabb 0x8899aabb
80002006: 44556677 0x44556677
8000200a: ee112233 0xee112233
8000200e: eeff 0xeeff
80002010: 5050 lw a2,36(s0)
80002012: 5050 lw a2,36(s0)
80002014: 5050 lw a2,36(s0)
80002016: 5050 lw a2,36(s0)
80002018: 5050 lw a2,36(s0)
8000201a: 5050 lw a2,36(s0)
8000201c: 5050 lw a2,36(s0)
8000201e: 5050 lw a2,36(s0)
80002020: 5050 lw a2,36(s0)
80002022: 5050 lw a2,36(s0)
80002024: 5050 lw a2,36(s0)
80002026: 5050 lw a2,36(s0)
80002028: 5050 lw a2,36(s0)
8000202a: 5050 lw a2,36(s0)
8000202c: 5050 lw a2,36(s0)
8000202e: 5050 lw a2,36(s0)
80002030: 5050 lw a2,36(s0)
80002032: 5050 lw a2,36(s0)
80002034: 5050 lw a2,36(s0)
80002036: 5050 lw a2,36(s0)
80002038: 5050 lw a2,36(s0)
8000203a: 5050 lw a2,36(s0)
8000203c: 5050 lw a2,36(s0)
8000203e: 5050 lw a2,36(s0)
80002040: 5050 lw a2,36(s0)
80002042: 5050 lw a2,36(s0)
80002044: 5050 lw a2,36(s0)
80002046: 5050 lw a2,36(s0)
80002048: 5050 lw a2,36(s0)
8000204a: 5050 lw a2,36(s0)
8000204c: 5050 lw a2,36(s0)
8000204e: 5050 lw a2,36(s0)
80002050: 5050 lw a2,36(s0)
80002052: 5050 lw a2,36(s0)
80002054: 5050 lw a2,36(s0)
80002056: 5050 lw a2,36(s0)
80002058: 5050 lw a2,36(s0)
8000205a: 5050 lw a2,36(s0)
8000205c: 5050 lw a2,36(s0)
8000205e: 5050 lw a2,36(s0)
80002060: 5050 lw a2,36(s0)
80002062: 5050 lw a2,36(s0)
80002064: 5050 lw a2,36(s0)
80002066: 5050 lw a2,36(s0)
80002068: 5050 lw a2,36(s0)
8000206a: 5050 lw a2,36(s0)
8000206c: 5050 lw a2,36(s0)
8000206e: 5050 lw a2,36(s0)
80002070: 5050 lw a2,36(s0)
80002072: 5050 lw a2,36(s0)
80002074: 5050 lw a2,36(s0)
80002076: 5050 lw a2,36(s0)
80002078: 5050 lw a2,36(s0)
8000207a: 5050 lw a2,36(s0)
8000207c: 5050 lw a2,36(s0)
8000207e: 5050 lw a2,36(s0)
80002080: 5050 lw a2,36(s0)
80002082: 5050 lw a2,36(s0)
80002084: 5050 lw a2,36(s0)
80002086: 5050 lw a2,36(s0)
80002088: 5050 lw a2,36(s0)
8000208a: 5050 lw a2,36(s0)
8000208c: 5050 lw a2,36(s0)
8000208e: 5050 lw a2,36(s0)
80002090: 5050 lw a2,36(s0)
80002092: 5050 lw a2,36(s0)
80002094: 5050 lw a2,36(s0)
80002096: 5050 lw a2,36(s0)
80002098: 5050 lw a2,36(s0)
8000209a: 5050 lw a2,36(s0)
8000209c: 5050 lw a2,36(s0)
8000209e: 5050 lw a2,36(s0)
800020a0: 5050 lw a2,36(s0)
800020a2: 5050 lw a2,36(s0)
800020a4: 5050 lw a2,36(s0)
800020a6: 5050 lw a2,36(s0)
800020a8: 5050 lw a2,36(s0)
800020aa: 5050 lw a2,36(s0)
800020ac: 5050 lw a2,36(s0)
800020ae: 5050 lw a2,36(s0)
800020b0: 5050 lw a2,36(s0)
800020b2: 5050 lw a2,36(s0)
800020b4: 5050 lw a2,36(s0)
800020b6: 5050 lw a2,36(s0)
800020b8: 5050 lw a2,36(s0)
800020ba: 5050 lw a2,36(s0)
800020bc: 5050 lw a2,36(s0)
800020be: 5050 lw a2,36(s0)
800020c0: 5050 lw a2,36(s0)
800020c2: 5050 lw a2,36(s0)
800020c4: 5050 lw a2,36(s0)
800020c6: 5050 lw a2,36(s0)
800020c8: 5050 lw a2,36(s0)
800020ca: 5050 lw a2,36(s0)
800020cc: 5050 lw a2,36(s0)
800020ce: 5050 lw a2,36(s0)
800020d0: 5050 lw a2,36(s0)
800020d2: 5050 lw a2,36(s0)
800020d4: 5050 lw a2,36(s0)
800020d6: 5050 lw a2,36(s0)
800020d8: 5050 lw a2,36(s0)
800020da: 5050 lw a2,36(s0)
800020dc: 5050 lw a2,36(s0)
800020de: 5050 lw a2,36(s0)
800020e0: 5050 lw a2,36(s0)
800020e2: 5050 lw a2,36(s0)
800020e4: 5050 lw a2,36(s0)
800020e6: 5050 lw a2,36(s0)
800020e8: 5050 lw a2,36(s0)
800020ea: 5050 lw a2,36(s0)
800020ec: 5050 lw a2,36(s0)
800020ee: 5050 lw a2,36(s0)
800020f0: 5050 lw a2,36(s0)
800020f2: 5050 lw a2,36(s0)
800020f4: 5050 lw a2,36(s0)
800020f6: 5050 lw a2,36(s0)
800020f8: 5050 lw a2,36(s0)
800020fa: 5050 lw a2,36(s0)
800020fc: 5050 lw a2,36(s0)
800020fe: 5050 lw a2,36(s0)
80002100: 5050 lw a2,36(s0)
80002102: 5050 lw a2,36(s0)
80002104: 5050 lw a2,36(s0)
80002106: 5050 lw a2,36(s0)
80002108: 5050 lw a2,36(s0)
8000210a: 5050 lw a2,36(s0)
8000210c: 5050 lw a2,36(s0)
8000210e: 0050 addi a2,sp,4

BIN
Tests/isa/rv32mi-p-ma_fetch Normal file

Binary file not shown.

View File

@@ -0,0 +1,219 @@
rv32mi-p-ma_fetch: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 00000f17 auipc t5,0x0
80000024: 208f0f13 addi t5,t5,520 # 80000228 <mtvec_handler>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00002537 lui a0,0x2
800000ec: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
800000f0: 30052073 csrs mstatus,a0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <reset_vector+0xbc>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108: 00200193 li gp,2
8000010c: 00000313 li t1,0
80000110: 00000297 auipc t0,0x0
80000114: 00c28293 addi t0,t0,12 # 8000011c <reset_vector+0xd0>
80000118: 00228367 jalr t1,2(t0)
8000011c: a011 j 80000120 <reset_vector+0xd4>
8000011e: a019 j 80000124 <reset_vector+0xd8>
80000120: 0e80006f j 80000208 <fail>
80000124: 00300193 li gp,3
80000128: 00000297 auipc t0,0x0
8000012c: 00c28293 addi t0,t0,12 # 80000134 <reset_vector+0xe8>
80000130: 00128367 jalr t1,1(t0)
80000134: 0080006f j 8000013c <reset_vector+0xf0>
80000138: 0d00006f j 80000208 <fail>
8000013c: 00400193 li gp,4
80000140: 00000313 li t1,0
80000144: 00000297 auipc t0,0x0
80000148: 00c28293 addi t0,t0,12 # 80000150 <reset_vector+0x104>
8000014c: 00328367 jalr t1,3(t0)
80000150: a011 j 80000154 <reset_vector+0x108>
80000152: a019 j 80000158 <reset_vector+0x10c>
80000154: 0b40006f j 80000208 <fail>
80000158: 00500193 li gp,5
8000015c: 00000313 li t1,0
80000160: 00000297 auipc t0,0x0
80000164: 00c28293 addi t0,t0,12 # 8000016c <reset_vector+0x120>
80000168: 0060036f jal t1,8000016e <reset_vector+0x122>
8000016c: a011 j 80000170 <reset_vector+0x124>
8000016e: a019 j 80000174 <reset_vector+0x128>
80000170: 0980006f j 80000208 <fail>
80000174: 00600193 li gp,6
80000178: 00000313 li t1,0
8000017c: 00000297 auipc t0,0x0
80000180: 00c28293 addi t0,t0,12 # 80000188 <reset_vector+0x13c>
80000184: 00000363 beqz zero,8000018a <reset_vector+0x13e>
80000188: a011 j 8000018c <reset_vector+0x140>
8000018a: a019 j 80000190 <reset_vector+0x144>
8000018c: 07c0006f j 80000208 <fail>
80000190: 00700193 li gp,7
80000194: 00001563 bnez zero,8000019e <reset_vector+0x152>
80000198: 00c0006f j 800001a4 <reset_vector+0x158>
8000019c: a009 j 8000019e <reset_vector+0x152>
8000019e: a009 j 800001a0 <reset_vector+0x154>
800001a0: 0680006f j 80000208 <fail>
800001a4: 00800193 li gp,8
800001a8: 301023f3 csrr t2,misa
800001ac: 0043f393 andi t2,t2,4
800001b0: 04038863 beqz t2,80000200 <reset_vector+0x1b4>
800001b4: 0001 nop
800001b6: 30127073 csrci misa,4
800001ba: 0001 nop
800001bc: 301023f3 csrr t2,misa
800001c0: 0043f393 andi t2,t2,4
800001c4: 04038263 beqz t2,80000208 <fail>
800001c8: 00000297 auipc t0,0x0
800001cc: 03428293 addi t0,t0,52 # 800001fc <reset_vector+0x1b0>
800001d0: ffe28293 addi t0,t0,-2
800001d4: 34129073 csrw mepc,t0
800001d8: 30127073 csrci misa,4
800001dc: 301023f3 csrr t2,misa
800001e0: 0043f393 andi t2,t2,4
800001e4: 00039e63 bnez t2,80000200 <reset_vector+0x1b4>
800001e8: 000023b7 lui t2,0x2
800001ec: 80038393 addi t2,t2,-2048 # 1800 <_start-0x7fffe800>
800001f0: 3003a073 csrs mstatus,t2
800001f4: 30200073 mret
800001f8: 00000263 beqz zero,800001fc <reset_vector+0x1b0>
800001fc: 30126073 csrsi misa,4
80000200: 01c0006f j 8000021c <pass>
80000204: 00301c63 bne zero,gp,8000021c <pass>
80000208 <fail>:
80000208: 0ff0000f fence
8000020c: 00018063 beqz gp,8000020c <fail+0x4>
80000210: 00119193 slli gp,gp,0x1
80000214: 0011e193 ori gp,gp,1
80000218: 00000073 ecall
8000021c <pass>:
8000021c: 0ff0000f fence
80000220: 00100193 li gp,1
80000224: 00000073 ecall
80000228 <mtvec_handler>:
80000228: 00200513 li a0,2
8000022c: 02a18063 beq gp,a0,8000024c <mtvec_handler+0x24>
80000230: 00400513 li a0,4
80000234: 00a18c63 beq gp,a0,8000024c <mtvec_handler+0x24>
80000238: 00500513 li a0,5
8000023c: 00a18863 beq gp,a0,8000024c <mtvec_handler+0x24>
80000240: 00600513 li a0,6
80000244: 00a18463 beq gp,a0,8000024c <mtvec_handler+0x24>
80000248: fc1ff06f j 80000208 <fail>
8000024c: fa031ee3 bnez t1,80000208 <fail>
80000250: 00000593 li a1,0
80000254: 34202573 csrr a0,mcause
80000258: fab518e3 bne a0,a1,80000208 <fail>
8000025c: 341025f3 csrr a1,mepc
80000260: 00458593 addi a1,a1,4
80000264: fab292e3 bne t0,a1,80000208 <fail>
80000268: 34302573 csrr a0,mbadaddr
8000026c: 00050663 beqz a0,80000278 <mtvec_handler+0x50>
80000270: ffe50513 addi a0,a0,-2
80000274: f8551ae3 bne a0,t0,80000208 <fail>
80000278: 00c58593 addi a1,a1,12
8000027c: 34159073 csrw mepc,a1
80000280: 30200073 mret
80000284: c0001073 unimp
80000288: 0000 unimp
8000028a: 0000 unimp
8000028c: 0000 unimp
8000028e: 0000 unimp
80000290: 0000 unimp
80000292: 0000 unimp
80000294: 0000 unimp
80000296: 0000 unimp
80000298: 0000 unimp
8000029a: 0000 unimp
8000029c: 0000 unimp
8000029e: 0000 unimp
800002a0: 0000 unimp
800002a2: 0000 unimp
800002a4: 0000 unimp
800002a6: 0000 unimp
800002a8: 0000 unimp
800002aa: 0000 unimp
800002ac: 0000 unimp
800002ae: 0000 unimp
800002b0: 0000 unimp
800002b2: 0000 unimp
800002b4: 0000 unimp
800002b6: 0000 unimp
800002b8: 0000 unimp
800002ba: 0000 unimp
800002bc: 0000 unimp
800002be: 0000 unimp
800002c0: 0000 unimp
800002c2: 0000 unimp

BIN
Tests/isa/rv32mi-p-mcsr Normal file

Binary file not shown.

View File

@@ -0,0 +1,126 @@
rv32mi-p-mcsr: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00002537 lui a0,0x2
800000ec: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
800000f0: 30052073 csrs mstatus,a0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 30102573 csrr a0,misa
8000010c: 01e55513 srli a0,a0,0x1e
80000110: 00100e93 li t4,1
80000114: 00200193 li gp,2
80000118: 03d51863 bne a0,t4,80000148 <fail>
8000011c <test_3>:
8000011c: f1402573 csrr a0,mhartid
80000120: 00000e93 li t4,0
80000124: 00300193 li gp,3
80000128: 03d51063 bne a0,t4,80000148 <fail>
8000012c: f1302573 csrr a0,mimpid
80000130: f1202573 csrr a0,marchid
80000134: f1102573 csrr a0,mvendorid
80000138: 00000293 li t0,0
8000013c: 3052a073 csrs mtvec,t0
80000140: 3412a073 csrs mepc,t0
80000144: 00301c63 bne zero,gp,8000015c <pass>
80000148 <fail>:
80000148: 0ff0000f fence
8000014c: 00018063 beqz gp,8000014c <fail+0x4>
80000150: 00119193 slli gp,gp,0x1
80000154: 0011e193 ori gp,gp,1
80000158: 00000073 ecall
8000015c <pass>:
8000015c: 0ff0000f fence
80000160: 00100193 li gp,1
80000164: 00000073 ecall
80000168: c0001073 unimp
8000016c: 0000 unimp
8000016e: 0000 unimp
80000170: 0000 unimp
80000172: 0000 unimp
80000174: 0000 unimp
80000176: 0000 unimp
80000178: 0000 unimp
8000017a: 0000 unimp
8000017c: 0000 unimp
8000017e: 0000 unimp
80000180: 0000 unimp
80000182: 0000 unimp

BIN
Tests/isa/rv32mi-p-sbreak Normal file

Binary file not shown.

View File

@@ -0,0 +1,130 @@
rv32mi-p-sbreak: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 00000f17 auipc t5,0x0
80000024: 118f0f13 addi t5,t5,280 # 80000138 <mtvec_handler>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00002537 lui a0,0x2
800000ec: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
800000f0: 30052073 csrs mstatus,a0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <reset_vector+0xbc>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108: 00200193 li gp,2
8000010c <do_break>:
8000010c: 00100073 ebreak
80000110: 0080006f j 80000118 <fail>
80000114: 00301c63 bne zero,gp,8000012c <pass>
80000118 <fail>:
80000118: 0ff0000f fence
8000011c: 00018063 beqz gp,8000011c <fail+0x4>
80000120: 00119193 slli gp,gp,0x1
80000124: 0011e193 ori gp,gp,1
80000128: 00000073 ecall
8000012c <pass>:
8000012c: 0ff0000f fence
80000130: 00100193 li gp,1
80000134: 00000073 ecall
80000138 <mtvec_handler>:
80000138: 00300313 li t1,3
8000013c: 342022f3 csrr t0,mcause
80000140: fc629ce3 bne t0,t1,80000118 <fail>
80000144: 00000317 auipc t1,0x0
80000148: fc830313 addi t1,t1,-56 # 8000010c <do_break>
8000014c: 341022f3 csrr t0,mepc
80000150: fc6294e3 bne t0,t1,80000118 <fail>
80000154: fd9ff06f j 8000012c <pass>
80000158: c0001073 unimp
8000015c: 0000 unimp
8000015e: 0000 unimp
80000160: 0000 unimp
80000162: 0000 unimp
80000164: 0000 unimp
80000166: 0000 unimp
80000168: 0000 unimp
8000016a: 0000 unimp
8000016c: 0000 unimp
8000016e: 0000 unimp
80000170: 0000 unimp
80000172: 0000 unimp
80000174: 0000 unimp
80000176: 0000 unimp
80000178: 0000 unimp
8000017a: 0000 unimp
8000017c: 0000 unimp
8000017e: 0000 unimp
80000180: 0000 unimp
80000182: 0000 unimp

BIN
Tests/isa/rv32mi-p-scall Normal file

Binary file not shown.

View File

@@ -0,0 +1,147 @@
rv32mi-p-scall: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 00000f17 auipc t5,0x0
80000024: 158f0f13 addi t5,t5,344 # 80000178 <mtvec_handler>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00002537 lui a0,0x2
800000ec: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
800000f0: 30052073 csrs mstatus,a0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <reset_vector+0xbc>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108: 00200193 li gp,2
8000010c: 00800313 li t1,8
80000110: 000022b7 lui t0,0x2
80000114: 80028293 addi t0,t0,-2048 # 1800 <_start-0x7fffe800>
80000118: 3002b073 csrc mstatus,t0
8000011c: 30002373 csrr t1,mstatus
80000120: 0062f2b3 and t0,t0,t1
80000124: 00028463 beqz t0,8000012c <reset_vector+0xe0>
80000128: 00b00313 li t1,11
8000012c: 000022b7 lui t0,0x2
80000130: 80028293 addi t0,t0,-2048 # 1800 <_start-0x7fffe800>
80000134: 3002b073 csrc mstatus,t0
80000138: 00000297 auipc t0,0x0
8000013c: 01028293 addi t0,t0,16 # 80000148 <reset_vector+0xfc>
80000140: 34129073 csrw mepc,t0
80000144: 30200073 mret
80000148: 00100193 li gp,1
8000014c <do_scall>:
8000014c: 00000073 ecall
80000150: 0080006f j 80000158 <fail>
80000154: 00301c63 bne zero,gp,8000016c <pass>
80000158 <fail>:
80000158: 0ff0000f fence
8000015c: 00018063 beqz gp,8000015c <fail+0x4>
80000160: 00119193 slli gp,gp,0x1
80000164: 0011e193 ori gp,gp,1
80000168: 00000073 ecall
8000016c <pass>:
8000016c: 0ff0000f fence
80000170: 00100193 li gp,1
80000174: 00000073 ecall
80000178 <mtvec_handler>:
80000178: 342022f3 csrr t0,mcause
8000017c: fc629ee3 bne t0,t1,80000158 <fail>
80000180: 00000397 auipc t2,0x0
80000184: fcc38393 addi t2,t2,-52 # 8000014c <do_scall>
80000188: 341022f3 csrr t0,mepc
8000018c: fc7296e3 bne t0,t2,80000158 <fail>
80000190: fddff06f j 8000016c <pass>
80000194: c0001073 unimp
80000198: 0000 unimp
8000019a: 0000 unimp
8000019c: 0000 unimp
8000019e: 0000 unimp
800001a0: 0000 unimp
800001a2: 0000 unimp
800001a4: 0000 unimp
800001a6: 0000 unimp
800001a8: 0000 unimp
800001aa: 0000 unimp
800001ac: 0000 unimp
800001ae: 0000 unimp
800001b0: 0000 unimp
800001b2: 0000 unimp
800001b4: 0000 unimp
800001b6: 0000 unimp
800001b8: 0000 unimp
800001ba: 0000 unimp
800001bc: 0000 unimp
800001be: 0000 unimp
800001c0: 0000 unimp
800001c2: 0000 unimp

BIN
Tests/isa/rv32mi-p-shamt Normal file

Binary file not shown.

View File

@@ -0,0 +1,128 @@
rv32mi-p-shamt: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 00000f17 auipc t5,0x0
80000024: 130f0f13 addi t5,t5,304 # 80000150 <mtvec_handler>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00002537 lui a0,0x2
800000ec: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
800000f0: 30052073 csrs mstatus,a0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00100513 li a0,1
8000010c: 01051513 slli a0,a0,0x10
80000110: 00010eb7 lui t4,0x10
80000114: 00200193 li gp,2
80000118: 01d51c63 bne a0,t4,80000130 <fail>
8000011c <test_3>:
8000011c: 02051513 slli a0,a0,0x20
80000120: 00100e93 li t4,1
80000124: 00300193 li gp,3
80000128: 01d01463 bne zero,t4,80000130 <fail>
8000012c: 00301c63 bne zero,gp,80000144 <pass>
80000130 <fail>:
80000130: 0ff0000f fence
80000134: 00018063 beqz gp,80000134 <fail+0x4>
80000138: 00119193 slli gp,gp,0x1
8000013c: 0011e193 ori gp,gp,1
80000140: 00000073 ecall
80000144 <pass>:
80000144: 0ff0000f fence
80000148: 00100193 li gp,1
8000014c: 00000073 ecall
80000150 <mtvec_handler>:
80000150: 00200293 li t0,2
80000154: fc519ee3 bne gp,t0,80000130 <fail>
80000158: 342022f3 csrr t0,mcause
8000015c: 00200313 li t1,2
80000160: fc6298e3 bne t0,t1,80000130 <fail>
80000164: fe1ff06f j 80000144 <pass>
80000168: c0001073 unimp
8000016c: 0000 unimp
8000016e: 0000 unimp
80000170: 0000 unimp
80000172: 0000 unimp
80000174: 0000 unimp
80000176: 0000 unimp
80000178: 0000 unimp
8000017a: 0000 unimp
8000017c: 0000 unimp
8000017e: 0000 unimp
80000180: 0000 unimp
80000182: 0000 unimp

BIN
Tests/isa/rv32si-p-csr Normal file

Binary file not shown.

228
Tests/isa/rv32si-p-csr.dump Normal file
View File

@@ -0,0 +1,228 @@
rv32si-p-csr: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 00000297 auipc t0,0x0
800000c4: 14c28293 addi t0,t0,332 # 8000020c <stvec_handler>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00001537 lui a0,0x1
800000ec: 80050513 addi a0,a0,-2048 # 800 <_start-0x7ffff800>
800000f0: 30052073 csrs mstatus,a0
800000f4: 02200513 li a0,34
800000f8: 30352073 csrs mideleg,a0
800000fc: 00000297 auipc t0,0x0
80000100: 01428293 addi t0,t0,20 # 80000110 <reset_vector+0xc4>
80000104: 34129073 csrw mepc,t0
80000108: f1402573 csrr a0,mhartid
8000010c: 30200073 mret
80000110: 1401d073 csrwi sscratch,3
80000114 <test_2>:
80000114: 14002573 csrr a0,sscratch
80000118: 00300e93 li t4,3
8000011c: 00200193 li gp,2
80000120: 0dd51663 bne a0,t4,800001ec <fail>
80000124 <test_3>:
80000124: 1400f5f3 csrrci a1,sscratch,1
80000128: 00300e93 li t4,3
8000012c: 00300193 li gp,3
80000130: 0bd59e63 bne a1,t4,800001ec <fail>
80000134 <test_4>:
80000134: 14026673 csrrsi a2,sscratch,4
80000138: 00200e93 li t4,2
8000013c: 00400193 li gp,4
80000140: 0bd61663 bne a2,t4,800001ec <fail>
80000144 <test_5>:
80000144: 140156f3 csrrwi a3,sscratch,2
80000148: 00600e93 li t4,6
8000014c: 00500193 li gp,5
80000150: 09d69e63 bne a3,t4,800001ec <fail>
80000154 <test_6>:
80000154: 0bad2537 lui a0,0xbad2
80000158: dea50513 addi a0,a0,-534 # bad1dea <_start-0x7452e216>
8000015c: 140515f3 csrrw a1,sscratch,a0
80000160: 00200e93 li t4,2
80000164: 00600193 li gp,6
80000168: 09d59263 bne a1,t4,800001ec <fail>
8000016c <test_7>:
8000016c: 00002537 lui a0,0x2
80000170: dea50513 addi a0,a0,-534 # 1dea <_start-0x7fffe216>
80000174: 14053573 csrrc a0,sscratch,a0
80000178: 0bad2eb7 lui t4,0xbad2
8000017c: deae8e93 addi t4,t4,-534 # bad1dea <_start-0x7452e216>
80000180: 00700193 li gp,7
80000184: 07d51463 bne a0,t4,800001ec <fail>
80000188 <test_8>:
80000188: 0000c537 lui a0,0xc
8000018c: eef50513 addi a0,a0,-273 # beef <_start-0x7fff4111>
80000190: 14052573 csrrs a0,sscratch,a0
80000194: 0bad0eb7 lui t4,0xbad0
80000198: 00800193 li gp,8
8000019c: 05d51863 bne a0,t4,800001ec <fail>
800001a0 <test_9>:
800001a0: 14002573 csrr a0,sscratch
800001a4: 0badceb7 lui t4,0xbadc
800001a8: eefe8e93 addi t4,t4,-273 # badbeef <_start-0x74524111>
800001ac: 00900193 li gp,9
800001b0: 03d51e63 bne a0,t4,800001ec <fail>
800001b4: 10000293 li t0,256
800001b8: 1002b073 csrc sstatus,t0
800001bc: 00000297 auipc t0,0x0
800001c0: 01028293 addi t0,t0,16 # 800001cc <test_12>
800001c4: 14129073 csrw sepc,t0
800001c8: 10200073 sret
800001cc <test_12>:
800001cc: 00000013 nop
800001d0: 00000e93 li t4,0
800001d4: 00c00193 li gp,12
800001d8: 01d01a63 bne zero,t4,800001ec <fail>
800001dc <finish>:
800001dc: 0ff0000f fence
800001e0: 00100193 li gp,1
800001e4: 00000073 ecall
800001e8: 00301c63 bne zero,gp,80000200 <pass>
800001ec <fail>:
800001ec: 0ff0000f fence
800001f0: 00018063 beqz gp,800001f0 <fail+0x4>
800001f4: 00119193 slli gp,gp,0x1
800001f8: 0011e193 ori gp,gp,1
800001fc: 00000073 ecall
80000200 <pass>:
80000200: 0ff0000f fence
80000204: 00100193 li gp,1
80000208: 00000073 ecall
8000020c <stvec_handler>:
8000020c: 00900293 li t0,9
80000210: 0051e663 bltu gp,t0,8000021c <stvec_handler+0x10>
80000214: 00b00293 li t0,11
80000218: 0032fe63 bleu gp,t0,80000234 <privileged>
8000021c: 142022f3 csrr t0,scause
80000220: 00800313 li t1,8
80000224: fc6294e3 bne t0,t1,800001ec <fail>
80000228: 0ff0000f fence
8000022c: 00100193 li gp,1
80000230: 00000073 ecall
80000234 <privileged>:
80000234: 142022f3 csrr t0,scause
80000238: 00200313 li t1,2
8000023c: fa6298e3 bne t0,t1,800001ec <fail>
80000240: 141022f3 csrr t0,sepc
80000244: 00428293 addi t0,t0,4
80000248: 14129073 csrw sepc,t0
8000024c: 10200073 sret
80000250: c0001073 unimp
80000254: 0000 unimp
80000256: 0000 unimp
80000258: 0000 unimp
8000025a: 0000 unimp
8000025c: 0000 unimp
8000025e: 0000 unimp
80000260: 0000 unimp
80000262: 0000 unimp
80000264: 0000 unimp
80000266: 0000 unimp
80000268: 0000 unimp
8000026a: 0000 unimp
8000026c: 0000 unimp
8000026e: 0000 unimp
80000270: 0000 unimp
80000272: 0000 unimp
80000274: 0000 unimp
80000276: 0000 unimp
80000278: 0000 unimp
8000027a: 0000 unimp
8000027c: 0000 unimp
8000027e: 0000 unimp
80000280: 0000 unimp
80000282: 0000 unimp
Disassembly of section .data:
80002000 <begin_signature>:
80002000: 0001 nop
80002002: 0000 unimp
80002004: 0000 unimp
80002006: 0000 unimp
80002008: 0000 unimp
8000200a: 0000 unimp
8000200c: 0000 unimp
8000200e: 0000 unimp

BIN
Tests/isa/rv32si-p-dirty Normal file

Binary file not shown.

View File

@@ -0,0 +1,203 @@
rv32si-p-dirty: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 00000f17 auipc t5,0x0
80000024: 1ccf0f13 addi t5,t5,460 # 800001ec <mtvec_handler>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00002537 lui a0,0x2
800000ec: 80050513 addi a0,a0,-2048 # 1800 <_start-0x7fffe800>
800000f0: 30052073 csrs mstatus,a0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <reset_vector+0xbc>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108: 80000537 lui a0,0x80000
8000010c: 00002597 auipc a1,0x2
80000110: ef458593 addi a1,a1,-268 # 80002000 <begin_signature>
80000114: 00c5d593 srli a1,a1,0xc
80000118: 00a5e5b3 or a1,a1,a0
8000011c: 18059073 csrw satp,a1
80000120: 12000073 sfence.vma
80000124: 000215b7 lui a1,0x21
80000128: 80058593 addi a1,a1,-2048 # 20800 <_start-0x7ffdf800>
8000012c: 3005a073 csrs mstatus,a1
80000130: 00200193 li gp,2
80000134: 00100393 li t2,1
80000138: 80002517 auipc a0,0x80002
8000013c: ec752823 sw t2,-304(a0) # 2008 <_start-0x7fffdff8>
80000140: 00300193 li gp,3
80000144: 000415b7 lui a1,0x41
80000148: 80058593 addi a1,a1,-2048 # 40800 <_start-0x7ffbf800>
8000014c: 3005a073 csrs mstatus,a1
80000150: 80002297 auipc t0,0x80002
80000154: eb82a283 lw t0,-328(t0) # 2008 <_start-0x7fffdff8>
80000158: 10029063 bnez t0,80000258 <die>
8000015c: 80002517 auipc a0,0x80002
80000160: ea752623 sw t2,-340(a0) # 2008 <_start-0x7fffdff8>
80000164: 80002297 auipc t0,0x80002
80000168: ea42a283 lw t0,-348(t0) # 2008 <_start-0x7fffdff8>
8000016c: 0e729663 bne t0,t2,80000258 <die>
80000170: 000202b7 lui t0,0x20
80000174: 3002b073 csrc mstatus,t0
80000178: 00002297 auipc t0,0x2
8000017c: e882a283 lw t0,-376(t0) # 80002000 <begin_signature>
80000180: 0c000513 li a0,192
80000184: 00a2f2b3 and t0,t0,a0
80000188: 0ca29863 bne t0,a0,80000258 <die>
8000018c: 000202b7 lui t0,0x20
80000190: 3002a073 csrs mstatus,t0
80000194: 00400193 li gp,4
80000198: 80002517 auipc a0,0x80002
8000019c: e6852503 lw a0,-408(a0) # 2000 <_start-0x7fffe000>
800001a0: 40056513 ori a0,a0,1024
800001a4: 80002297 auipc t0,0x80002
800001a8: e4a2ae23 sw a0,-420(t0) # 2000 <_start-0x7fffe000>
800001ac: 12000073 sfence.vma
800001b0: 80002297 auipc t0,0x80002
800001b4: e4a2a823 sw a0,-432(t0) # 2000 <_start-0x7fffe000>
800001b8: 0a00006f j 80000258 <die>
800001bc: 0ff0000f fence
800001c0: 00100193 li gp,1
800001c4: 00000073 ecall
800001c8: 00301c63 bne zero,gp,800001e0 <pass>
800001cc <fail>:
800001cc: 0ff0000f fence
800001d0: 00018063 beqz gp,800001d0 <fail+0x4>
800001d4: 00119193 slli gp,gp,0x1
800001d8: 0011e193 ori gp,gp,1
800001dc: 00000073 ecall
800001e0 <pass>:
800001e0: 0ff0000f fence
800001e4: 00100193 li gp,1
800001e8: 00000073 ecall
800001ec <mtvec_handler>:
800001ec: 342022f3 csrr t0,mcause
800001f0: ff128293 addi t0,t0,-15
800001f4: 06029263 bnez t0,80000258 <die>
800001f8: 00200313 li t1,2
800001fc: 02619263 bne gp,t1,80000220 <skip+0x10>
80000200: 00002297 auipc t0,0x2
80000204: e002a283 lw t0,-512(t0) # 80002000 <begin_signature>
80000208: 0802f313 andi t1,t0,128
8000020c: 04031663 bnez t1,80000258 <die>
80000210 <skip>:
80000210: 341022f3 csrr t0,mepc
80000214: 00428293 addi t0,t0,4
80000218: 34129073 csrw mepc,t0
8000021c: 30200073 mret
80000220: 00300313 li t1,3
80000224: 02619463 bne gp,t1,8000024c <skip+0x3c>
80000228: 00002297 auipc t0,0x2
8000022c: dd82a283 lw t0,-552(t0) # 80002000 <begin_signature>
80000230: 0802f313 andi t1,t0,128
80000234: 02031263 bnez t1,80000258 <die>
80000238: 0802e293 ori t0,t0,128
8000023c: 00002317 auipc t1,0x2
80000240: dc532223 sw t0,-572(t1) # 80002000 <begin_signature>
80000244: 12000073 sfence.vma
80000248: 30200073 mret
8000024c: 00400313 li t1,4
80000250: 00619463 bne gp,t1,80000258 <die>
80000254: f8dff06f j 800001e0 <pass>
80000258 <die>:
80000258: 0ff0000f fence
8000025c: 00018063 beqz gp,8000025c <die+0x4>
80000260: 00119193 slli gp,gp,0x1
80000264: 0011e193 ori gp,gp,1
80000268: 00000073 ecall
8000026c: c0001073 unimp
80000270: 0000 unimp
80000272: 0000 unimp
80000274: 0000 unimp
80000276: 0000 unimp
80000278: 0000 unimp
8000027a: 0000 unimp
8000027c: 0000 unimp
8000027e: 0000 unimp
80000280: 0000 unimp
80000282: 0000 unimp
Disassembly of section .data:
80002000 <begin_signature>:
80002000: 005f 2000 0000 0x2000005f
80002006: 0000 unimp
80002008 <dummy>:
80002008: 0000 unimp
8000200a: 0000 unimp
8000200c: 0000 unimp
8000200e: 0000 unimp

BIN
Tests/isa/rv32si-p-ma_fetch Normal file

Binary file not shown.

View File

@@ -0,0 +1,175 @@
rv32si-p-ma_fetch: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 00000297 auipc t0,0x0
800000c4: 11428293 addi t0,t0,276 # 800001d4 <stvec_handler>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00001537 lui a0,0x1
800000ec: 80050513 addi a0,a0,-2048 # 800 <_start-0x7ffff800>
800000f0: 30052073 csrs mstatus,a0
800000f4: 02200513 li a0,34
800000f8: 30352073 csrs mideleg,a0
800000fc: 00000297 auipc t0,0x0
80000100: 01428293 addi t0,t0,20 # 80000110 <reset_vector+0xc4>
80000104: 34129073 csrw mepc,t0
80000108: f1402573 csrr a0,mhartid
8000010c: 30200073 mret
80000110: 00200193 li gp,2
80000114: 00000313 li t1,0
80000118: 00000297 auipc t0,0x0
8000011c: 00c28293 addi t0,t0,12 # 80000124 <reset_vector+0xd8>
80000120: 00228367 jalr t1,2(t0)
80000124: a011 j 80000128 <reset_vector+0xdc>
80000126: a019 j 8000012c <reset_vector+0xe0>
80000128: 08c0006f j 800001b4 <fail>
8000012c: 00300193 li gp,3
80000130: 00000297 auipc t0,0x0
80000134: 00c28293 addi t0,t0,12 # 8000013c <reset_vector+0xf0>
80000138: 00128367 jalr t1,1(t0)
8000013c: 0080006f j 80000144 <reset_vector+0xf8>
80000140: 0740006f j 800001b4 <fail>
80000144: 00400193 li gp,4
80000148: 00000313 li t1,0
8000014c: 00000297 auipc t0,0x0
80000150: 00c28293 addi t0,t0,12 # 80000158 <reset_vector+0x10c>
80000154: 00328367 jalr t1,3(t0)
80000158: a011 j 8000015c <reset_vector+0x110>
8000015a: a019 j 80000160 <reset_vector+0x114>
8000015c: 0580006f j 800001b4 <fail>
80000160: 00500193 li gp,5
80000164: 00000313 li t1,0
80000168: 00000297 auipc t0,0x0
8000016c: 00c28293 addi t0,t0,12 # 80000174 <reset_vector+0x128>
80000170: 0060036f jal t1,80000176 <reset_vector+0x12a>
80000174: a011 j 80000178 <reset_vector+0x12c>
80000176: a019 j 8000017c <reset_vector+0x130>
80000178: 03c0006f j 800001b4 <fail>
8000017c: 00600193 li gp,6
80000180: 00000313 li t1,0
80000184: 00000297 auipc t0,0x0
80000188: 00c28293 addi t0,t0,12 # 80000190 <reset_vector+0x144>
8000018c: 00000363 beqz zero,80000192 <reset_vector+0x146>
80000190: a011 j 80000194 <reset_vector+0x148>
80000192: a019 j 80000198 <reset_vector+0x14c>
80000194: 0200006f j 800001b4 <fail>
80000198: 00700193 li gp,7
8000019c: 00001563 bnez zero,800001a6 <reset_vector+0x15a>
800001a0: 00c0006f j 800001ac <reset_vector+0x160>
800001a4: a009 j 800001a6 <reset_vector+0x15a>
800001a6: a009 j 800001a8 <reset_vector+0x15c>
800001a8: 00c0006f j 800001b4 <fail>
800001ac: 01c0006f j 800001c8 <pass>
800001b0: 00301c63 bne zero,gp,800001c8 <pass>
800001b4 <fail>:
800001b4: 0ff0000f fence
800001b8: 00018063 beqz gp,800001b8 <fail+0x4>
800001bc: 00119193 slli gp,gp,0x1
800001c0: 0011e193 ori gp,gp,1
800001c4: 00000073 ecall
800001c8 <pass>:
800001c8: 0ff0000f fence
800001cc: 00100193 li gp,1
800001d0: 00000073 ecall
800001d4 <stvec_handler>:
800001d4: 00200513 li a0,2
800001d8: 02a18063 beq gp,a0,800001f8 <stvec_handler+0x24>
800001dc: 00400513 li a0,4
800001e0: 00a18c63 beq gp,a0,800001f8 <stvec_handler+0x24>
800001e4: 00500513 li a0,5
800001e8: 00a18863 beq gp,a0,800001f8 <stvec_handler+0x24>
800001ec: 00600513 li a0,6
800001f0: 00a18463 beq gp,a0,800001f8 <stvec_handler+0x24>
800001f4: fc1ff06f j 800001b4 <fail>
800001f8: fa031ee3 bnez t1,800001b4 <fail>
800001fc: 00000593 li a1,0
80000200: 14202573 csrr a0,scause
80000204: fab518e3 bne a0,a1,800001b4 <fail>
80000208: 141025f3 csrr a1,sepc
8000020c: 00458593 addi a1,a1,4
80000210: fab292e3 bne t0,a1,800001b4 <fail>
80000214: 14302573 csrr a0,sbadaddr
80000218: 00050663 beqz a0,80000224 <stvec_handler+0x50>
8000021c: ffe50513 addi a0,a0,-2
80000220: f8551ae3 bne a0,t0,800001b4 <fail>
80000224: 00c58593 addi a1,a1,12
80000228: 14159073 csrw sepc,a1
8000022c: 10200073 sret
80000230: c0001073 unimp
80000234: 0000 unimp
80000236: 0000 unimp
80000238: 0000 unimp
8000023a: 0000 unimp
8000023c: 0000 unimp
8000023e: 0000 unimp
80000240: 0000 unimp
80000242: 0000 unimp

BIN
Tests/isa/rv32si-p-sbreak Normal file

Binary file not shown.

View File

@@ -0,0 +1,128 @@
rv32si-p-sbreak: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 00000297 auipc t0,0x0
800000c4: 08028293 addi t0,t0,128 # 80000140 <stvec_handler>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00001537 lui a0,0x1
800000ec: 80050513 addi a0,a0,-2048 # 800 <_start-0x7ffff800>
800000f0: 30052073 csrs mstatus,a0
800000f4: 02200513 li a0,34
800000f8: 30352073 csrs mideleg,a0
800000fc: 00000297 auipc t0,0x0
80000100: 01428293 addi t0,t0,20 # 80000110 <reset_vector+0xc4>
80000104: 34129073 csrw mepc,t0
80000108: f1402573 csrr a0,mhartid
8000010c: 30200073 mret
80000110: 00200193 li gp,2
80000114 <do_break>:
80000114: 00100073 ebreak
80000118: 0080006f j 80000120 <fail>
8000011c: 00301c63 bne zero,gp,80000134 <pass>
80000120 <fail>:
80000120: 0ff0000f fence
80000124: 00018063 beqz gp,80000124 <fail+0x4>
80000128: 00119193 slli gp,gp,0x1
8000012c: 0011e193 ori gp,gp,1
80000130: 00000073 ecall
80000134 <pass>:
80000134: 0ff0000f fence
80000138: 00100193 li gp,1
8000013c: 00000073 ecall
80000140 <stvec_handler>:
80000140: 00300313 li t1,3
80000144: 142022f3 csrr t0,scause
80000148: fc629ce3 bne t0,t1,80000120 <fail>
8000014c: 00000317 auipc t1,0x0
80000150: fc830313 addi t1,t1,-56 # 80000114 <do_break>
80000154: 141022f3 csrr t0,sepc
80000158: fc6294e3 bne t0,t1,80000120 <fail>
8000015c: fd9ff06f j 80000134 <pass>
80000160: c0001073 unimp
80000164: 0000 unimp
80000166: 0000 unimp
80000168: 0000 unimp
8000016a: 0000 unimp
8000016c: 0000 unimp
8000016e: 0000 unimp
80000170: 0000 unimp
80000172: 0000 unimp
80000174: 0000 unimp
80000176: 0000 unimp
80000178: 0000 unimp
8000017a: 0000 unimp
8000017c: 0000 unimp
8000017e: 0000 unimp
80000180: 0000 unimp
80000182: 0000 unimp

BIN
Tests/isa/rv32si-p-scall Normal file

Binary file not shown.

View File

@@ -0,0 +1,121 @@
rv32si-p-scall: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 00000297 auipc t0,0x0
800000c4: 0a028293 addi t0,t0,160 # 80000160 <stvec_handler>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00001537 lui a0,0x1
800000ec: 80050513 addi a0,a0,-2048 # 800 <_start-0x7ffff800>
800000f0: 30052073 csrs mstatus,a0
800000f4: 02200513 li a0,34
800000f8: 30352073 csrs mideleg,a0
800000fc: 00000297 auipc t0,0x0
80000100: 01428293 addi t0,t0,20 # 80000110 <reset_vector+0xc4>
80000104: 34129073 csrw mepc,t0
80000108: f1402573 csrr a0,mhartid
8000010c: 30200073 mret
80000110: 00200193 li gp,2
80000114: 00800313 li t1,8
80000118: 10000293 li t0,256
8000011c: 1002b073 csrc sstatus,t0
80000120: 00000297 auipc t0,0x0
80000124: 01028293 addi t0,t0,16 # 80000130 <reset_vector+0xe4>
80000128: 14129073 csrw sepc,t0
8000012c: 10200073 sret
80000130: 00100193 li gp,1
80000134 <do_scall>:
80000134: 00000073 ecall
80000138: 0080006f j 80000140 <fail>
8000013c: 00301c63 bne zero,gp,80000154 <pass>
80000140 <fail>:
80000140: 0ff0000f fence
80000144: 00018063 beqz gp,80000144 <fail+0x4>
80000148: 00119193 slli gp,gp,0x1
8000014c: 0011e193 ori gp,gp,1
80000150: 00000073 ecall
80000154 <pass>:
80000154: 0ff0000f fence
80000158: 00100193 li gp,1
8000015c: 00000073 ecall
80000160 <stvec_handler>:
80000160: 142022f3 csrr t0,scause
80000164: fc629ee3 bne t0,t1,80000140 <fail>
80000168: 00000397 auipc t2,0x0
8000016c: fcc38393 addi t2,t2,-52 # 80000134 <do_scall>
80000170: 141022f3 csrr t0,sepc
80000174: fc7296e3 bne t0,t2,80000140 <fail>
80000178: fddff06f j 80000154 <pass>
8000017c: c0001073 unimp
80000180: 0000 unimp
80000182: 0000 unimp

BIN
Tests/isa/rv32si-p-wfi Normal file

Binary file not shown.

128
Tests/isa/rv32si-p-wfi.dump Normal file
View File

@@ -0,0 +1,128 @@
rv32si-p-wfi: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00001537 lui a0,0x1
800000ec: 80050513 addi a0,a0,-2048 # 800 <_start-0x7ffff800>
800000f0: 30052073 csrs mstatus,a0
800000f4: 02200513 li a0,34
800000f8: 30352073 csrs mideleg,a0
800000fc: 00000297 auipc t0,0x0
80000100: 01428293 addi t0,t0,20 # 80000110 <reset_vector+0xc4>
80000104: 34129073 csrw mepc,t0
80000108: f1402573 csrr a0,mhartid
8000010c: 30200073 mret
80000110: 10017073 csrci sstatus,2
80000114: 10416073 csrsi sie,2
80000118: 14416073 csrsi sip,2
8000011c: 10500073 wfi
80000120: 0ff0000f fence
80000124: 00100193 li gp,1
80000128: 00000073 ecall
8000012c: 00301c63 bne zero,gp,80000144 <pass>
80000130 <fail>:
80000130: 0ff0000f fence
80000134: 00018063 beqz gp,80000134 <fail+0x4>
80000138: 00119193 slli gp,gp,0x1
8000013c: 0011e193 ori gp,gp,1
80000140: 00000073 ecall
80000144 <pass>:
80000144: 0ff0000f fence
80000148: 00100193 li gp,1
8000014c: 00000073 ecall
80000150: c0001073 unimp
80000154: 0000 unimp
80000156: 0000 unimp
80000158: 0000 unimp
8000015a: 0000 unimp
8000015c: 0000 unimp
8000015e: 0000 unimp
80000160: 0000 unimp
80000162: 0000 unimp
80000164: 0000 unimp
80000166: 0000 unimp
80000168: 0000 unimp
8000016a: 0000 unimp
8000016c: 0000 unimp
8000016e: 0000 unimp
80000170: 0000 unimp
80000172: 0000 unimp
80000174: 0000 unimp
80000176: 0000 unimp
80000178: 0000 unimp
8000017a: 0000 unimp
8000017c: 0000 unimp
8000017e: 0000 unimp
80000180: 0000 unimp
80000182: 0000 unimp

BIN
Tests/isa/rv32ua-p-amoadd_w Normal file

Binary file not shown.

View File

@@ -0,0 +1,124 @@
rv32ua-p-amoadd_w: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00000297 auipc t0,0x0
800000ec: 01428293 addi t0,t0,20 # 800000fc <test_2>
800000f0: 34129073 csrw mepc,t0
800000f4: f1402573 csrr a0,mhartid
800000f8: 30200073 mret
800000fc <test_2>:
800000fc: 80000537 lui a0,0x80000
80000100: 80000593 li a1,-2048
80000104: 00002697 auipc a3,0x2
80000108: efc68693 addi a3,a3,-260 # 80002000 <begin_signature>
8000010c: 00a6a023 sw a0,0(a3)
80000110: 00b6a72f amoadd.w a4,a1,(a3)
80000114: 80000eb7 lui t4,0x80000
80000118: 00200193 li gp,2
8000011c: 05d71263 bne a4,t4,80000160 <fail>
80000120 <test_3>:
80000120: 0006a783 lw a5,0(a3)
80000124: 80000eb7 lui t4,0x80000
80000128: 800e8e93 addi t4,t4,-2048 # 7ffff800 <_end+0xffffd7f8>
8000012c: 00300193 li gp,3
80000130: 03d79863 bne a5,t4,80000160 <fail>
80000134 <test_4>:
80000134: 800005b7 lui a1,0x80000
80000138: 00b6a72f amoadd.w a4,a1,(a3)
8000013c: 80000eb7 lui t4,0x80000
80000140: 800e8e93 addi t4,t4,-2048 # 7ffff800 <_end+0xffffd7f8>
80000144: 00400193 li gp,4
80000148: 01d71c63 bne a4,t4,80000160 <fail>
8000014c <test_5>:
8000014c: 0006a783 lw a5,0(a3)
80000150: 80000e93 li t4,-2048
80000154: 00500193 li gp,5
80000158: 01d79463 bne a5,t4,80000160 <fail>
8000015c: 00301c63 bne zero,gp,80000174 <pass>
80000160 <fail>:
80000160: 0ff0000f fence
80000164: 00018063 beqz gp,80000164 <fail+0x4>
80000168: 00119193 slli gp,gp,0x1
8000016c: 0011e193 ori gp,gp,1
80000170: 00000073 ecall
80000174 <pass>:
80000174: 0ff0000f fence
80000178: 00100193 li gp,1
8000017c: 00000073 ecall
80000180: c0001073 unimp

BIN
Tests/isa/rv32ua-p-amoand_w Normal file

Binary file not shown.

View File

@@ -0,0 +1,126 @@
rv32ua-p-amoand_w: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00000297 auipc t0,0x0
800000ec: 01428293 addi t0,t0,20 # 800000fc <test_2>
800000f0: 34129073 csrw mepc,t0
800000f4: f1402573 csrr a0,mhartid
800000f8: 30200073 mret
800000fc <test_2>:
800000fc: 80000537 lui a0,0x80000
80000100: 80000593 li a1,-2048
80000104: 00002697 auipc a3,0x2
80000108: efc68693 addi a3,a3,-260 # 80002000 <begin_signature>
8000010c: 00a6a023 sw a0,0(a3)
80000110: 60b6a72f amoand.w a4,a1,(a3)
80000114: 80000eb7 lui t4,0x80000
80000118: 00200193 li gp,2
8000011c: 03d71e63 bne a4,t4,80000158 <fail>
80000120 <test_3>:
80000120: 0006a783 lw a5,0(a3)
80000124: 80000eb7 lui t4,0x80000
80000128: 00300193 li gp,3
8000012c: 03d79663 bne a5,t4,80000158 <fail>
80000130 <test_4>:
80000130: 800005b7 lui a1,0x80000
80000134: 60b6a72f amoand.w a4,a1,(a3)
80000138: 80000eb7 lui t4,0x80000
8000013c: 00400193 li gp,4
80000140: 01d71c63 bne a4,t4,80000158 <fail>
80000144 <test_5>:
80000144: 0006a783 lw a5,0(a3)
80000148: 80000eb7 lui t4,0x80000
8000014c: 00500193 li gp,5
80000150: 01d79463 bne a5,t4,80000158 <fail>
80000154: 00301c63 bne zero,gp,8000016c <pass>
80000158 <fail>:
80000158: 0ff0000f fence
8000015c: 00018063 beqz gp,8000015c <fail+0x4>
80000160: 00119193 slli gp,gp,0x1
80000164: 0011e193 ori gp,gp,1
80000168: 00000073 ecall
8000016c <pass>:
8000016c: 0ff0000f fence
80000170: 00100193 li gp,1
80000174: 00000073 ecall
80000178: c0001073 unimp
8000017c: 0000 unimp
8000017e: 0000 unimp
80000180: 0000 unimp
80000182: 0000 unimp

BIN
Tests/isa/rv32ua-p-amomax_w Normal file

Binary file not shown.

View File

@@ -0,0 +1,125 @@
rv32ua-p-amomax_w: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00000297 auipc t0,0x0
800000ec: 01428293 addi t0,t0,20 # 800000fc <test_2>
800000f0: 34129073 csrw mepc,t0
800000f4: f1402573 csrr a0,mhartid
800000f8: 30200073 mret
800000fc <test_2>:
800000fc: 80000537 lui a0,0x80000
80000100: 80000593 li a1,-2048
80000104: 00002697 auipc a3,0x2
80000108: efc68693 addi a3,a3,-260 # 80002000 <begin_signature>
8000010c: 00a6a023 sw a0,0(a3)
80000110: a0b6a72f amomax.w a4,a1,(a3)
80000114: 80000eb7 lui t4,0x80000
80000118: 00200193 li gp,2
8000011c: 05d71063 bne a4,t4,8000015c <fail>
80000120 <test_3>:
80000120: 0006a783 lw a5,0(a3)
80000124: 80000e93 li t4,-2048
80000128: 00300193 li gp,3
8000012c: 03d79863 bne a5,t4,8000015c <fail>
80000130 <test_4>:
80000130: 00100593 li a1,1
80000134: 0006a023 sw zero,0(a3)
80000138: a0b6a72f amomax.w a4,a1,(a3)
8000013c: 00000e93 li t4,0
80000140: 00400193 li gp,4
80000144: 01d71c63 bne a4,t4,8000015c <fail>
80000148 <test_5>:
80000148: 0006a783 lw a5,0(a3)
8000014c: 00100e93 li t4,1
80000150: 00500193 li gp,5
80000154: 01d79463 bne a5,t4,8000015c <fail>
80000158: 00301c63 bne zero,gp,80000170 <pass>
8000015c <fail>:
8000015c: 0ff0000f fence
80000160: 00018063 beqz gp,80000160 <fail+0x4>
80000164: 00119193 slli gp,gp,0x1
80000168: 0011e193 ori gp,gp,1
8000016c: 00000073 ecall
80000170 <pass>:
80000170: 0ff0000f fence
80000174: 00100193 li gp,1
80000178: 00000073 ecall
8000017c: c0001073 unimp
80000180: 0000 unimp
80000182: 0000 unimp

Binary file not shown.

View File

@@ -0,0 +1,125 @@
rv32ua-p-amomaxu_w: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00000297 auipc t0,0x0
800000ec: 01428293 addi t0,t0,20 # 800000fc <test_2>
800000f0: 34129073 csrw mepc,t0
800000f4: f1402573 csrr a0,mhartid
800000f8: 30200073 mret
800000fc <test_2>:
800000fc: 80000537 lui a0,0x80000
80000100: 80000593 li a1,-2048
80000104: 00002697 auipc a3,0x2
80000108: efc68693 addi a3,a3,-260 # 80002000 <begin_signature>
8000010c: 00a6a023 sw a0,0(a3)
80000110: e0b6a72f amomaxu.w a4,a1,(a3)
80000114: 80000eb7 lui t4,0x80000
80000118: 00200193 li gp,2
8000011c: 05d71063 bne a4,t4,8000015c <fail>
80000120 <test_3>:
80000120: 0006a783 lw a5,0(a3)
80000124: 80000e93 li t4,-2048
80000128: 00300193 li gp,3
8000012c: 03d79863 bne a5,t4,8000015c <fail>
80000130 <test_4>:
80000130: fff00593 li a1,-1
80000134: 0006a023 sw zero,0(a3)
80000138: e0b6a72f amomaxu.w a4,a1,(a3)
8000013c: 00000e93 li t4,0
80000140: 00400193 li gp,4
80000144: 01d71c63 bne a4,t4,8000015c <fail>
80000148 <test_5>:
80000148: 0006a783 lw a5,0(a3)
8000014c: fff00e93 li t4,-1
80000150: 00500193 li gp,5
80000154: 01d79463 bne a5,t4,8000015c <fail>
80000158: 00301c63 bne zero,gp,80000170 <pass>
8000015c <fail>:
8000015c: 0ff0000f fence
80000160: 00018063 beqz gp,80000160 <fail+0x4>
80000164: 00119193 slli gp,gp,0x1
80000168: 0011e193 ori gp,gp,1
8000016c: 00000073 ecall
80000170 <pass>:
80000170: 0ff0000f fence
80000174: 00100193 li gp,1
80000178: 00000073 ecall
8000017c: c0001073 unimp
80000180: 0000 unimp
80000182: 0000 unimp

BIN
Tests/isa/rv32ua-p-amomin_w Normal file

Binary file not shown.

View File

@@ -0,0 +1,125 @@
rv32ua-p-amomin_w: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00000297 auipc t0,0x0
800000ec: 01428293 addi t0,t0,20 # 800000fc <test_2>
800000f0: 34129073 csrw mepc,t0
800000f4: f1402573 csrr a0,mhartid
800000f8: 30200073 mret
800000fc <test_2>:
800000fc: 80000537 lui a0,0x80000
80000100: 80000593 li a1,-2048
80000104: 00002697 auipc a3,0x2
80000108: efc68693 addi a3,a3,-260 # 80002000 <begin_signature>
8000010c: 00a6a023 sw a0,0(a3)
80000110: 80b6a72f amomin.w a4,a1,(a3)
80000114: 80000eb7 lui t4,0x80000
80000118: 00200193 li gp,2
8000011c: 05d71063 bne a4,t4,8000015c <fail>
80000120 <test_3>:
80000120: 0006a783 lw a5,0(a3)
80000124: 80000eb7 lui t4,0x80000
80000128: 00300193 li gp,3
8000012c: 03d79863 bne a5,t4,8000015c <fail>
80000130 <test_4>:
80000130: fff00593 li a1,-1
80000134: 0006a023 sw zero,0(a3)
80000138: 80b6a72f amomin.w a4,a1,(a3)
8000013c: 00000e93 li t4,0
80000140: 00400193 li gp,4
80000144: 01d71c63 bne a4,t4,8000015c <fail>
80000148 <test_5>:
80000148: 0006a783 lw a5,0(a3)
8000014c: fff00e93 li t4,-1
80000150: 00500193 li gp,5
80000154: 01d79463 bne a5,t4,8000015c <fail>
80000158: 00301c63 bne zero,gp,80000170 <pass>
8000015c <fail>:
8000015c: 0ff0000f fence
80000160: 00018063 beqz gp,80000160 <fail+0x4>
80000164: 00119193 slli gp,gp,0x1
80000168: 0011e193 ori gp,gp,1
8000016c: 00000073 ecall
80000170 <pass>:
80000170: 0ff0000f fence
80000174: 00100193 li gp,1
80000178: 00000073 ecall
8000017c: c0001073 unimp
80000180: 0000 unimp
80000182: 0000 unimp

Binary file not shown.

View File

@@ -0,0 +1,125 @@
rv32ua-p-amominu_w: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00000297 auipc t0,0x0
800000ec: 01428293 addi t0,t0,20 # 800000fc <test_2>
800000f0: 34129073 csrw mepc,t0
800000f4: f1402573 csrr a0,mhartid
800000f8: 30200073 mret
800000fc <test_2>:
800000fc: 80000537 lui a0,0x80000
80000100: 80000593 li a1,-2048
80000104: 00002697 auipc a3,0x2
80000108: efc68693 addi a3,a3,-260 # 80002000 <begin_signature>
8000010c: 00a6a023 sw a0,0(a3)
80000110: c0b6a72f amominu.w a4,a1,(a3)
80000114: 80000eb7 lui t4,0x80000
80000118: 00200193 li gp,2
8000011c: 05d71063 bne a4,t4,8000015c <fail>
80000120 <test_3>:
80000120: 0006a783 lw a5,0(a3)
80000124: 80000eb7 lui t4,0x80000
80000128: 00300193 li gp,3
8000012c: 03d79863 bne a5,t4,8000015c <fail>
80000130 <test_4>:
80000130: fff00593 li a1,-1
80000134: 0006a023 sw zero,0(a3)
80000138: c0b6a72f amominu.w a4,a1,(a3)
8000013c: 00000e93 li t4,0
80000140: 00400193 li gp,4
80000144: 01d71c63 bne a4,t4,8000015c <fail>
80000148 <test_5>:
80000148: 0006a783 lw a5,0(a3)
8000014c: 00000e93 li t4,0
80000150: 00500193 li gp,5
80000154: 01d79463 bne a5,t4,8000015c <fail>
80000158: 00301c63 bne zero,gp,80000170 <pass>
8000015c <fail>:
8000015c: 0ff0000f fence
80000160: 00018063 beqz gp,80000160 <fail+0x4>
80000164: 00119193 slli gp,gp,0x1
80000168: 0011e193 ori gp,gp,1
8000016c: 00000073 ecall
80000170 <pass>:
80000170: 0ff0000f fence
80000174: 00100193 li gp,1
80000178: 00000073 ecall
8000017c: c0001073 unimp
80000180: 0000 unimp
80000182: 0000 unimp

BIN
Tests/isa/rv32ua-p-amoor_w Normal file

Binary file not shown.

View File

@@ -0,0 +1,126 @@
rv32ua-p-amoor_w: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00000297 auipc t0,0x0
800000ec: 01428293 addi t0,t0,20 # 800000fc <test_2>
800000f0: 34129073 csrw mepc,t0
800000f4: f1402573 csrr a0,mhartid
800000f8: 30200073 mret
800000fc <test_2>:
800000fc: 80000537 lui a0,0x80000
80000100: 80000593 li a1,-2048
80000104: 00002697 auipc a3,0x2
80000108: efc68693 addi a3,a3,-260 # 80002000 <begin_signature>
8000010c: 00a6a023 sw a0,0(a3)
80000110: 40b6a72f amoor.w a4,a1,(a3)
80000114: 80000eb7 lui t4,0x80000
80000118: 00200193 li gp,2
8000011c: 03d71e63 bne a4,t4,80000158 <fail>
80000120 <test_3>:
80000120: 0006a783 lw a5,0(a3)
80000124: 80000e93 li t4,-2048
80000128: 00300193 li gp,3
8000012c: 03d79663 bne a5,t4,80000158 <fail>
80000130 <test_4>:
80000130: 00100593 li a1,1
80000134: 40b6a72f amoor.w a4,a1,(a3)
80000138: 80000e93 li t4,-2048
8000013c: 00400193 li gp,4
80000140: 01d71c63 bne a4,t4,80000158 <fail>
80000144 <test_5>:
80000144: 0006a783 lw a5,0(a3)
80000148: 80100e93 li t4,-2047
8000014c: 00500193 li gp,5
80000150: 01d79463 bne a5,t4,80000158 <fail>
80000154: 00301c63 bne zero,gp,8000016c <pass>
80000158 <fail>:
80000158: 0ff0000f fence
8000015c: 00018063 beqz gp,8000015c <fail+0x4>
80000160: 00119193 slli gp,gp,0x1
80000164: 0011e193 ori gp,gp,1
80000168: 00000073 ecall
8000016c <pass>:
8000016c: 0ff0000f fence
80000170: 00100193 li gp,1
80000174: 00000073 ecall
80000178: c0001073 unimp
8000017c: 0000 unimp
8000017e: 0000 unimp
80000180: 0000 unimp
80000182: 0000 unimp

Binary file not shown.

View File

@@ -0,0 +1,126 @@
rv32ua-p-amoswap_w: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00000297 auipc t0,0x0
800000ec: 01428293 addi t0,t0,20 # 800000fc <test_2>
800000f0: 34129073 csrw mepc,t0
800000f4: f1402573 csrr a0,mhartid
800000f8: 30200073 mret
800000fc <test_2>:
800000fc: 80000537 lui a0,0x80000
80000100: 80000593 li a1,-2048
80000104: 00002697 auipc a3,0x2
80000108: efc68693 addi a3,a3,-260 # 80002000 <begin_signature>
8000010c: 00a6a023 sw a0,0(a3)
80000110: 08b6a72f amoswap.w a4,a1,(a3)
80000114: 80000eb7 lui t4,0x80000
80000118: 00200193 li gp,2
8000011c: 03d71e63 bne a4,t4,80000158 <fail>
80000120 <test_3>:
80000120: 0006a783 lw a5,0(a3)
80000124: 80000e93 li t4,-2048
80000128: 00300193 li gp,3
8000012c: 03d79663 bne a5,t4,80000158 <fail>
80000130 <test_4>:
80000130: 800005b7 lui a1,0x80000
80000134: 08b6a72f amoswap.w a4,a1,(a3)
80000138: 80000e93 li t4,-2048
8000013c: 00400193 li gp,4
80000140: 01d71c63 bne a4,t4,80000158 <fail>
80000144 <test_5>:
80000144: 0006a783 lw a5,0(a3)
80000148: 80000eb7 lui t4,0x80000
8000014c: 00500193 li gp,5
80000150: 01d79463 bne a5,t4,80000158 <fail>
80000154: 00301c63 bne zero,gp,8000016c <pass>
80000158 <fail>:
80000158: 0ff0000f fence
8000015c: 00018063 beqz gp,8000015c <fail+0x4>
80000160: 00119193 slli gp,gp,0x1
80000164: 0011e193 ori gp,gp,1
80000168: 00000073 ecall
8000016c <pass>:
8000016c: 0ff0000f fence
80000170: 00100193 li gp,1
80000174: 00000073 ecall
80000178: c0001073 unimp
8000017c: 0000 unimp
8000017e: 0000 unimp
80000180: 0000 unimp
80000182: 0000 unimp

BIN
Tests/isa/rv32ua-p-amoxor_w Normal file

Binary file not shown.

View File

@@ -0,0 +1,154 @@
rv32ua-p-amoxor_w: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00000297 auipc t0,0x0
800000ec: 01428293 addi t0,t0,20 # 800000fc <test_2>
800000f0: 34129073 csrw mepc,t0
800000f4: f1402573 csrr a0,mhartid
800000f8: 30200073 mret
800000fc <test_2>:
800000fc: 80000537 lui a0,0x80000
80000100: 80000593 li a1,-2048
80000104: 00002697 auipc a3,0x2
80000108: efc68693 addi a3,a3,-260 # 80002000 <begin_signature>
8000010c: 00a6a023 sw a0,0(a3)
80000110: 20b6a72f amoxor.w a4,a1,(a3)
80000114: 80000eb7 lui t4,0x80000
80000118: 00200193 li gp,2
8000011c: 05d71663 bne a4,t4,80000168 <fail>
80000120 <test_3>:
80000120: 0006a783 lw a5,0(a3)
80000124: 80000eb7 lui t4,0x80000
80000128: 800e8e93 addi t4,t4,-2048 # 7ffff800 <_end+0xffffd7f8>
8000012c: 00300193 li gp,3
80000130: 03d79c63 bne a5,t4,80000168 <fail>
80000134 <test_4>:
80000134: c00005b7 lui a1,0xc0000
80000138: 00158593 addi a1,a1,1 # c0000001 <_end+0x3fffdff9>
8000013c: 20b6a72f amoxor.w a4,a1,(a3)
80000140: 80000eb7 lui t4,0x80000
80000144: 800e8e93 addi t4,t4,-2048 # 7ffff800 <_end+0xffffd7f8>
80000148: 00400193 li gp,4
8000014c: 01d71e63 bne a4,t4,80000168 <fail>
80000150 <test_5>:
80000150: 0006a783 lw a5,0(a3)
80000154: c0000eb7 lui t4,0xc0000
80000158: 801e8e93 addi t4,t4,-2047 # bffff801 <_end+0x3fffd7f9>
8000015c: 00500193 li gp,5
80000160: 01d79463 bne a5,t4,80000168 <fail>
80000164: 00301c63 bne zero,gp,8000017c <pass>
80000168 <fail>:
80000168: 0ff0000f fence
8000016c: 00018063 beqz gp,8000016c <fail+0x4>
80000170: 00119193 slli gp,gp,0x1
80000174: 0011e193 ori gp,gp,1
80000178: 00000073 ecall
8000017c <pass>:
8000017c: 0ff0000f fence
80000180: 00100193 li gp,1
80000184: 00000073 ecall
80000188: c0001073 unimp
8000018c: 0000 unimp
8000018e: 0000 unimp
80000190: 0000 unimp
80000192: 0000 unimp
80000194: 0000 unimp
80000196: 0000 unimp
80000198: 0000 unimp
8000019a: 0000 unimp
8000019c: 0000 unimp
8000019e: 0000 unimp
800001a0: 0000 unimp
800001a2: 0000 unimp
800001a4: 0000 unimp
800001a6: 0000 unimp
800001a8: 0000 unimp
800001aa: 0000 unimp
800001ac: 0000 unimp
800001ae: 0000 unimp
800001b0: 0000 unimp
800001b2: 0000 unimp
800001b4: 0000 unimp
800001b6: 0000 unimp
800001b8: 0000 unimp
800001ba: 0000 unimp
800001bc: 0000 unimp
800001be: 0000 unimp
800001c0: 0000 unimp
800001c2: 0000 unimp

BIN
Tests/isa/rv32ua-p-lrsc Normal file

Binary file not shown.

View File

@@ -0,0 +1,178 @@
rv32ua-p-lrsc: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00000297 auipc t0,0x0
800000ec: 01428293 addi t0,t0,20 # 800000fc <reset_vector+0xb0>
800000f0: 34129073 csrw mepc,t0
800000f4: f1402573 csrr a0,mhartid
800000f8: 30200073 mret
800000fc: 00002517 auipc a0,0x2
80000100: f0450513 addi a0,a0,-252 # 80002000 <begin_signature>
80000104: 00100593 li a1,1
80000108: 00b5262f amoadd.w a2,a1,(a0)
8000010c: 00100693 li a3,1
80000110: fed67ee3 bleu a3,a2,8000010c <reset_vector+0xc0>
80000114: 00052583 lw a1,0(a0)
80000118: fed5eee3 bltu a1,a3,80000114 <reset_vector+0xc8>
8000011c <test_2>:
8000011c: 00002517 auipc a0,0x2
80000120: eec50513 addi a0,a0,-276 # 80002008 <foo>
80000124: 1805272f sc.w a4,zero,(a0)
80000128: 00100e93 li t4,1
8000012c: 00200193 li gp,2
80000130: 09d71863 bne a4,t4,800001c0 <fail>
80000134 <test_3>:
80000134: 00002517 auipc a0,0x2
80000138: ed450513 addi a0,a0,-300 # 80002008 <foo>
8000013c: 40050593 addi a1,a0,1024
80000140: 1005a5af lr.w a1,(a1)
80000144: 18b5272f sc.w a4,a1,(a0)
80000148: 00100e93 li t4,1
8000014c: 00300193 li gp,3
80000150: 07d71863 bne a4,t4,800001c0 <fail>
80000154: 00002517 auipc a0,0x2
80000158: eb450513 addi a0,a0,-332 # 80002008 <foo>
8000015c: 40000593 li a1,1024
80000160: 00160613 addi a2,a2,1
80000164: 1005272f lr.w a4,(a0)
80000168: 00c70733 add a4,a4,a2
8000016c: 18e5272f sc.w a4,a4,(a0)
80000170: fe071ae3 bnez a4,80000164 <test_3+0x30>
80000174: fff58593 addi a1,a1,-1
80000178: fe0596e3 bnez a1,80000164 <test_3+0x30>
8000017c: 00002517 auipc a0,0x2
80000180: e8850513 addi a0,a0,-376 # 80002004 <barrier>
80000184: 00100593 li a1,1
80000188: 00b5202f amoadd.w zero,a1,(a0)
8000018c: 00052583 lw a1,0(a0)
80000190: fed5cee3 blt a1,a3,8000018c <test_3+0x58>
80000194: 0ff0000f fence
80000198 <test_4>:
80000198: 00002517 auipc a0,0x2
8000019c: e7052503 lw a0,-400(a0) # 80002008 <foo>
800001a0: 00969593 slli a1,a3,0x9
800001a4: 40b50533 sub a0,a0,a1
800001a8: fff68693 addi a3,a3,-1
800001ac: fe06dce3 bgez a3,800001a4 <test_4+0xc>
800001b0: 00000e93 li t4,0
800001b4: 00400193 li gp,4
800001b8: 01d51463 bne a0,t4,800001c0 <fail>
800001bc: 00301c63 bne zero,gp,800001d4 <pass>
800001c0 <fail>:
800001c0: 0ff0000f fence
800001c4: 00018063 beqz gp,800001c4 <fail+0x4>
800001c8: 00119193 slli gp,gp,0x1
800001cc: 0011e193 ori gp,gp,1
800001d0: 00000073 ecall
800001d4 <pass>:
800001d4: 0ff0000f fence
800001d8: 00100193 li gp,1
800001dc: 00000073 ecall
800001e0: c0001073 unimp
800001e4: 0000 unimp
800001e6: 0000 unimp
800001e8: 0000 unimp
800001ea: 0000 unimp
800001ec: 0000 unimp
800001ee: 0000 unimp
800001f0: 0000 unimp
800001f2: 0000 unimp
800001f4: 0000 unimp
800001f6: 0000 unimp
800001f8: 0000 unimp
800001fa: 0000 unimp
800001fc: 0000 unimp
800001fe: 0000 unimp
80000200: 0000 unimp
80000202: 0000 unimp
Disassembly of section .data:
80002000 <begin_signature>:
80002000: 0000 unimp
80002002: 0000 unimp
80002004 <barrier>:
80002004: 0000 unimp
80002006: 0000 unimp
80002008 <foo>:
80002008: 0000 unimp
8000200a: 0000 unimp
8000200c: 0000 unimp
8000200e: 0000 unimp

BIN
Tests/isa/rv32ua-v-amoadd_w Normal file

Binary file not shown.

View File

@@ -0,0 +1,941 @@
rv32ua-v-amoadd_w: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 00c0006f j 8000000c <handle_reset>
80000004 <nmi_vector>:
80000004: 2780206f j 8000227c <wtf>
80000008 <trap_vector>:
80000008: 2740206f j 8000227c <wtf>
8000000c <handle_reset>:
8000000c: 00000297 auipc t0,0x0
80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
80000014: 30529073 csrw mtvec,t0
80000018: 00007117 auipc sp,0x7
8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
80000020: f14022f3 csrr t0,mhartid
80000024: 00c29293 slli t0,t0,0xc
80000028: 00510133 add sp,sp,t0
8000002c: 34011073 csrw mscratch,sp
80000030: 00003517 auipc a0,0x3
80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
80000038: 2090206f j 80002a40 <vm_boot>
8000003c <pop_tf>:
8000003c: 08452283 lw t0,132(a0)
80000040: 14129073 csrw sepc,t0
80000044: 00452083 lw ra,4(a0)
80000048: 00852103 lw sp,8(a0)
8000004c: 00c52183 lw gp,12(a0)
80000050: 01052203 lw tp,16(a0)
80000054: 01452283 lw t0,20(a0)
80000058: 01852303 lw t1,24(a0)
8000005c: 01c52383 lw t2,28(a0)
80000060: 02052403 lw s0,32(a0)
80000064: 02452483 lw s1,36(a0)
80000068: 02c52583 lw a1,44(a0)
8000006c: 03052603 lw a2,48(a0)
80000070: 03452683 lw a3,52(a0)
80000074: 03852703 lw a4,56(a0)
80000078: 03c52783 lw a5,60(a0)
8000007c: 04052803 lw a6,64(a0)
80000080: 04452883 lw a7,68(a0)
80000084: 04852903 lw s2,72(a0)
80000088: 04c52983 lw s3,76(a0)
8000008c: 05052a03 lw s4,80(a0)
80000090: 05452a83 lw s5,84(a0)
80000094: 05852b03 lw s6,88(a0)
80000098: 05c52b83 lw s7,92(a0)
8000009c: 06052c03 lw s8,96(a0)
800000a0: 06452c83 lw s9,100(a0)
800000a4: 06852d03 lw s10,104(a0)
800000a8: 06c52d83 lw s11,108(a0)
800000ac: 07052e03 lw t3,112(a0)
800000b0: 07452e83 lw t4,116(a0)
800000b4: 07852f03 lw t5,120(a0)
800000b8: 07c52f83 lw t6,124(a0)
800000bc: 02852503 lw a0,40(a0)
800000c0: 10200073 sret
800000c4 <trap_entry>:
800000c4: 14011173 csrrw sp,sscratch,sp
800000c8: 00112223 sw ra,4(sp)
800000cc: 00312623 sw gp,12(sp)
800000d0: 00412823 sw tp,16(sp)
800000d4: 00512a23 sw t0,20(sp)
800000d8: 00612c23 sw t1,24(sp)
800000dc: 00712e23 sw t2,28(sp)
800000e0: 02812023 sw s0,32(sp)
800000e4: 02912223 sw s1,36(sp)
800000e8: 02a12423 sw a0,40(sp)
800000ec: 02b12623 sw a1,44(sp)
800000f0: 02c12823 sw a2,48(sp)
800000f4: 02d12a23 sw a3,52(sp)
800000f8: 02e12c23 sw a4,56(sp)
800000fc: 02f12e23 sw a5,60(sp)
80000100: 05012023 sw a6,64(sp)
80000104: 05112223 sw a7,68(sp)
80000108: 05212423 sw s2,72(sp)
8000010c: 05312623 sw s3,76(sp)
80000110: 05412823 sw s4,80(sp)
80000114: 05512a23 sw s5,84(sp)
80000118: 05612c23 sw s6,88(sp)
8000011c: 05712e23 sw s7,92(sp)
80000120: 07812023 sw s8,96(sp)
80000124: 07912223 sw s9,100(sp)
80000128: 07a12423 sw s10,104(sp)
8000012c: 07b12623 sw s11,108(sp)
80000130: 07c12823 sw t3,112(sp)
80000134: 07d12a23 sw t4,116(sp)
80000138: 07e12c23 sw t5,120(sp)
8000013c: 07f12e23 sw t6,124(sp)
80000140: 140112f3 csrrw t0,sscratch,sp
80000144: 00512423 sw t0,8(sp)
80000148: 100022f3 csrr t0,sstatus
8000014c: 08512023 sw t0,128(sp)
80000150: 141022f3 csrr t0,sepc
80000154: 08512223 sw t0,132(sp)
80000158: 143022f3 csrr t0,sbadaddr
8000015c: 08512423 sw t0,136(sp)
80000160: 142022f3 csrr t0,scause
80000164: 08512623 sw t0,140(sp)
80000168: 00010513 mv a0,sp
8000016c: 50c0206f j 80002678 <handle_trap>
Disassembly of section .text:
80002000 <memcpy>:
80002000: 00c5e7b3 or a5,a1,a2
80002004: 00f567b3 or a5,a0,a5
80002008: 0037f793 andi a5,a5,3
8000200c: 00c506b3 add a3,a0,a2
80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
80002014: 00c58633 add a2,a1,a2
80002018: 00050793 mv a5,a0
8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
80002020: 00158593 addi a1,a1,1
80002024: fff5c703 lbu a4,-1(a1)
80002028: 00178793 addi a5,a5,1
8000202c: fee78fa3 sb a4,-1(a5)
80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
80002034: 00008067 ret
80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
8000203c: 00050793 mv a5,a0
80002040: 00458593 addi a1,a1,4
80002044: ffc5a703 lw a4,-4(a1)
80002048: 00478793 addi a5,a5,4
8000204c: fee7ae23 sw a4,-4(a5)
80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
80002054: 00008067 ret
80002058: 00008067 ret
8000205c <memset>:
8000205c: 00c567b3 or a5,a0,a2
80002060: 0037f793 andi a5,a5,3
80002064: 00c50633 add a2,a0,a2
80002068: 02078063 beqz a5,80002088 <memset+0x2c>
8000206c: 0ff5f593 andi a1,a1,255
80002070: 00050793 mv a5,a0
80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
80002078: 00178793 addi a5,a5,1
8000207c: feb78fa3 sb a1,-1(a5)
80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
80002084: 00008067 ret
80002088: 0ff5f593 andi a1,a1,255
8000208c: 00859793 slli a5,a1,0x8
80002090: 00b7e7b3 or a5,a5,a1
80002094: 01079593 slli a1,a5,0x10
80002098: 00f5e5b3 or a1,a1,a5
8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
800020a0: 00050793 mv a5,a0
800020a4: 00478793 addi a5,a5,4
800020a8: feb7ae23 sw a1,-4(a5)
800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
800020b0: 00008067 ret
800020b4: 00008067 ret
800020b8 <strlen>:
800020b8: 00054783 lbu a5,0(a0)
800020bc: 00050713 mv a4,a0
800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
800020c4: 00150513 addi a0,a0,1
800020c8: 00054783 lbu a5,0(a0)
800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
800020d0: 40e50533 sub a0,a0,a4
800020d4: 00008067 ret
800020d8: 00000513 li a0,0
800020dc: 00008067 ret
800020e0 <strcmp>:
800020e0: 00150513 addi a0,a0,1
800020e4: fff54783 lbu a5,-1(a0)
800020e8: 00158593 addi a1,a1,1
800020ec: fff5c703 lbu a4,-1(a1)
800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
800020f8: 40e78533 sub a0,a5,a4
800020fc: 00008067 ret
80002100: 00000793 li a5,0
80002104: ff5ff06f j 800020f8 <strcmp+0x18>
80002108 <memcmp>:
80002108: 00b567b3 or a5,a0,a1
8000210c: 0037f793 andi a5,a5,3
80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
80002114: ffc67693 andi a3,a2,-4
80002118: 00d506b3 add a3,a0,a3
8000211c: 00050813 mv a6,a0
80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
80002124: 00052703 lw a4,0(a0)
80002128: 0005a783 lw a5,0(a1)
8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
80002130: 0240006f j 80002154 <memcmp+0x4c>
80002134: 00052703 lw a4,0(a0)
80002138: 0005a783 lw a5,0(a1)
8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
80002140: 00450513 addi a0,a0,4
80002144: 00458593 addi a1,a1,4
80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
8000214c: 41050833 sub a6,a0,a6
80002150: 41060633 sub a2,a2,a6
80002154: 00c58633 add a2,a1,a2
80002158: 0140006f j 8000216c <memcmp+0x64>
8000215c: 00158593 addi a1,a1,1
80002160: fff54783 lbu a5,-1(a0)
80002164: fff5c703 lbu a4,-1(a1)
80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
8000216c: 00150513 addi a0,a0,1
80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
80002174: 00000513 li a0,0
80002178: 00008067 ret
8000217c: 40e78533 sub a0,a5,a4
80002180: 00008067 ret
80002184 <strcpy>:
80002184: 00050793 mv a5,a0
80002188: 00158593 addi a1,a1,1
8000218c: fff5c703 lbu a4,-1(a1)
80002190: 00178793 addi a5,a5,1
80002194: fee78fa3 sb a4,-1(a5)
80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
8000219c: 00008067 ret
800021a0 <atol>:
800021a0: 00054783 lbu a5,0(a0)
800021a4: 02000713 li a4,32
800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
800021ac: 00150513 addi a0,a0,1
800021b0: 00054783 lbu a5,0(a0)
800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
800021b8: fd578713 addi a4,a5,-43
800021bc: 0fd77713 andi a4,a4,253
800021c0: 04070263 beqz a4,80002204 <atol+0x64>
800021c4: 00054683 lbu a3,0(a0)
800021c8: 00050793 mv a5,a0
800021cc: 00000613 li a2,0
800021d0: 04068863 beqz a3,80002220 <atol+0x80>
800021d4: 00000513 li a0,0
800021d8: 00178793 addi a5,a5,1
800021dc: fd068593 addi a1,a3,-48
800021e0: 00251713 slli a4,a0,0x2
800021e4: 0007c683 lbu a3,0(a5)
800021e8: 00a70533 add a0,a4,a0
800021ec: 00151513 slli a0,a0,0x1
800021f0: 00a58533 add a0,a1,a0
800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
800021f8: 00060463 beqz a2,80002200 <atol+0x60>
800021fc: 40a00533 neg a0,a0
80002200: 00008067 ret
80002204: 00154683 lbu a3,1(a0)
80002208: fd378793 addi a5,a5,-45
8000220c: 0017b613 seqz a2,a5
80002210: 00150793 addi a5,a0,1
80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
80002218: 00000513 li a0,0
8000221c: fddff06f j 800021f8 <atol+0x58>
80002220: 00000513 li a0,0
80002224: 00008067 ret
80002228 <terminate>:
80002228: fffff697 auipc a3,0xfffff
8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
80002230: 0006a703 lw a4,0(a3)
80002234: 0046a783 lw a5,4(a3)
80002238: 00050813 mv a6,a0
8000223c: 41f55893 srai a7,a0,0x1f
80002240: 00f76733 or a4,a4,a5
80002244: 02070663 beqz a4,80002270 <terminate+0x48>
80002248: fffff617 auipc a2,0xfffff
8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
80002250: 00000713 li a4,0
80002254: 00e62023 sw a4,0(a2)
80002258: 00000793 li a5,0
8000225c: 00f62223 sw a5,4(a2)
80002260: 0006a703 lw a4,0(a3)
80002264: 0046a783 lw a5,4(a3)
80002268: 00f76733 or a4,a4,a5
8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
80002270: 0106a023 sw a6,0(a3)
80002274: 0116a223 sw a7,4(a3)
80002278: 0000006f j 80002278 <terminate+0x50>
8000227c <wtf>:
8000227c: ff010113 addi sp,sp,-16
80002280: 34900513 li a0,841
80002284: 00112623 sw ra,12(sp)
80002288: fa1ff0ef jal ra,80002228 <terminate>
8000228c <printhex>:
8000228c: fe010113 addi sp,sp,-32
80002290: 01b10793 addi a5,sp,27
80002294: 00b10e93 addi t4,sp,11
80002298: 00900e13 li t3,9
8000229c: 00f57693 andi a3,a0,15
800022a0: 01c59313 slli t1,a1,0x1c
800022a4: 00455513 srli a0,a0,0x4
800022a8: 05700613 li a2,87
800022ac: 0ff6f713 andi a4,a3,255
800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
800022b4: 03000613 li a2,48
800022b8: 00c70733 add a4,a4,a2
800022bc: 00e78023 sb a4,0(a5)
800022c0: fff78793 addi a5,a5,-1
800022c4: 00a36533 or a0,t1,a0
800022c8: 0045d593 srli a1,a1,0x4
800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
800022d0: 00c14583 lbu a1,12(sp)
800022d4: 00010e23 sb zero,28(sp)
800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
800022dc: 00c10513 addi a0,sp,12
800022e0: fffff697 auipc a3,0xfffff
800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
800022e8: fffff617 auipc a2,0xfffff
800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
800022f0: 0006a703 lw a4,0(a3)
800022f4: 0046a783 lw a5,4(a3)
800022f8: 00058813 mv a6,a1
800022fc: 00150513 addi a0,a0,1
80002300: 00f76733 or a4,a4,a5
80002304: 010108b7 lui a7,0x1010
80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
8000230c: 00000713 li a4,0
80002310: 00e62023 sw a4,0(a2)
80002314: 00000793 li a5,0
80002318: 00f62223 sw a5,4(a2)
8000231c: 0006a703 lw a4,0(a3)
80002320: 0046a783 lw a5,4(a3)
80002324: 00f76733 or a4,a4,a5
80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
8000232c: 00054583 lbu a1,0(a0)
80002330: 0106a023 sw a6,0(a3)
80002334: 0116a223 sw a7,4(a3)
80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
8000233c: 02010113 addi sp,sp,32
80002340: 00008067 ret
80002344 <handle_fault>:
80002344: ff010113 addi sp,sp,-16
80002348: fffff6b7 lui a3,0xfffff
8000234c: 00112623 sw ra,12(sp)
80002350: 00812423 sw s0,8(sp)
80002354: 00912223 sw s1,4(sp)
80002358: 00d50733 add a4,a0,a3
8000235c: 0003e7b7 lui a5,0x3e
80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
80002364: 00c55613 srli a2,a0,0xc
80002368: 40060e13 addi t3,a2,1024
8000236c: 00002317 auipc t1,0x2
80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
80002374: 002e1793 slli a5,t3,0x2
80002378: 00f307b3 add a5,t1,a5
8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
80002380: 00d57533 and a0,a0,a3
80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
80002388: 00004797 auipc a5,0x4
8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
80002390: 0007a583 lw a1,0(a5)
80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
80002398: 0045a783 lw a5,4(a1)
8000239c: 00004717 auipc a4,0x4
800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
800023a4: 00072703 lw a4,0(a4)
800023a8: 00004697 auipc a3,0x4
800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
800023b4: 0005a703 lw a4,0(a1)
800023b8: 002e1793 slli a5,t3,0x2
800023bc: 00f307b3 add a5,t1,a5
800023c0: 00c75713 srli a4,a4,0xc
800023c4: 00a71713 slli a4,a4,0xa
800023c8: 0df76e93 ori t4,a4,223
800023cc: 01f76693 ori a3,a4,31
800023d0: 01d7a023 sw t4,0(a5)
800023d4: 12050073 sfence.vma a0
800023d8: 00004717 auipc a4,0x4
800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
800023e0: 00361793 slli a5,a2,0x3
800023e4: 00f707b3 add a5,a4,a5
800023e8: 0007a703 lw a4,0(a5)
800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
800023f0: 0005a703 lw a4,0(a1)
800023f4: 00e7a023 sw a4,0(a5)
800023f8: 0045a703 lw a4,4(a1)
800023fc: 00e7a223 sw a4,4(a5)
80002400: 000407b7 lui a5,0x40
80002404: 1007a5f3 csrrs a1,sstatus,a5
80002408: ffc007b7 lui a5,0xffc00
8000240c: 00f507b3 add a5,a0,a5
80002410: 00001637 lui a2,0x1
80002414: 00050713 mv a4,a0
80002418: 00c78633 add a2,a5,a2
8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
80002420: 0047ae83 lw t4,4(a5)
80002424: 0087a883 lw a7,8(a5)
80002428: 00c7a803 lw a6,12(a5)
8000242c: 01e72023 sw t5,0(a4)
80002430: 01d72223 sw t4,4(a4)
80002434: 01172423 sw a7,8(a4)
80002438: 01072623 sw a6,12(a4)
8000243c: 01078793 addi a5,a5,16
80002440: 01070713 addi a4,a4,16
80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
80002448: 10059073 csrw sstatus,a1
8000244c: 002e1e13 slli t3,t3,0x2
80002450: 01c30333 add t1,t1,t3
80002454: 00d32023 sw a3,0(t1)
80002458: 12050073 sfence.vma a0
8000245c: 0000100f fence.i
80002460: 00c12083 lw ra,12(sp)
80002464: 00812403 lw s0,8(sp)
80002468: 00412483 lw s1,4(sp)
8000246c: 01010113 addi sp,sp,16
80002470: 00008067 ret
80002474: 04077693 andi a3,a4,64
80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
8000247c: 04076713 ori a4,a4,64
80002480: 00e7a023 sw a4,0(a5)
80002484: 12050073 sfence.vma a0
80002488: 00c12083 lw ra,12(sp)
8000248c: 00812403 lw s0,8(sp)
80002490: 00412483 lw s1,4(sp)
80002494: 01010113 addi sp,sp,16
80002498: 00008067 ret
8000249c: 08077693 andi a3,a4,128
800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
800024a4: 00f00693 li a3,15
800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
800024ac: 08076713 ori a4,a4,128
800024b0: 00e7a023 sw a4,0(a5)
800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
800024b8: 00004797 auipc a5,0x4
800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
800024c4: 04100513 li a0,65
800024c8: 00000597 auipc a1,0x0
800024cc: 79858593 addi a1,a1,1944 # 80002c60 <pass+0xc>
800024d0: fffff697 auipc a3,0xfffff
800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
800024d8: fffff617 auipc a2,0xfffff
800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
800024e0: 0006a703 lw a4,0(a3)
800024e4: 0046a783 lw a5,4(a3)
800024e8: 00050313 mv t1,a0
800024ec: 00158593 addi a1,a1,1
800024f0: 00f76733 or a4,a4,a5
800024f4: 010103b7 lui t2,0x1010
800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
800024fc: 00000793 li a5,0
80002500: 00f62023 sw a5,0(a2)
80002504: 00000813 li a6,0
80002508: 01062223 sw a6,4(a2)
8000250c: 0006a703 lw a4,0(a3)
80002510: 0046a783 lw a5,4(a3)
80002514: 00f76733 or a4,a4,a5
80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
8000251c: 0005c503 lbu a0,0(a1)
80002520: 0066a023 sw t1,0(a3)
80002524: 0076a223 sw t2,4(a3)
80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
8000252c: 00300513 li a0,3
80002530: cf9ff0ef jal ra,80002228 <terminate>
80002534: 04100513 li a0,65
80002538: 00000597 auipc a1,0x0
8000253c: 7b458593 addi a1,a1,1972 # 80002cec <pass+0x98>
80002540: fffff697 auipc a3,0xfffff
80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
80002548: fffff617 auipc a2,0xfffff
8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
80002550: 0006a703 lw a4,0(a3)
80002554: 0046a783 lw a5,4(a3)
80002558: 00050f13 mv t5,a0
8000255c: 00158593 addi a1,a1,1
80002560: 00f76733 or a4,a4,a5
80002564: 01010fb7 lui t6,0x1010
80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
8000256c: 00000793 li a5,0
80002570: 00f62023 sw a5,0(a2)
80002574: 00000813 li a6,0
80002578: 01062223 sw a6,4(a2)
8000257c: 0006a703 lw a4,0(a3)
80002580: 0046a783 lw a5,4(a3)
80002584: 00f76733 or a4,a4,a5
80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
8000258c: 0005c503 lbu a0,0(a1)
80002590: 01e6a023 sw t5,0(a3)
80002594: 01f6a223 sw t6,4(a3)
80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
800025a0: 04100513 li a0,65
800025a4: 00000597 auipc a1,0x0
800025a8: 76058593 addi a1,a1,1888 # 80002d04 <pass+0xb0>
800025ac: fffff697 auipc a3,0xfffff
800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
800025b4: fffff617 auipc a2,0xfffff
800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
800025bc: 0006a703 lw a4,0(a3)
800025c0: 0046a783 lw a5,4(a3)
800025c4: 00050813 mv a6,a0
800025c8: 00158593 addi a1,a1,1
800025cc: 00f76733 or a4,a4,a5
800025d0: 010108b7 lui a7,0x1010
800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
800025d8: 00000713 li a4,0
800025dc: 00e62023 sw a4,0(a2)
800025e0: 00000793 li a5,0
800025e4: 00f62223 sw a5,4(a2)
800025e8: 0006a703 lw a4,0(a3)
800025ec: 0046a783 lw a5,4(a3)
800025f0: 00f76733 or a4,a4,a5
800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
800025f8: 0005c503 lbu a0,0(a1)
800025fc: 0106a023 sw a6,0(a3)
80002600: 0116a223 sw a7,4(a3)
80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
8000260c: 04100793 li a5,65
80002610: 00000597 auipc a1,0x0
80002614: 69458593 addi a1,a1,1684 # 80002ca4 <pass+0x50>
80002618: fffff697 auipc a3,0xfffff
8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
80002620: fffff617 auipc a2,0xfffff
80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
80002628: 0006a803 lw a6,0(a3)
8000262c: 0046a883 lw a7,4(a3)
80002630: 00078413 mv s0,a5
80002634: 00158593 addi a1,a1,1
80002638: 01186833 or a6,a6,a7
8000263c: 010104b7 lui s1,0x1010
80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
80002644: 00000793 li a5,0
80002648: 00f62023 sw a5,0(a2)
8000264c: 00000813 li a6,0
80002650: 01062223 sw a6,4(a2)
80002654: 0006a703 lw a4,0(a3)
80002658: 0046a783 lw a5,4(a3)
8000265c: 00f76733 or a4,a4,a5
80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
80002664: 0005c783 lbu a5,0(a1)
80002668: 0086a023 sw s0,0(a3)
8000266c: 0096a223 sw s1,4(a3)
80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
80002678 <handle_trap>:
80002678: 08c52583 lw a1,140(a0)
8000267c: fb010113 addi sp,sp,-80
80002680: 03412c23 sw s4,56(sp)
80002684: 04112623 sw ra,76(sp)
80002688: 04812423 sw s0,72(sp)
8000268c: 04912223 sw s1,68(sp)
80002690: 05212023 sw s2,64(sp)
80002694: 03312e23 sw s3,60(sp)
80002698: 03512a23 sw s5,52(sp)
8000269c: 03612823 sw s6,48(sp)
800026a0: 03712623 sw s7,44(sp)
800026a4: 03812423 sw s8,40(sp)
800026a8: 03912223 sw s9,36(sp)
800026ac: 03a12023 sw s10,32(sp)
800026b0: 01b12e23 sw s11,28(sp)
800026b4: 00800793 li a5,8
800026b8: 00050a13 mv s4,a0
800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
800026c0: 00200793 li a5,2
800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
800026c8: ff458793 addi a5,a1,-12
800026cc: 00100713 li a4,1
800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
800026d4: 00f00793 li a5,15
800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
800026dc: 088a2503 lw a0,136(s4)
800026e0: c65ff0ef jal ra,80002344 <handle_fault>
800026e4: 04812403 lw s0,72(sp)
800026e8: 04c12083 lw ra,76(sp)
800026ec: 04412483 lw s1,68(sp)
800026f0: 04012903 lw s2,64(sp)
800026f4: 03c12983 lw s3,60(sp)
800026f8: 03412a83 lw s5,52(sp)
800026fc: 03012b03 lw s6,48(sp)
80002700: 02c12b83 lw s7,44(sp)
80002704: 02812c03 lw s8,40(sp)
80002708: 02412c83 lw s9,36(sp)
8000270c: 02012d03 lw s10,32(sp)
80002710: 01c12d83 lw s11,28(sp)
80002714: 000a0513 mv a0,s4
80002718: 03812a03 lw s4,56(sp)
8000271c: 05010113 addi sp,sp,80
80002720: 91dfd06f j 8000003c <pop_tf>
80002724: 08452703 lw a4,132(a0)
80002728: 00377793 andi a5,a4,3
8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
80002734: 00301073 fssr zero
80002738: 00072703 lw a4,0(a4)
8000273c: 0007a783 lw a5,0(a5)
80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
80002744: 04100513 li a0,65
80002748: 00000597 auipc a1,0x0
8000274c: 68458593 addi a1,a1,1668 # 80002dcc <pass+0x178>
80002750: fffff697 auipc a3,0xfffff
80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
80002758: fffff617 auipc a2,0xfffff
8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
80002760: 0006a703 lw a4,0(a3)
80002764: 0046a783 lw a5,4(a3)
80002768: 00050813 mv a6,a0
8000276c: 00158593 addi a1,a1,1
80002770: 00f76733 or a4,a4,a5
80002774: 010108b7 lui a7,0x1010
80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
8000277c: 00000713 li a4,0
80002780: 00e62023 sw a4,0(a2)
80002784: 00000793 li a5,0
80002788: 00f62223 sw a5,4(a2)
8000278c: 0006a703 lw a4,0(a3)
80002790: 0046a783 lw a5,4(a3)
80002794: 00f76733 or a4,a4,a5
80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
8000279c: 0005c503 lbu a0,0(a1)
800027a0: 0106a023 sw a6,0(a3)
800027a4: 0116a223 sw a7,4(a3)
800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
800027ac: 00300513 li a0,3
800027b0: a79ff0ef jal ra,80002228 <terminate>
800027b4: 00100513 li a0,1
800027b8: a71ff0ef jal ra,80002228 <terminate>
800027bc: 00000597 auipc a1,0x0
800027c0: 5ec58593 addi a1,a1,1516 # 80002da8 <pass+0x154>
800027c4: 04100613 li a2,65
800027c8: fffff697 auipc a3,0xfffff
800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
800027d0: fffff517 auipc a0,0xfffff
800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
800027d8: 0006a703 lw a4,0(a3)
800027dc: 0046a783 lw a5,4(a3)
800027e0: 00060e13 mv t3,a2
800027e4: 00158593 addi a1,a1,1
800027e8: 00f76733 or a4,a4,a5
800027ec: 01010eb7 lui t4,0x1010
800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
800027f4: 00000793 li a5,0
800027f8: 00f52023 sw a5,0(a0)
800027fc: 00000813 li a6,0
80002800: 01052223 sw a6,4(a0)
80002804: 0006a703 lw a4,0(a3)
80002808: 0046a783 lw a5,4(a3)
8000280c: 00f76733 or a4,a4,a5
80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
80002814: 0005c603 lbu a2,0(a1)
80002818: 01c6a023 sw t3,0(a3)
8000281c: 01d6a223 sw t4,4(a3)
80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
80002824: f89ff06f j 800027ac <handle_trap+0x134>
80002828: 02852783 lw a5,40(a0)
8000282c: 00001a37 lui s4,0x1
80002830: 00004b17 auipc s6,0x4
80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
80002838: 00f12223 sw a5,4(sp)
8000283c: 00001d17 auipc s10,0x1
80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
80002844: 00040cb7 lui s9,0x40
80002848: ffc00c37 lui s8,0xffc00
8000284c: 0003fab7 lui s5,0x3f
80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
80002854: 00f72223 sw a5,4(a4)
80002858: 00004717 auipc a4,0x4
8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
80002860: 000017b7 lui a5,0x1
80002864: 00fa0a33 add s4,s4,a5
80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
8000286c: 00ca5713 srli a4,s4,0xc
80002870: 00371b93 slli s7,a4,0x3
80002874: 017b0633 add a2,s6,s7
80002878: 00062603 lw a2,0(a2)
8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
80002880: 40070713 addi a4,a4,1024
80002884: 00271713 slli a4,a4,0x2
80002888: 00ed0733 add a4,s10,a4
8000288c: 00072703 lw a4,0(a4)
80002890: 04077613 andi a2,a4,64
80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
80002898: 00e12623 sw a4,12(sp)
8000289c: 100cadf3 csrrs s11,sstatus,s9
800028a0: 018a0833 add a6,s4,s8
800028a4: 00001637 lui a2,0x1
800028a8: 00080593 mv a1,a6
800028ac: 000a0513 mv a0,s4
800028b0: 01012423 sw a6,8(sp)
800028b4: 855ff0ef jal ra,80002108 <memcmp>
800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
800028bc: 00c12703 lw a4,12(sp)
800028c0: 00812803 lw a6,8(sp)
800028c4: 08077713 andi a4,a4,128
800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
800028cc: 00001637 lui a2,0x1
800028d0: 00080593 mv a1,a6
800028d4: 000a0513 mv a0,s4
800028d8: f28ff0ef jal ra,80002000 <memcpy>
800028dc: 017b07b3 add a5,s6,s7
800028e0: 100d9073 csrw sstatus,s11
800028e4: 00004717 auipc a4,0x4
800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
800028ec: 00072703 lw a4,0(a4)
800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
800028f8: 00004717 auipc a4,0x4
800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
80002900: 00004717 auipc a4,0x4
80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
8000290c: 04100593 li a1,65
80002910: 00000617 auipc a2,0x0
80002914: 4e860613 addi a2,a2,1256 # 80002df8 <pass+0x1a4>
80002918: ffffe697 auipc a3,0xffffe
8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
80002920: ffffe517 auipc a0,0xffffe
80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
80002928: 0006a703 lw a4,0(a3)
8000292c: 0046a783 lw a5,4(a3)
80002930: 00058313 mv t1,a1
80002934: 00160613 addi a2,a2,1
80002938: 00f76733 or a4,a4,a5
8000293c: 010103b7 lui t2,0x1010
80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
80002944: 00000793 li a5,0
80002948: 00f52023 sw a5,0(a0)
8000294c: 00000813 li a6,0
80002950: 01052223 sw a6,4(a0)
80002954: 0006a703 lw a4,0(a3)
80002958: 0046a783 lw a5,4(a3)
8000295c: 00f76733 or a4,a4,a5
80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
80002964: 00064583 lbu a1,0(a2)
80002968: 0066a023 sw t1,0(a3)
8000296c: 0076a223 sw t2,4(a3)
80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
80002974: e39ff06f j 800027ac <handle_trap+0x134>
80002978: 04100793 li a5,65
8000297c: 00000617 auipc a2,0x0
80002980: 3f860613 addi a2,a2,1016 # 80002d74 <pass+0x120>
80002984: ffffe697 auipc a3,0xffffe
80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
8000298c: ffffe597 auipc a1,0xffffe
80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
80002994: 00078413 mv s0,a5
80002998: 00160613 addi a2,a2,1
8000299c: 010104b7 lui s1,0x1010
800029a0: 0006a703 lw a4,0(a3)
800029a4: 0046a783 lw a5,4(a3)
800029a8: 00f76733 or a4,a4,a5
800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
800029b0: 00000793 li a5,0
800029b4: 00000813 li a6,0
800029b8: 00f5a023 sw a5,0(a1)
800029bc: 0105a223 sw a6,4(a1)
800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
800029c4: 04100793 li a5,65
800029c8: 00000617 auipc a2,0x0
800029cc: 37860613 addi a2,a2,888 # 80002d40 <pass+0xec>
800029d0: ffffe697 auipc a3,0xffffe
800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
800029d8: ffffe597 auipc a1,0xffffe
800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
800029e0: 00078913 mv s2,a5
800029e4: 00160613 addi a2,a2,1
800029e8: 010109b7 lui s3,0x1010
800029ec: 0006a703 lw a4,0(a3)
800029f0: 0046a783 lw a5,4(a3)
800029f4: 00f76733 or a4,a4,a5
800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
800029fc: 00000793 li a5,0
80002a00: 00000813 li a6,0
80002a04: 00f5a023 sw a5,0(a1)
80002a08: 0105a223 sw a6,4(a1)
80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
80002a10: 00412503 lw a0,4(sp)
80002a14: 815ff0ef jal ra,80002228 <terminate>
80002a18: 00064783 lbu a5,0(a2)
80002a1c: 0086a023 sw s0,0(a3)
80002a20: 0096a223 sw s1,4(a3)
80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
80002a28: d85ff06f j 800027ac <handle_trap+0x134>
80002a2c: 00064783 lbu a5,0(a2)
80002a30: 0126a023 sw s2,0(a3)
80002a34: 0136a223 sw s3,4(a3)
80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
80002a40 <vm_boot>:
80002a40: f14027f3 csrr a5,mhartid
80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
80002a48: 00002797 auipc a5,0x2
80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
80002a50: 00c7d793 srli a5,a5,0xc
80002a54: 00a79793 slli a5,a5,0xa
80002a58: 0017e793 ori a5,a5,1
80002a5c: 00001697 auipc a3,0x1
80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
80002a64: 200007b7 lui a5,0x20000
80002a68: 00001717 auipc a4,0x1
80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
80002a74: f6010113 addi sp,sp,-160
80002a78: 00002697 auipc a3,0x2
80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
80002a80: 00c75793 srli a5,a4,0xc
80002a84: 80000737 lui a4,0x80000
80002a88: 08112e23 sw ra,156(sp)
80002a8c: 08812c23 sw s0,152(sp)
80002a90: 00e7e7b3 or a5,a5,a4
80002a94: 18079073 csrw satp,a5
80002a98: 01f00793 li a5,31
80002a9c: fff00713 li a4,-1
80002aa0: 00000297 auipc t0,0x0
80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
80002aa8: 305292f3 csrrw t0,mtvec,t0
80002aac: 3b071073 csrw pmpaddr0,a4
80002ab0: 3a079073 csrw pmpcfg0,a5
80002ab4: 7fbfd797 auipc a5,0x7fbfd
80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
80002abc: 10579073 csrw stvec,a5
80002ac0: 340027f3 csrr a5,mscratch
80002ac4: 7fc00837 lui a6,0x7fc00
80002ac8: 010787b3 add a5,a5,a6
80002acc: 14079073 csrw sscratch,a5
80002ad0: 0000b7b7 lui a5,0xb
80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
80002ad8: 30279073 csrw medeleg,a5
80002adc: 0001e7b7 lui a5,0x1e
80002ae0: 30079073 csrw mstatus,a5
80002ae4: 30405073 csrwi mie,0
80002ae8: 7fc03797 auipc a5,0x7fc03
80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
80002af0: 00004717 auipc a4,0x4
80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
80002af8: 7fc03797 auipc a5,0x7fc03
80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
80002b00: 00004717 auipc a4,0x4
80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
80002b08: 000808b7 lui a7,0x80
80002b0c: 00003717 auipc a4,0x3
80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
80002b14: 00003317 auipc t1,0x3
80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
80002b1c: 01600793 li a5,22
80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
80002b28: 0017d613 srli a2,a5,0x1
80002b2c: 011786b3 add a3,a5,a7
80002b30: 00f647b3 xor a5,a2,a5
80002b34: 010705b3 add a1,a4,a6
80002b38: 00c69693 slli a3,a3,0xc
80002b3c: 00579793 slli a5,a5,0x5
80002b40: 00d72023 sw a3,0(a4)
80002b44: 00b72223 sw a1,4(a4)
80002b48: 0207f793 andi a5,a5,32
80002b4c: 00870713 addi a4,a4,8
80002b50: 00f667b3 or a5,a2,a5
80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
80002b58: 00050413 mv s0,a0
80002b5c: 09000613 li a2,144
80002b60: 00000593 li a1,0
80002b64: 00010513 mv a0,sp
80002b68: 00003797 auipc a5,0x3
80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
80002b70: cecff0ef jal ra,8000205c <memset>
80002b74: 800007b7 lui a5,0x80000
80002b78: 00f40433 add s0,s0,a5
80002b7c: 00010513 mv a0,sp
80002b80: 08812223 sw s0,132(sp)
80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
80002b88: 09c12083 lw ra,156(sp)
80002b8c: 09812403 lw s0,152(sp)
80002b90: 0a010113 addi sp,sp,160
80002b94: 00008067 ret
80002b98: 074ab7b7 lui a5,0x74ab
80002b9c: 00080637 lui a2,0x80
80002ba0: aa678793 addi a5,a5,-1370 # 74aaaa6 <_start-0x78b5555a>
80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
80002ba8: 800005b7 lui a1,0x80000
80002bac: 00c7f733 and a4,a5,a2
80002bb0: 0017f693 andi a3,a5,1
80002bb4: 00b70733 add a4,a4,a1
80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
80002bbc: 0007202f amoadd.w zero,zero,(a4)
80002bc0: 0017d793 srli a5,a5,0x1
80002bc4: 00c7f733 and a4,a5,a2
80002bc8: 0017f693 andi a3,a5,1
80002bcc: 00b70733 add a4,a4,a1
80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
80002bd4: 00072003 lw zero,0(a4)
80002bd8: 0017d793 srli a5,a5,0x1
80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
80002be0 <userstart>:
80002be0: 80000537 lui a0,0x80000
80002be4: 80000593 li a1,-2048
80002be8: 00000697 auipc a3,0x0
80002bec: 41868693 addi a3,a3,1048 # 80003000 <begin_signature>
80002bf0: 00a6a023 sw a0,0(a3)
80002bf4: 00b6a72f amoadd.w a4,a1,(a3)
80002bf8: 80000eb7 lui t4,0x80000
80002bfc: 00200193 li gp,2
80002c00: 05d71263 bne a4,t4,80002c44 <fail>
80002c04 <test_3>:
80002c04: 0006a783 lw a5,0(a3)
80002c08: 80000eb7 lui t4,0x80000
80002c0c: 800e8e93 addi t4,t4,-2048 # 7ffff800 <_end+0xffff9408>
80002c10: 00300193 li gp,3
80002c14: 03d79863 bne a5,t4,80002c44 <fail>
80002c18 <test_4>:
80002c18: 800005b7 lui a1,0x80000
80002c1c: 00b6a72f amoadd.w a4,a1,(a3)
80002c20: 80000eb7 lui t4,0x80000
80002c24: 800e8e93 addi t4,t4,-2048 # 7ffff800 <_end+0xffff9408>
80002c28: 00400193 li gp,4
80002c2c: 01d71c63 bne a4,t4,80002c44 <fail>
80002c30 <test_5>:
80002c30: 0006a783 lw a5,0(a3)
80002c34: 80000e93 li t4,-2048
80002c38: 00500193 li gp,5
80002c3c: 01d79463 bne a5,t4,80002c44 <fail>
80002c40: 00301a63 bne zero,gp,80002c54 <pass>
80002c44 <fail>:
80002c44: 00119513 slli a0,gp,0x1
80002c48: 00050063 beqz a0,80002c48 <fail+0x4>
80002c4c: 00156513 ori a0,a0,1
80002c50: 00000073 ecall
80002c54 <pass>:
80002c54: 00100513 li a0,1
80002c58: 00000073 ecall
80002c5c: c0001073 unimp

BIN
Tests/isa/rv32ua-v-amoand_w Normal file

Binary file not shown.

View File

@@ -0,0 +1,939 @@
rv32ua-v-amoand_w: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 00c0006f j 8000000c <handle_reset>
80000004 <nmi_vector>:
80000004: 2780206f j 8000227c <wtf>
80000008 <trap_vector>:
80000008: 2740206f j 8000227c <wtf>
8000000c <handle_reset>:
8000000c: 00000297 auipc t0,0x0
80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
80000014: 30529073 csrw mtvec,t0
80000018: 00007117 auipc sp,0x7
8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
80000020: f14022f3 csrr t0,mhartid
80000024: 00c29293 slli t0,t0,0xc
80000028: 00510133 add sp,sp,t0
8000002c: 34011073 csrw mscratch,sp
80000030: 00003517 auipc a0,0x3
80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
80000038: 2090206f j 80002a40 <vm_boot>
8000003c <pop_tf>:
8000003c: 08452283 lw t0,132(a0)
80000040: 14129073 csrw sepc,t0
80000044: 00452083 lw ra,4(a0)
80000048: 00852103 lw sp,8(a0)
8000004c: 00c52183 lw gp,12(a0)
80000050: 01052203 lw tp,16(a0)
80000054: 01452283 lw t0,20(a0)
80000058: 01852303 lw t1,24(a0)
8000005c: 01c52383 lw t2,28(a0)
80000060: 02052403 lw s0,32(a0)
80000064: 02452483 lw s1,36(a0)
80000068: 02c52583 lw a1,44(a0)
8000006c: 03052603 lw a2,48(a0)
80000070: 03452683 lw a3,52(a0)
80000074: 03852703 lw a4,56(a0)
80000078: 03c52783 lw a5,60(a0)
8000007c: 04052803 lw a6,64(a0)
80000080: 04452883 lw a7,68(a0)
80000084: 04852903 lw s2,72(a0)
80000088: 04c52983 lw s3,76(a0)
8000008c: 05052a03 lw s4,80(a0)
80000090: 05452a83 lw s5,84(a0)
80000094: 05852b03 lw s6,88(a0)
80000098: 05c52b83 lw s7,92(a0)
8000009c: 06052c03 lw s8,96(a0)
800000a0: 06452c83 lw s9,100(a0)
800000a4: 06852d03 lw s10,104(a0)
800000a8: 06c52d83 lw s11,108(a0)
800000ac: 07052e03 lw t3,112(a0)
800000b0: 07452e83 lw t4,116(a0)
800000b4: 07852f03 lw t5,120(a0)
800000b8: 07c52f83 lw t6,124(a0)
800000bc: 02852503 lw a0,40(a0)
800000c0: 10200073 sret
800000c4 <trap_entry>:
800000c4: 14011173 csrrw sp,sscratch,sp
800000c8: 00112223 sw ra,4(sp)
800000cc: 00312623 sw gp,12(sp)
800000d0: 00412823 sw tp,16(sp)
800000d4: 00512a23 sw t0,20(sp)
800000d8: 00612c23 sw t1,24(sp)
800000dc: 00712e23 sw t2,28(sp)
800000e0: 02812023 sw s0,32(sp)
800000e4: 02912223 sw s1,36(sp)
800000e8: 02a12423 sw a0,40(sp)
800000ec: 02b12623 sw a1,44(sp)
800000f0: 02c12823 sw a2,48(sp)
800000f4: 02d12a23 sw a3,52(sp)
800000f8: 02e12c23 sw a4,56(sp)
800000fc: 02f12e23 sw a5,60(sp)
80000100: 05012023 sw a6,64(sp)
80000104: 05112223 sw a7,68(sp)
80000108: 05212423 sw s2,72(sp)
8000010c: 05312623 sw s3,76(sp)
80000110: 05412823 sw s4,80(sp)
80000114: 05512a23 sw s5,84(sp)
80000118: 05612c23 sw s6,88(sp)
8000011c: 05712e23 sw s7,92(sp)
80000120: 07812023 sw s8,96(sp)
80000124: 07912223 sw s9,100(sp)
80000128: 07a12423 sw s10,104(sp)
8000012c: 07b12623 sw s11,108(sp)
80000130: 07c12823 sw t3,112(sp)
80000134: 07d12a23 sw t4,116(sp)
80000138: 07e12c23 sw t5,120(sp)
8000013c: 07f12e23 sw t6,124(sp)
80000140: 140112f3 csrrw t0,sscratch,sp
80000144: 00512423 sw t0,8(sp)
80000148: 100022f3 csrr t0,sstatus
8000014c: 08512023 sw t0,128(sp)
80000150: 141022f3 csrr t0,sepc
80000154: 08512223 sw t0,132(sp)
80000158: 143022f3 csrr t0,sbadaddr
8000015c: 08512423 sw t0,136(sp)
80000160: 142022f3 csrr t0,scause
80000164: 08512623 sw t0,140(sp)
80000168: 00010513 mv a0,sp
8000016c: 50c0206f j 80002678 <handle_trap>
Disassembly of section .text:
80002000 <memcpy>:
80002000: 00c5e7b3 or a5,a1,a2
80002004: 00f567b3 or a5,a0,a5
80002008: 0037f793 andi a5,a5,3
8000200c: 00c506b3 add a3,a0,a2
80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
80002014: 00c58633 add a2,a1,a2
80002018: 00050793 mv a5,a0
8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
80002020: 00158593 addi a1,a1,1
80002024: fff5c703 lbu a4,-1(a1)
80002028: 00178793 addi a5,a5,1
8000202c: fee78fa3 sb a4,-1(a5)
80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
80002034: 00008067 ret
80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
8000203c: 00050793 mv a5,a0
80002040: 00458593 addi a1,a1,4
80002044: ffc5a703 lw a4,-4(a1)
80002048: 00478793 addi a5,a5,4
8000204c: fee7ae23 sw a4,-4(a5)
80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
80002054: 00008067 ret
80002058: 00008067 ret
8000205c <memset>:
8000205c: 00c567b3 or a5,a0,a2
80002060: 0037f793 andi a5,a5,3
80002064: 00c50633 add a2,a0,a2
80002068: 02078063 beqz a5,80002088 <memset+0x2c>
8000206c: 0ff5f593 andi a1,a1,255
80002070: 00050793 mv a5,a0
80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
80002078: 00178793 addi a5,a5,1
8000207c: feb78fa3 sb a1,-1(a5)
80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
80002084: 00008067 ret
80002088: 0ff5f593 andi a1,a1,255
8000208c: 00859793 slli a5,a1,0x8
80002090: 00b7e7b3 or a5,a5,a1
80002094: 01079593 slli a1,a5,0x10
80002098: 00f5e5b3 or a1,a1,a5
8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
800020a0: 00050793 mv a5,a0
800020a4: 00478793 addi a5,a5,4
800020a8: feb7ae23 sw a1,-4(a5)
800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
800020b0: 00008067 ret
800020b4: 00008067 ret
800020b8 <strlen>:
800020b8: 00054783 lbu a5,0(a0)
800020bc: 00050713 mv a4,a0
800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
800020c4: 00150513 addi a0,a0,1
800020c8: 00054783 lbu a5,0(a0)
800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
800020d0: 40e50533 sub a0,a0,a4
800020d4: 00008067 ret
800020d8: 00000513 li a0,0
800020dc: 00008067 ret
800020e0 <strcmp>:
800020e0: 00150513 addi a0,a0,1
800020e4: fff54783 lbu a5,-1(a0)
800020e8: 00158593 addi a1,a1,1
800020ec: fff5c703 lbu a4,-1(a1)
800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
800020f8: 40e78533 sub a0,a5,a4
800020fc: 00008067 ret
80002100: 00000793 li a5,0
80002104: ff5ff06f j 800020f8 <strcmp+0x18>
80002108 <memcmp>:
80002108: 00b567b3 or a5,a0,a1
8000210c: 0037f793 andi a5,a5,3
80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
80002114: ffc67693 andi a3,a2,-4
80002118: 00d506b3 add a3,a0,a3
8000211c: 00050813 mv a6,a0
80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
80002124: 00052703 lw a4,0(a0)
80002128: 0005a783 lw a5,0(a1)
8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
80002130: 0240006f j 80002154 <memcmp+0x4c>
80002134: 00052703 lw a4,0(a0)
80002138: 0005a783 lw a5,0(a1)
8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
80002140: 00450513 addi a0,a0,4
80002144: 00458593 addi a1,a1,4
80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
8000214c: 41050833 sub a6,a0,a6
80002150: 41060633 sub a2,a2,a6
80002154: 00c58633 add a2,a1,a2
80002158: 0140006f j 8000216c <memcmp+0x64>
8000215c: 00158593 addi a1,a1,1
80002160: fff54783 lbu a5,-1(a0)
80002164: fff5c703 lbu a4,-1(a1)
80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
8000216c: 00150513 addi a0,a0,1
80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
80002174: 00000513 li a0,0
80002178: 00008067 ret
8000217c: 40e78533 sub a0,a5,a4
80002180: 00008067 ret
80002184 <strcpy>:
80002184: 00050793 mv a5,a0
80002188: 00158593 addi a1,a1,1
8000218c: fff5c703 lbu a4,-1(a1)
80002190: 00178793 addi a5,a5,1
80002194: fee78fa3 sb a4,-1(a5)
80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
8000219c: 00008067 ret
800021a0 <atol>:
800021a0: 00054783 lbu a5,0(a0)
800021a4: 02000713 li a4,32
800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
800021ac: 00150513 addi a0,a0,1
800021b0: 00054783 lbu a5,0(a0)
800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
800021b8: fd578713 addi a4,a5,-43
800021bc: 0fd77713 andi a4,a4,253
800021c0: 04070263 beqz a4,80002204 <atol+0x64>
800021c4: 00054683 lbu a3,0(a0)
800021c8: 00050793 mv a5,a0
800021cc: 00000613 li a2,0
800021d0: 04068863 beqz a3,80002220 <atol+0x80>
800021d4: 00000513 li a0,0
800021d8: 00178793 addi a5,a5,1
800021dc: fd068593 addi a1,a3,-48
800021e0: 00251713 slli a4,a0,0x2
800021e4: 0007c683 lbu a3,0(a5)
800021e8: 00a70533 add a0,a4,a0
800021ec: 00151513 slli a0,a0,0x1
800021f0: 00a58533 add a0,a1,a0
800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
800021f8: 00060463 beqz a2,80002200 <atol+0x60>
800021fc: 40a00533 neg a0,a0
80002200: 00008067 ret
80002204: 00154683 lbu a3,1(a0)
80002208: fd378793 addi a5,a5,-45
8000220c: 0017b613 seqz a2,a5
80002210: 00150793 addi a5,a0,1
80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
80002218: 00000513 li a0,0
8000221c: fddff06f j 800021f8 <atol+0x58>
80002220: 00000513 li a0,0
80002224: 00008067 ret
80002228 <terminate>:
80002228: fffff697 auipc a3,0xfffff
8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
80002230: 0006a703 lw a4,0(a3)
80002234: 0046a783 lw a5,4(a3)
80002238: 00050813 mv a6,a0
8000223c: 41f55893 srai a7,a0,0x1f
80002240: 00f76733 or a4,a4,a5
80002244: 02070663 beqz a4,80002270 <terminate+0x48>
80002248: fffff617 auipc a2,0xfffff
8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
80002250: 00000713 li a4,0
80002254: 00e62023 sw a4,0(a2)
80002258: 00000793 li a5,0
8000225c: 00f62223 sw a5,4(a2)
80002260: 0006a703 lw a4,0(a3)
80002264: 0046a783 lw a5,4(a3)
80002268: 00f76733 or a4,a4,a5
8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
80002270: 0106a023 sw a6,0(a3)
80002274: 0116a223 sw a7,4(a3)
80002278: 0000006f j 80002278 <terminate+0x50>
8000227c <wtf>:
8000227c: ff010113 addi sp,sp,-16
80002280: 34900513 li a0,841
80002284: 00112623 sw ra,12(sp)
80002288: fa1ff0ef jal ra,80002228 <terminate>
8000228c <printhex>:
8000228c: fe010113 addi sp,sp,-32
80002290: 01b10793 addi a5,sp,27
80002294: 00b10e93 addi t4,sp,11
80002298: 00900e13 li t3,9
8000229c: 00f57693 andi a3,a0,15
800022a0: 01c59313 slli t1,a1,0x1c
800022a4: 00455513 srli a0,a0,0x4
800022a8: 05700613 li a2,87
800022ac: 0ff6f713 andi a4,a3,255
800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
800022b4: 03000613 li a2,48
800022b8: 00c70733 add a4,a4,a2
800022bc: 00e78023 sb a4,0(a5)
800022c0: fff78793 addi a5,a5,-1
800022c4: 00a36533 or a0,t1,a0
800022c8: 0045d593 srli a1,a1,0x4
800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
800022d0: 00c14583 lbu a1,12(sp)
800022d4: 00010e23 sb zero,28(sp)
800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
800022dc: 00c10513 addi a0,sp,12
800022e0: fffff697 auipc a3,0xfffff
800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
800022e8: fffff617 auipc a2,0xfffff
800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
800022f0: 0006a703 lw a4,0(a3)
800022f4: 0046a783 lw a5,4(a3)
800022f8: 00058813 mv a6,a1
800022fc: 00150513 addi a0,a0,1
80002300: 00f76733 or a4,a4,a5
80002304: 010108b7 lui a7,0x1010
80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
8000230c: 00000713 li a4,0
80002310: 00e62023 sw a4,0(a2)
80002314: 00000793 li a5,0
80002318: 00f62223 sw a5,4(a2)
8000231c: 0006a703 lw a4,0(a3)
80002320: 0046a783 lw a5,4(a3)
80002324: 00f76733 or a4,a4,a5
80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
8000232c: 00054583 lbu a1,0(a0)
80002330: 0106a023 sw a6,0(a3)
80002334: 0116a223 sw a7,4(a3)
80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
8000233c: 02010113 addi sp,sp,32
80002340: 00008067 ret
80002344 <handle_fault>:
80002344: ff010113 addi sp,sp,-16
80002348: fffff6b7 lui a3,0xfffff
8000234c: 00112623 sw ra,12(sp)
80002350: 00812423 sw s0,8(sp)
80002354: 00912223 sw s1,4(sp)
80002358: 00d50733 add a4,a0,a3
8000235c: 0003e7b7 lui a5,0x3e
80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
80002364: 00c55613 srli a2,a0,0xc
80002368: 40060e13 addi t3,a2,1024
8000236c: 00002317 auipc t1,0x2
80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
80002374: 002e1793 slli a5,t3,0x2
80002378: 00f307b3 add a5,t1,a5
8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
80002380: 00d57533 and a0,a0,a3
80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
80002388: 00004797 auipc a5,0x4
8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
80002390: 0007a583 lw a1,0(a5)
80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
80002398: 0045a783 lw a5,4(a1)
8000239c: 00004717 auipc a4,0x4
800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
800023a4: 00072703 lw a4,0(a4)
800023a8: 00004697 auipc a3,0x4
800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
800023b4: 0005a703 lw a4,0(a1)
800023b8: 002e1793 slli a5,t3,0x2
800023bc: 00f307b3 add a5,t1,a5
800023c0: 00c75713 srli a4,a4,0xc
800023c4: 00a71713 slli a4,a4,0xa
800023c8: 0df76e93 ori t4,a4,223
800023cc: 01f76693 ori a3,a4,31
800023d0: 01d7a023 sw t4,0(a5)
800023d4: 12050073 sfence.vma a0
800023d8: 00004717 auipc a4,0x4
800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
800023e0: 00361793 slli a5,a2,0x3
800023e4: 00f707b3 add a5,a4,a5
800023e8: 0007a703 lw a4,0(a5)
800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
800023f0: 0005a703 lw a4,0(a1)
800023f4: 00e7a023 sw a4,0(a5)
800023f8: 0045a703 lw a4,4(a1)
800023fc: 00e7a223 sw a4,4(a5)
80002400: 000407b7 lui a5,0x40
80002404: 1007a5f3 csrrs a1,sstatus,a5
80002408: ffc007b7 lui a5,0xffc00
8000240c: 00f507b3 add a5,a0,a5
80002410: 00001637 lui a2,0x1
80002414: 00050713 mv a4,a0
80002418: 00c78633 add a2,a5,a2
8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
80002420: 0047ae83 lw t4,4(a5)
80002424: 0087a883 lw a7,8(a5)
80002428: 00c7a803 lw a6,12(a5)
8000242c: 01e72023 sw t5,0(a4)
80002430: 01d72223 sw t4,4(a4)
80002434: 01172423 sw a7,8(a4)
80002438: 01072623 sw a6,12(a4)
8000243c: 01078793 addi a5,a5,16
80002440: 01070713 addi a4,a4,16
80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
80002448: 10059073 csrw sstatus,a1
8000244c: 002e1e13 slli t3,t3,0x2
80002450: 01c30333 add t1,t1,t3
80002454: 00d32023 sw a3,0(t1)
80002458: 12050073 sfence.vma a0
8000245c: 0000100f fence.i
80002460: 00c12083 lw ra,12(sp)
80002464: 00812403 lw s0,8(sp)
80002468: 00412483 lw s1,4(sp)
8000246c: 01010113 addi sp,sp,16
80002470: 00008067 ret
80002474: 04077693 andi a3,a4,64
80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
8000247c: 04076713 ori a4,a4,64
80002480: 00e7a023 sw a4,0(a5)
80002484: 12050073 sfence.vma a0
80002488: 00c12083 lw ra,12(sp)
8000248c: 00812403 lw s0,8(sp)
80002490: 00412483 lw s1,4(sp)
80002494: 01010113 addi sp,sp,16
80002498: 00008067 ret
8000249c: 08077693 andi a3,a4,128
800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
800024a4: 00f00693 li a3,15
800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
800024ac: 08076713 ori a4,a4,128
800024b0: 00e7a023 sw a4,0(a5)
800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
800024b8: 00004797 auipc a5,0x4
800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
800024c4: 04100513 li a0,65
800024c8: 00000597 auipc a1,0x0
800024cc: 79058593 addi a1,a1,1936 # 80002c58 <pass+0xc>
800024d0: fffff697 auipc a3,0xfffff
800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
800024d8: fffff617 auipc a2,0xfffff
800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
800024e0: 0006a703 lw a4,0(a3)
800024e4: 0046a783 lw a5,4(a3)
800024e8: 00050313 mv t1,a0
800024ec: 00158593 addi a1,a1,1
800024f0: 00f76733 or a4,a4,a5
800024f4: 010103b7 lui t2,0x1010
800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
800024fc: 00000793 li a5,0
80002500: 00f62023 sw a5,0(a2)
80002504: 00000813 li a6,0
80002508: 01062223 sw a6,4(a2)
8000250c: 0006a703 lw a4,0(a3)
80002510: 0046a783 lw a5,4(a3)
80002514: 00f76733 or a4,a4,a5
80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
8000251c: 0005c503 lbu a0,0(a1)
80002520: 0066a023 sw t1,0(a3)
80002524: 0076a223 sw t2,4(a3)
80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
8000252c: 00300513 li a0,3
80002530: cf9ff0ef jal ra,80002228 <terminate>
80002534: 04100513 li a0,65
80002538: 00000597 auipc a1,0x0
8000253c: 7ac58593 addi a1,a1,1964 # 80002ce4 <pass+0x98>
80002540: fffff697 auipc a3,0xfffff
80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
80002548: fffff617 auipc a2,0xfffff
8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
80002550: 0006a703 lw a4,0(a3)
80002554: 0046a783 lw a5,4(a3)
80002558: 00050f13 mv t5,a0
8000255c: 00158593 addi a1,a1,1
80002560: 00f76733 or a4,a4,a5
80002564: 01010fb7 lui t6,0x1010
80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
8000256c: 00000793 li a5,0
80002570: 00f62023 sw a5,0(a2)
80002574: 00000813 li a6,0
80002578: 01062223 sw a6,4(a2)
8000257c: 0006a703 lw a4,0(a3)
80002580: 0046a783 lw a5,4(a3)
80002584: 00f76733 or a4,a4,a5
80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
8000258c: 0005c503 lbu a0,0(a1)
80002590: 01e6a023 sw t5,0(a3)
80002594: 01f6a223 sw t6,4(a3)
80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
800025a0: 04100513 li a0,65
800025a4: 00000597 auipc a1,0x0
800025a8: 75858593 addi a1,a1,1880 # 80002cfc <pass+0xb0>
800025ac: fffff697 auipc a3,0xfffff
800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
800025b4: fffff617 auipc a2,0xfffff
800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
800025bc: 0006a703 lw a4,0(a3)
800025c0: 0046a783 lw a5,4(a3)
800025c4: 00050813 mv a6,a0
800025c8: 00158593 addi a1,a1,1
800025cc: 00f76733 or a4,a4,a5
800025d0: 010108b7 lui a7,0x1010
800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
800025d8: 00000713 li a4,0
800025dc: 00e62023 sw a4,0(a2)
800025e0: 00000793 li a5,0
800025e4: 00f62223 sw a5,4(a2)
800025e8: 0006a703 lw a4,0(a3)
800025ec: 0046a783 lw a5,4(a3)
800025f0: 00f76733 or a4,a4,a5
800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
800025f8: 0005c503 lbu a0,0(a1)
800025fc: 0106a023 sw a6,0(a3)
80002600: 0116a223 sw a7,4(a3)
80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
8000260c: 04100793 li a5,65
80002610: 00000597 auipc a1,0x0
80002614: 68c58593 addi a1,a1,1676 # 80002c9c <pass+0x50>
80002618: fffff697 auipc a3,0xfffff
8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
80002620: fffff617 auipc a2,0xfffff
80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
80002628: 0006a803 lw a6,0(a3)
8000262c: 0046a883 lw a7,4(a3)
80002630: 00078413 mv s0,a5
80002634: 00158593 addi a1,a1,1
80002638: 01186833 or a6,a6,a7
8000263c: 010104b7 lui s1,0x1010
80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
80002644: 00000793 li a5,0
80002648: 00f62023 sw a5,0(a2)
8000264c: 00000813 li a6,0
80002650: 01062223 sw a6,4(a2)
80002654: 0006a703 lw a4,0(a3)
80002658: 0046a783 lw a5,4(a3)
8000265c: 00f76733 or a4,a4,a5
80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
80002664: 0005c783 lbu a5,0(a1)
80002668: 0086a023 sw s0,0(a3)
8000266c: 0096a223 sw s1,4(a3)
80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
80002678 <handle_trap>:
80002678: 08c52583 lw a1,140(a0)
8000267c: fb010113 addi sp,sp,-80
80002680: 03412c23 sw s4,56(sp)
80002684: 04112623 sw ra,76(sp)
80002688: 04812423 sw s0,72(sp)
8000268c: 04912223 sw s1,68(sp)
80002690: 05212023 sw s2,64(sp)
80002694: 03312e23 sw s3,60(sp)
80002698: 03512a23 sw s5,52(sp)
8000269c: 03612823 sw s6,48(sp)
800026a0: 03712623 sw s7,44(sp)
800026a4: 03812423 sw s8,40(sp)
800026a8: 03912223 sw s9,36(sp)
800026ac: 03a12023 sw s10,32(sp)
800026b0: 01b12e23 sw s11,28(sp)
800026b4: 00800793 li a5,8
800026b8: 00050a13 mv s4,a0
800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
800026c0: 00200793 li a5,2
800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
800026c8: ff458793 addi a5,a1,-12
800026cc: 00100713 li a4,1
800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
800026d4: 00f00793 li a5,15
800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
800026dc: 088a2503 lw a0,136(s4)
800026e0: c65ff0ef jal ra,80002344 <handle_fault>
800026e4: 04812403 lw s0,72(sp)
800026e8: 04c12083 lw ra,76(sp)
800026ec: 04412483 lw s1,68(sp)
800026f0: 04012903 lw s2,64(sp)
800026f4: 03c12983 lw s3,60(sp)
800026f8: 03412a83 lw s5,52(sp)
800026fc: 03012b03 lw s6,48(sp)
80002700: 02c12b83 lw s7,44(sp)
80002704: 02812c03 lw s8,40(sp)
80002708: 02412c83 lw s9,36(sp)
8000270c: 02012d03 lw s10,32(sp)
80002710: 01c12d83 lw s11,28(sp)
80002714: 000a0513 mv a0,s4
80002718: 03812a03 lw s4,56(sp)
8000271c: 05010113 addi sp,sp,80
80002720: 91dfd06f j 8000003c <pop_tf>
80002724: 08452703 lw a4,132(a0)
80002728: 00377793 andi a5,a4,3
8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
80002734: 00301073 fssr zero
80002738: 00072703 lw a4,0(a4)
8000273c: 0007a783 lw a5,0(a5)
80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
80002744: 04100513 li a0,65
80002748: 00000597 auipc a1,0x0
8000274c: 67c58593 addi a1,a1,1660 # 80002dc4 <pass+0x178>
80002750: fffff697 auipc a3,0xfffff
80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
80002758: fffff617 auipc a2,0xfffff
8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
80002760: 0006a703 lw a4,0(a3)
80002764: 0046a783 lw a5,4(a3)
80002768: 00050813 mv a6,a0
8000276c: 00158593 addi a1,a1,1
80002770: 00f76733 or a4,a4,a5
80002774: 010108b7 lui a7,0x1010
80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
8000277c: 00000713 li a4,0
80002780: 00e62023 sw a4,0(a2)
80002784: 00000793 li a5,0
80002788: 00f62223 sw a5,4(a2)
8000278c: 0006a703 lw a4,0(a3)
80002790: 0046a783 lw a5,4(a3)
80002794: 00f76733 or a4,a4,a5
80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
8000279c: 0005c503 lbu a0,0(a1)
800027a0: 0106a023 sw a6,0(a3)
800027a4: 0116a223 sw a7,4(a3)
800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
800027ac: 00300513 li a0,3
800027b0: a79ff0ef jal ra,80002228 <terminate>
800027b4: 00100513 li a0,1
800027b8: a71ff0ef jal ra,80002228 <terminate>
800027bc: 00000597 auipc a1,0x0
800027c0: 5e458593 addi a1,a1,1508 # 80002da0 <pass+0x154>
800027c4: 04100613 li a2,65
800027c8: fffff697 auipc a3,0xfffff
800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
800027d0: fffff517 auipc a0,0xfffff
800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
800027d8: 0006a703 lw a4,0(a3)
800027dc: 0046a783 lw a5,4(a3)
800027e0: 00060e13 mv t3,a2
800027e4: 00158593 addi a1,a1,1
800027e8: 00f76733 or a4,a4,a5
800027ec: 01010eb7 lui t4,0x1010
800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
800027f4: 00000793 li a5,0
800027f8: 00f52023 sw a5,0(a0)
800027fc: 00000813 li a6,0
80002800: 01052223 sw a6,4(a0)
80002804: 0006a703 lw a4,0(a3)
80002808: 0046a783 lw a5,4(a3)
8000280c: 00f76733 or a4,a4,a5
80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
80002814: 0005c603 lbu a2,0(a1)
80002818: 01c6a023 sw t3,0(a3)
8000281c: 01d6a223 sw t4,4(a3)
80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
80002824: f89ff06f j 800027ac <handle_trap+0x134>
80002828: 02852783 lw a5,40(a0)
8000282c: 00001a37 lui s4,0x1
80002830: 00004b17 auipc s6,0x4
80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
80002838: 00f12223 sw a5,4(sp)
8000283c: 00001d17 auipc s10,0x1
80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
80002844: 00040cb7 lui s9,0x40
80002848: ffc00c37 lui s8,0xffc00
8000284c: 0003fab7 lui s5,0x3f
80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
80002854: 00f72223 sw a5,4(a4)
80002858: 00004717 auipc a4,0x4
8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
80002860: 000017b7 lui a5,0x1
80002864: 00fa0a33 add s4,s4,a5
80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
8000286c: 00ca5713 srli a4,s4,0xc
80002870: 00371b93 slli s7,a4,0x3
80002874: 017b0633 add a2,s6,s7
80002878: 00062603 lw a2,0(a2)
8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
80002880: 40070713 addi a4,a4,1024
80002884: 00271713 slli a4,a4,0x2
80002888: 00ed0733 add a4,s10,a4
8000288c: 00072703 lw a4,0(a4)
80002890: 04077613 andi a2,a4,64
80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
80002898: 00e12623 sw a4,12(sp)
8000289c: 100cadf3 csrrs s11,sstatus,s9
800028a0: 018a0833 add a6,s4,s8
800028a4: 00001637 lui a2,0x1
800028a8: 00080593 mv a1,a6
800028ac: 000a0513 mv a0,s4
800028b0: 01012423 sw a6,8(sp)
800028b4: 855ff0ef jal ra,80002108 <memcmp>
800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
800028bc: 00c12703 lw a4,12(sp)
800028c0: 00812803 lw a6,8(sp)
800028c4: 08077713 andi a4,a4,128
800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
800028cc: 00001637 lui a2,0x1
800028d0: 00080593 mv a1,a6
800028d4: 000a0513 mv a0,s4
800028d8: f28ff0ef jal ra,80002000 <memcpy>
800028dc: 017b07b3 add a5,s6,s7
800028e0: 100d9073 csrw sstatus,s11
800028e4: 00004717 auipc a4,0x4
800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
800028ec: 00072703 lw a4,0(a4)
800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
800028f8: 00004717 auipc a4,0x4
800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
80002900: 00004717 auipc a4,0x4
80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
8000290c: 04100593 li a1,65
80002910: 00000617 auipc a2,0x0
80002914: 4e060613 addi a2,a2,1248 # 80002df0 <pass+0x1a4>
80002918: ffffe697 auipc a3,0xffffe
8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
80002920: ffffe517 auipc a0,0xffffe
80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
80002928: 0006a703 lw a4,0(a3)
8000292c: 0046a783 lw a5,4(a3)
80002930: 00058313 mv t1,a1
80002934: 00160613 addi a2,a2,1
80002938: 00f76733 or a4,a4,a5
8000293c: 010103b7 lui t2,0x1010
80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
80002944: 00000793 li a5,0
80002948: 00f52023 sw a5,0(a0)
8000294c: 00000813 li a6,0
80002950: 01052223 sw a6,4(a0)
80002954: 0006a703 lw a4,0(a3)
80002958: 0046a783 lw a5,4(a3)
8000295c: 00f76733 or a4,a4,a5
80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
80002964: 00064583 lbu a1,0(a2)
80002968: 0066a023 sw t1,0(a3)
8000296c: 0076a223 sw t2,4(a3)
80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
80002974: e39ff06f j 800027ac <handle_trap+0x134>
80002978: 04100793 li a5,65
8000297c: 00000617 auipc a2,0x0
80002980: 3f060613 addi a2,a2,1008 # 80002d6c <pass+0x120>
80002984: ffffe697 auipc a3,0xffffe
80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
8000298c: ffffe597 auipc a1,0xffffe
80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
80002994: 00078413 mv s0,a5
80002998: 00160613 addi a2,a2,1
8000299c: 010104b7 lui s1,0x1010
800029a0: 0006a703 lw a4,0(a3)
800029a4: 0046a783 lw a5,4(a3)
800029a8: 00f76733 or a4,a4,a5
800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
800029b0: 00000793 li a5,0
800029b4: 00000813 li a6,0
800029b8: 00f5a023 sw a5,0(a1)
800029bc: 0105a223 sw a6,4(a1)
800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
800029c4: 04100793 li a5,65
800029c8: 00000617 auipc a2,0x0
800029cc: 37060613 addi a2,a2,880 # 80002d38 <pass+0xec>
800029d0: ffffe697 auipc a3,0xffffe
800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
800029d8: ffffe597 auipc a1,0xffffe
800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
800029e0: 00078913 mv s2,a5
800029e4: 00160613 addi a2,a2,1
800029e8: 010109b7 lui s3,0x1010
800029ec: 0006a703 lw a4,0(a3)
800029f0: 0046a783 lw a5,4(a3)
800029f4: 00f76733 or a4,a4,a5
800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
800029fc: 00000793 li a5,0
80002a00: 00000813 li a6,0
80002a04: 00f5a023 sw a5,0(a1)
80002a08: 0105a223 sw a6,4(a1)
80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
80002a10: 00412503 lw a0,4(sp)
80002a14: 815ff0ef jal ra,80002228 <terminate>
80002a18: 00064783 lbu a5,0(a2)
80002a1c: 0086a023 sw s0,0(a3)
80002a20: 0096a223 sw s1,4(a3)
80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
80002a28: d85ff06f j 800027ac <handle_trap+0x134>
80002a2c: 00064783 lbu a5,0(a2)
80002a30: 0126a023 sw s2,0(a3)
80002a34: 0136a223 sw s3,4(a3)
80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
80002a40 <vm_boot>:
80002a40: f14027f3 csrr a5,mhartid
80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
80002a48: 00002797 auipc a5,0x2
80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
80002a50: 00c7d793 srli a5,a5,0xc
80002a54: 00a79793 slli a5,a5,0xa
80002a58: 0017e793 ori a5,a5,1
80002a5c: 00001697 auipc a3,0x1
80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
80002a64: 200007b7 lui a5,0x20000
80002a68: 00001717 auipc a4,0x1
80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
80002a74: f6010113 addi sp,sp,-160
80002a78: 00002697 auipc a3,0x2
80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
80002a80: 00c75793 srli a5,a4,0xc
80002a84: 80000737 lui a4,0x80000
80002a88: 08112e23 sw ra,156(sp)
80002a8c: 08812c23 sw s0,152(sp)
80002a90: 00e7e7b3 or a5,a5,a4
80002a94: 18079073 csrw satp,a5
80002a98: 01f00793 li a5,31
80002a9c: fff00713 li a4,-1
80002aa0: 00000297 auipc t0,0x0
80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
80002aa8: 305292f3 csrrw t0,mtvec,t0
80002aac: 3b071073 csrw pmpaddr0,a4
80002ab0: 3a079073 csrw pmpcfg0,a5
80002ab4: 7fbfd797 auipc a5,0x7fbfd
80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
80002abc: 10579073 csrw stvec,a5
80002ac0: 340027f3 csrr a5,mscratch
80002ac4: 7fc00837 lui a6,0x7fc00
80002ac8: 010787b3 add a5,a5,a6
80002acc: 14079073 csrw sscratch,a5
80002ad0: 0000b7b7 lui a5,0xb
80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
80002ad8: 30279073 csrw medeleg,a5
80002adc: 0001e7b7 lui a5,0x1e
80002ae0: 30079073 csrw mstatus,a5
80002ae4: 30405073 csrwi mie,0
80002ae8: 7fc03797 auipc a5,0x7fc03
80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
80002af0: 00004717 auipc a4,0x4
80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
80002af8: 7fc03797 auipc a5,0x7fc03
80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
80002b00: 00004717 auipc a4,0x4
80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
80002b08: 000808b7 lui a7,0x80
80002b0c: 00003717 auipc a4,0x3
80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
80002b14: 00003317 auipc t1,0x3
80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
80002b1c: 02200793 li a5,34
80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
80002b28: 0017d613 srli a2,a5,0x1
80002b2c: 011786b3 add a3,a5,a7
80002b30: 00f647b3 xor a5,a2,a5
80002b34: 010705b3 add a1,a4,a6
80002b38: 00c69693 slli a3,a3,0xc
80002b3c: 00579793 slli a5,a5,0x5
80002b40: 00d72023 sw a3,0(a4)
80002b44: 00b72223 sw a1,4(a4)
80002b48: 0207f793 andi a5,a5,32
80002b4c: 00870713 addi a4,a4,8
80002b50: 00f667b3 or a5,a2,a5
80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
80002b58: 00050413 mv s0,a0
80002b5c: 09000613 li a2,144
80002b60: 00000593 li a1,0
80002b64: 00010513 mv a0,sp
80002b68: 00003797 auipc a5,0x3
80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
80002b70: cecff0ef jal ra,8000205c <memset>
80002b74: 800007b7 lui a5,0x80000
80002b78: 00f40433 add s0,s0,a5
80002b7c: 00010513 mv a0,sp
80002b80: 08812223 sw s0,132(sp)
80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
80002b88: 09c12083 lw ra,156(sp)
80002b8c: 09812403 lw s0,152(sp)
80002b90: 0a010113 addi sp,sp,160
80002b94: 00008067 ret
80002b98: 0a54c7b7 lui a5,0xa54c
80002b9c: 00080637 lui a2,0x80
80002ba0: 2ea78793 addi a5,a5,746 # a54c2ea <_start-0x75ab3d16>
80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
80002ba8: 800005b7 lui a1,0x80000
80002bac: 00c7f733 and a4,a5,a2
80002bb0: 0017f693 andi a3,a5,1
80002bb4: 00b70733 add a4,a4,a1
80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
80002bbc: 0007202f amoadd.w zero,zero,(a4)
80002bc0: 0017d793 srli a5,a5,0x1
80002bc4: 00c7f733 and a4,a5,a2
80002bc8: 0017f693 andi a3,a5,1
80002bcc: 00b70733 add a4,a4,a1
80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
80002bd4: 00072003 lw zero,0(a4)
80002bd8: 0017d793 srli a5,a5,0x1
80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
80002be0 <userstart>:
80002be0: 80000537 lui a0,0x80000
80002be4: 80000593 li a1,-2048
80002be8: 00000697 auipc a3,0x0
80002bec: 41868693 addi a3,a3,1048 # 80003000 <begin_signature>
80002bf0: 00a6a023 sw a0,0(a3)
80002bf4: 60b6a72f amoand.w a4,a1,(a3)
80002bf8: 80000eb7 lui t4,0x80000
80002bfc: 00200193 li gp,2
80002c00: 03d71e63 bne a4,t4,80002c3c <fail>
80002c04 <test_3>:
80002c04: 0006a783 lw a5,0(a3)
80002c08: 80000eb7 lui t4,0x80000
80002c0c: 00300193 li gp,3
80002c10: 03d79663 bne a5,t4,80002c3c <fail>
80002c14 <test_4>:
80002c14: 800005b7 lui a1,0x80000
80002c18: 60b6a72f amoand.w a4,a1,(a3)
80002c1c: 80000eb7 lui t4,0x80000
80002c20: 00400193 li gp,4
80002c24: 01d71c63 bne a4,t4,80002c3c <fail>
80002c28 <test_5>:
80002c28: 0006a783 lw a5,0(a3)
80002c2c: 80000eb7 lui t4,0x80000
80002c30: 00500193 li gp,5
80002c34: 01d79463 bne a5,t4,80002c3c <fail>
80002c38: 00301a63 bne zero,gp,80002c4c <pass>
80002c3c <fail>:
80002c3c: 00119513 slli a0,gp,0x1
80002c40: 00050063 beqz a0,80002c40 <fail+0x4>
80002c44: 00156513 ori a0,a0,1
80002c48: 00000073 ecall
80002c4c <pass>:
80002c4c: 00100513 li a0,1
80002c50: 00000073 ecall
80002c54: c0001073 unimp

BIN
Tests/isa/rv32ua-v-amomax_w Normal file

Binary file not shown.

View File

@@ -0,0 +1,940 @@
rv32ua-v-amomax_w: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 00c0006f j 8000000c <handle_reset>
80000004 <nmi_vector>:
80000004: 2780206f j 8000227c <wtf>
80000008 <trap_vector>:
80000008: 2740206f j 8000227c <wtf>
8000000c <handle_reset>:
8000000c: 00000297 auipc t0,0x0
80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
80000014: 30529073 csrw mtvec,t0
80000018: 00007117 auipc sp,0x7
8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
80000020: f14022f3 csrr t0,mhartid
80000024: 00c29293 slli t0,t0,0xc
80000028: 00510133 add sp,sp,t0
8000002c: 34011073 csrw mscratch,sp
80000030: 00003517 auipc a0,0x3
80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
80000038: 2090206f j 80002a40 <vm_boot>
8000003c <pop_tf>:
8000003c: 08452283 lw t0,132(a0)
80000040: 14129073 csrw sepc,t0
80000044: 00452083 lw ra,4(a0)
80000048: 00852103 lw sp,8(a0)
8000004c: 00c52183 lw gp,12(a0)
80000050: 01052203 lw tp,16(a0)
80000054: 01452283 lw t0,20(a0)
80000058: 01852303 lw t1,24(a0)
8000005c: 01c52383 lw t2,28(a0)
80000060: 02052403 lw s0,32(a0)
80000064: 02452483 lw s1,36(a0)
80000068: 02c52583 lw a1,44(a0)
8000006c: 03052603 lw a2,48(a0)
80000070: 03452683 lw a3,52(a0)
80000074: 03852703 lw a4,56(a0)
80000078: 03c52783 lw a5,60(a0)
8000007c: 04052803 lw a6,64(a0)
80000080: 04452883 lw a7,68(a0)
80000084: 04852903 lw s2,72(a0)
80000088: 04c52983 lw s3,76(a0)
8000008c: 05052a03 lw s4,80(a0)
80000090: 05452a83 lw s5,84(a0)
80000094: 05852b03 lw s6,88(a0)
80000098: 05c52b83 lw s7,92(a0)
8000009c: 06052c03 lw s8,96(a0)
800000a0: 06452c83 lw s9,100(a0)
800000a4: 06852d03 lw s10,104(a0)
800000a8: 06c52d83 lw s11,108(a0)
800000ac: 07052e03 lw t3,112(a0)
800000b0: 07452e83 lw t4,116(a0)
800000b4: 07852f03 lw t5,120(a0)
800000b8: 07c52f83 lw t6,124(a0)
800000bc: 02852503 lw a0,40(a0)
800000c0: 10200073 sret
800000c4 <trap_entry>:
800000c4: 14011173 csrrw sp,sscratch,sp
800000c8: 00112223 sw ra,4(sp)
800000cc: 00312623 sw gp,12(sp)
800000d0: 00412823 sw tp,16(sp)
800000d4: 00512a23 sw t0,20(sp)
800000d8: 00612c23 sw t1,24(sp)
800000dc: 00712e23 sw t2,28(sp)
800000e0: 02812023 sw s0,32(sp)
800000e4: 02912223 sw s1,36(sp)
800000e8: 02a12423 sw a0,40(sp)
800000ec: 02b12623 sw a1,44(sp)
800000f0: 02c12823 sw a2,48(sp)
800000f4: 02d12a23 sw a3,52(sp)
800000f8: 02e12c23 sw a4,56(sp)
800000fc: 02f12e23 sw a5,60(sp)
80000100: 05012023 sw a6,64(sp)
80000104: 05112223 sw a7,68(sp)
80000108: 05212423 sw s2,72(sp)
8000010c: 05312623 sw s3,76(sp)
80000110: 05412823 sw s4,80(sp)
80000114: 05512a23 sw s5,84(sp)
80000118: 05612c23 sw s6,88(sp)
8000011c: 05712e23 sw s7,92(sp)
80000120: 07812023 sw s8,96(sp)
80000124: 07912223 sw s9,100(sp)
80000128: 07a12423 sw s10,104(sp)
8000012c: 07b12623 sw s11,108(sp)
80000130: 07c12823 sw t3,112(sp)
80000134: 07d12a23 sw t4,116(sp)
80000138: 07e12c23 sw t5,120(sp)
8000013c: 07f12e23 sw t6,124(sp)
80000140: 140112f3 csrrw t0,sscratch,sp
80000144: 00512423 sw t0,8(sp)
80000148: 100022f3 csrr t0,sstatus
8000014c: 08512023 sw t0,128(sp)
80000150: 141022f3 csrr t0,sepc
80000154: 08512223 sw t0,132(sp)
80000158: 143022f3 csrr t0,sbadaddr
8000015c: 08512423 sw t0,136(sp)
80000160: 142022f3 csrr t0,scause
80000164: 08512623 sw t0,140(sp)
80000168: 00010513 mv a0,sp
8000016c: 50c0206f j 80002678 <handle_trap>
Disassembly of section .text:
80002000 <memcpy>:
80002000: 00c5e7b3 or a5,a1,a2
80002004: 00f567b3 or a5,a0,a5
80002008: 0037f793 andi a5,a5,3
8000200c: 00c506b3 add a3,a0,a2
80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
80002014: 00c58633 add a2,a1,a2
80002018: 00050793 mv a5,a0
8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
80002020: 00158593 addi a1,a1,1
80002024: fff5c703 lbu a4,-1(a1)
80002028: 00178793 addi a5,a5,1
8000202c: fee78fa3 sb a4,-1(a5)
80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
80002034: 00008067 ret
80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
8000203c: 00050793 mv a5,a0
80002040: 00458593 addi a1,a1,4
80002044: ffc5a703 lw a4,-4(a1)
80002048: 00478793 addi a5,a5,4
8000204c: fee7ae23 sw a4,-4(a5)
80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
80002054: 00008067 ret
80002058: 00008067 ret
8000205c <memset>:
8000205c: 00c567b3 or a5,a0,a2
80002060: 0037f793 andi a5,a5,3
80002064: 00c50633 add a2,a0,a2
80002068: 02078063 beqz a5,80002088 <memset+0x2c>
8000206c: 0ff5f593 andi a1,a1,255
80002070: 00050793 mv a5,a0
80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
80002078: 00178793 addi a5,a5,1
8000207c: feb78fa3 sb a1,-1(a5)
80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
80002084: 00008067 ret
80002088: 0ff5f593 andi a1,a1,255
8000208c: 00859793 slli a5,a1,0x8
80002090: 00b7e7b3 or a5,a5,a1
80002094: 01079593 slli a1,a5,0x10
80002098: 00f5e5b3 or a1,a1,a5
8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
800020a0: 00050793 mv a5,a0
800020a4: 00478793 addi a5,a5,4
800020a8: feb7ae23 sw a1,-4(a5)
800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
800020b0: 00008067 ret
800020b4: 00008067 ret
800020b8 <strlen>:
800020b8: 00054783 lbu a5,0(a0)
800020bc: 00050713 mv a4,a0
800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
800020c4: 00150513 addi a0,a0,1
800020c8: 00054783 lbu a5,0(a0)
800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
800020d0: 40e50533 sub a0,a0,a4
800020d4: 00008067 ret
800020d8: 00000513 li a0,0
800020dc: 00008067 ret
800020e0 <strcmp>:
800020e0: 00150513 addi a0,a0,1
800020e4: fff54783 lbu a5,-1(a0)
800020e8: 00158593 addi a1,a1,1
800020ec: fff5c703 lbu a4,-1(a1)
800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
800020f8: 40e78533 sub a0,a5,a4
800020fc: 00008067 ret
80002100: 00000793 li a5,0
80002104: ff5ff06f j 800020f8 <strcmp+0x18>
80002108 <memcmp>:
80002108: 00b567b3 or a5,a0,a1
8000210c: 0037f793 andi a5,a5,3
80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
80002114: ffc67693 andi a3,a2,-4
80002118: 00d506b3 add a3,a0,a3
8000211c: 00050813 mv a6,a0
80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
80002124: 00052703 lw a4,0(a0)
80002128: 0005a783 lw a5,0(a1)
8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
80002130: 0240006f j 80002154 <memcmp+0x4c>
80002134: 00052703 lw a4,0(a0)
80002138: 0005a783 lw a5,0(a1)
8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
80002140: 00450513 addi a0,a0,4
80002144: 00458593 addi a1,a1,4
80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
8000214c: 41050833 sub a6,a0,a6
80002150: 41060633 sub a2,a2,a6
80002154: 00c58633 add a2,a1,a2
80002158: 0140006f j 8000216c <memcmp+0x64>
8000215c: 00158593 addi a1,a1,1
80002160: fff54783 lbu a5,-1(a0)
80002164: fff5c703 lbu a4,-1(a1)
80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
8000216c: 00150513 addi a0,a0,1
80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
80002174: 00000513 li a0,0
80002178: 00008067 ret
8000217c: 40e78533 sub a0,a5,a4
80002180: 00008067 ret
80002184 <strcpy>:
80002184: 00050793 mv a5,a0
80002188: 00158593 addi a1,a1,1
8000218c: fff5c703 lbu a4,-1(a1)
80002190: 00178793 addi a5,a5,1
80002194: fee78fa3 sb a4,-1(a5)
80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
8000219c: 00008067 ret
800021a0 <atol>:
800021a0: 00054783 lbu a5,0(a0)
800021a4: 02000713 li a4,32
800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
800021ac: 00150513 addi a0,a0,1
800021b0: 00054783 lbu a5,0(a0)
800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
800021b8: fd578713 addi a4,a5,-43
800021bc: 0fd77713 andi a4,a4,253
800021c0: 04070263 beqz a4,80002204 <atol+0x64>
800021c4: 00054683 lbu a3,0(a0)
800021c8: 00050793 mv a5,a0
800021cc: 00000613 li a2,0
800021d0: 04068863 beqz a3,80002220 <atol+0x80>
800021d4: 00000513 li a0,0
800021d8: 00178793 addi a5,a5,1
800021dc: fd068593 addi a1,a3,-48
800021e0: 00251713 slli a4,a0,0x2
800021e4: 0007c683 lbu a3,0(a5)
800021e8: 00a70533 add a0,a4,a0
800021ec: 00151513 slli a0,a0,0x1
800021f0: 00a58533 add a0,a1,a0
800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
800021f8: 00060463 beqz a2,80002200 <atol+0x60>
800021fc: 40a00533 neg a0,a0
80002200: 00008067 ret
80002204: 00154683 lbu a3,1(a0)
80002208: fd378793 addi a5,a5,-45
8000220c: 0017b613 seqz a2,a5
80002210: 00150793 addi a5,a0,1
80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
80002218: 00000513 li a0,0
8000221c: fddff06f j 800021f8 <atol+0x58>
80002220: 00000513 li a0,0
80002224: 00008067 ret
80002228 <terminate>:
80002228: fffff697 auipc a3,0xfffff
8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
80002230: 0006a703 lw a4,0(a3)
80002234: 0046a783 lw a5,4(a3)
80002238: 00050813 mv a6,a0
8000223c: 41f55893 srai a7,a0,0x1f
80002240: 00f76733 or a4,a4,a5
80002244: 02070663 beqz a4,80002270 <terminate+0x48>
80002248: fffff617 auipc a2,0xfffff
8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
80002250: 00000713 li a4,0
80002254: 00e62023 sw a4,0(a2)
80002258: 00000793 li a5,0
8000225c: 00f62223 sw a5,4(a2)
80002260: 0006a703 lw a4,0(a3)
80002264: 0046a783 lw a5,4(a3)
80002268: 00f76733 or a4,a4,a5
8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
80002270: 0106a023 sw a6,0(a3)
80002274: 0116a223 sw a7,4(a3)
80002278: 0000006f j 80002278 <terminate+0x50>
8000227c <wtf>:
8000227c: ff010113 addi sp,sp,-16
80002280: 34900513 li a0,841
80002284: 00112623 sw ra,12(sp)
80002288: fa1ff0ef jal ra,80002228 <terminate>
8000228c <printhex>:
8000228c: fe010113 addi sp,sp,-32
80002290: 01b10793 addi a5,sp,27
80002294: 00b10e93 addi t4,sp,11
80002298: 00900e13 li t3,9
8000229c: 00f57693 andi a3,a0,15
800022a0: 01c59313 slli t1,a1,0x1c
800022a4: 00455513 srli a0,a0,0x4
800022a8: 05700613 li a2,87
800022ac: 0ff6f713 andi a4,a3,255
800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
800022b4: 03000613 li a2,48
800022b8: 00c70733 add a4,a4,a2
800022bc: 00e78023 sb a4,0(a5)
800022c0: fff78793 addi a5,a5,-1
800022c4: 00a36533 or a0,t1,a0
800022c8: 0045d593 srli a1,a1,0x4
800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
800022d0: 00c14583 lbu a1,12(sp)
800022d4: 00010e23 sb zero,28(sp)
800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
800022dc: 00c10513 addi a0,sp,12
800022e0: fffff697 auipc a3,0xfffff
800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
800022e8: fffff617 auipc a2,0xfffff
800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
800022f0: 0006a703 lw a4,0(a3)
800022f4: 0046a783 lw a5,4(a3)
800022f8: 00058813 mv a6,a1
800022fc: 00150513 addi a0,a0,1
80002300: 00f76733 or a4,a4,a5
80002304: 010108b7 lui a7,0x1010
80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
8000230c: 00000713 li a4,0
80002310: 00e62023 sw a4,0(a2)
80002314: 00000793 li a5,0
80002318: 00f62223 sw a5,4(a2)
8000231c: 0006a703 lw a4,0(a3)
80002320: 0046a783 lw a5,4(a3)
80002324: 00f76733 or a4,a4,a5
80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
8000232c: 00054583 lbu a1,0(a0)
80002330: 0106a023 sw a6,0(a3)
80002334: 0116a223 sw a7,4(a3)
80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
8000233c: 02010113 addi sp,sp,32
80002340: 00008067 ret
80002344 <handle_fault>:
80002344: ff010113 addi sp,sp,-16
80002348: fffff6b7 lui a3,0xfffff
8000234c: 00112623 sw ra,12(sp)
80002350: 00812423 sw s0,8(sp)
80002354: 00912223 sw s1,4(sp)
80002358: 00d50733 add a4,a0,a3
8000235c: 0003e7b7 lui a5,0x3e
80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
80002364: 00c55613 srli a2,a0,0xc
80002368: 40060e13 addi t3,a2,1024
8000236c: 00002317 auipc t1,0x2
80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
80002374: 002e1793 slli a5,t3,0x2
80002378: 00f307b3 add a5,t1,a5
8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
80002380: 00d57533 and a0,a0,a3
80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
80002388: 00004797 auipc a5,0x4
8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
80002390: 0007a583 lw a1,0(a5)
80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
80002398: 0045a783 lw a5,4(a1)
8000239c: 00004717 auipc a4,0x4
800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
800023a4: 00072703 lw a4,0(a4)
800023a8: 00004697 auipc a3,0x4
800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
800023b4: 0005a703 lw a4,0(a1)
800023b8: 002e1793 slli a5,t3,0x2
800023bc: 00f307b3 add a5,t1,a5
800023c0: 00c75713 srli a4,a4,0xc
800023c4: 00a71713 slli a4,a4,0xa
800023c8: 0df76e93 ori t4,a4,223
800023cc: 01f76693 ori a3,a4,31
800023d0: 01d7a023 sw t4,0(a5)
800023d4: 12050073 sfence.vma a0
800023d8: 00004717 auipc a4,0x4
800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
800023e0: 00361793 slli a5,a2,0x3
800023e4: 00f707b3 add a5,a4,a5
800023e8: 0007a703 lw a4,0(a5)
800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
800023f0: 0005a703 lw a4,0(a1)
800023f4: 00e7a023 sw a4,0(a5)
800023f8: 0045a703 lw a4,4(a1)
800023fc: 00e7a223 sw a4,4(a5)
80002400: 000407b7 lui a5,0x40
80002404: 1007a5f3 csrrs a1,sstatus,a5
80002408: ffc007b7 lui a5,0xffc00
8000240c: 00f507b3 add a5,a0,a5
80002410: 00001637 lui a2,0x1
80002414: 00050713 mv a4,a0
80002418: 00c78633 add a2,a5,a2
8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
80002420: 0047ae83 lw t4,4(a5)
80002424: 0087a883 lw a7,8(a5)
80002428: 00c7a803 lw a6,12(a5)
8000242c: 01e72023 sw t5,0(a4)
80002430: 01d72223 sw t4,4(a4)
80002434: 01172423 sw a7,8(a4)
80002438: 01072623 sw a6,12(a4)
8000243c: 01078793 addi a5,a5,16
80002440: 01070713 addi a4,a4,16
80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
80002448: 10059073 csrw sstatus,a1
8000244c: 002e1e13 slli t3,t3,0x2
80002450: 01c30333 add t1,t1,t3
80002454: 00d32023 sw a3,0(t1)
80002458: 12050073 sfence.vma a0
8000245c: 0000100f fence.i
80002460: 00c12083 lw ra,12(sp)
80002464: 00812403 lw s0,8(sp)
80002468: 00412483 lw s1,4(sp)
8000246c: 01010113 addi sp,sp,16
80002470: 00008067 ret
80002474: 04077693 andi a3,a4,64
80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
8000247c: 04076713 ori a4,a4,64
80002480: 00e7a023 sw a4,0(a5)
80002484: 12050073 sfence.vma a0
80002488: 00c12083 lw ra,12(sp)
8000248c: 00812403 lw s0,8(sp)
80002490: 00412483 lw s1,4(sp)
80002494: 01010113 addi sp,sp,16
80002498: 00008067 ret
8000249c: 08077693 andi a3,a4,128
800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
800024a4: 00f00693 li a3,15
800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
800024ac: 08076713 ori a4,a4,128
800024b0: 00e7a023 sw a4,0(a5)
800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
800024b8: 00004797 auipc a5,0x4
800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
800024c4: 04100513 li a0,65
800024c8: 00000597 auipc a1,0x0
800024cc: 79458593 addi a1,a1,1940 # 80002c5c <pass+0xc>
800024d0: fffff697 auipc a3,0xfffff
800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
800024d8: fffff617 auipc a2,0xfffff
800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
800024e0: 0006a703 lw a4,0(a3)
800024e4: 0046a783 lw a5,4(a3)
800024e8: 00050313 mv t1,a0
800024ec: 00158593 addi a1,a1,1
800024f0: 00f76733 or a4,a4,a5
800024f4: 010103b7 lui t2,0x1010
800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
800024fc: 00000793 li a5,0
80002500: 00f62023 sw a5,0(a2)
80002504: 00000813 li a6,0
80002508: 01062223 sw a6,4(a2)
8000250c: 0006a703 lw a4,0(a3)
80002510: 0046a783 lw a5,4(a3)
80002514: 00f76733 or a4,a4,a5
80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
8000251c: 0005c503 lbu a0,0(a1)
80002520: 0066a023 sw t1,0(a3)
80002524: 0076a223 sw t2,4(a3)
80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
8000252c: 00300513 li a0,3
80002530: cf9ff0ef jal ra,80002228 <terminate>
80002534: 04100513 li a0,65
80002538: 00000597 auipc a1,0x0
8000253c: 7b058593 addi a1,a1,1968 # 80002ce8 <pass+0x98>
80002540: fffff697 auipc a3,0xfffff
80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
80002548: fffff617 auipc a2,0xfffff
8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
80002550: 0006a703 lw a4,0(a3)
80002554: 0046a783 lw a5,4(a3)
80002558: 00050f13 mv t5,a0
8000255c: 00158593 addi a1,a1,1
80002560: 00f76733 or a4,a4,a5
80002564: 01010fb7 lui t6,0x1010
80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
8000256c: 00000793 li a5,0
80002570: 00f62023 sw a5,0(a2)
80002574: 00000813 li a6,0
80002578: 01062223 sw a6,4(a2)
8000257c: 0006a703 lw a4,0(a3)
80002580: 0046a783 lw a5,4(a3)
80002584: 00f76733 or a4,a4,a5
80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
8000258c: 0005c503 lbu a0,0(a1)
80002590: 01e6a023 sw t5,0(a3)
80002594: 01f6a223 sw t6,4(a3)
80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
800025a0: 04100513 li a0,65
800025a4: 00000597 auipc a1,0x0
800025a8: 75c58593 addi a1,a1,1884 # 80002d00 <pass+0xb0>
800025ac: fffff697 auipc a3,0xfffff
800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
800025b4: fffff617 auipc a2,0xfffff
800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
800025bc: 0006a703 lw a4,0(a3)
800025c0: 0046a783 lw a5,4(a3)
800025c4: 00050813 mv a6,a0
800025c8: 00158593 addi a1,a1,1
800025cc: 00f76733 or a4,a4,a5
800025d0: 010108b7 lui a7,0x1010
800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
800025d8: 00000713 li a4,0
800025dc: 00e62023 sw a4,0(a2)
800025e0: 00000793 li a5,0
800025e4: 00f62223 sw a5,4(a2)
800025e8: 0006a703 lw a4,0(a3)
800025ec: 0046a783 lw a5,4(a3)
800025f0: 00f76733 or a4,a4,a5
800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
800025f8: 0005c503 lbu a0,0(a1)
800025fc: 0106a023 sw a6,0(a3)
80002600: 0116a223 sw a7,4(a3)
80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
8000260c: 04100793 li a5,65
80002610: 00000597 auipc a1,0x0
80002614: 69058593 addi a1,a1,1680 # 80002ca0 <pass+0x50>
80002618: fffff697 auipc a3,0xfffff
8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
80002620: fffff617 auipc a2,0xfffff
80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
80002628: 0006a803 lw a6,0(a3)
8000262c: 0046a883 lw a7,4(a3)
80002630: 00078413 mv s0,a5
80002634: 00158593 addi a1,a1,1
80002638: 01186833 or a6,a6,a7
8000263c: 010104b7 lui s1,0x1010
80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
80002644: 00000793 li a5,0
80002648: 00f62023 sw a5,0(a2)
8000264c: 00000813 li a6,0
80002650: 01062223 sw a6,4(a2)
80002654: 0006a703 lw a4,0(a3)
80002658: 0046a783 lw a5,4(a3)
8000265c: 00f76733 or a4,a4,a5
80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
80002664: 0005c783 lbu a5,0(a1)
80002668: 0086a023 sw s0,0(a3)
8000266c: 0096a223 sw s1,4(a3)
80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
80002678 <handle_trap>:
80002678: 08c52583 lw a1,140(a0)
8000267c: fb010113 addi sp,sp,-80
80002680: 03412c23 sw s4,56(sp)
80002684: 04112623 sw ra,76(sp)
80002688: 04812423 sw s0,72(sp)
8000268c: 04912223 sw s1,68(sp)
80002690: 05212023 sw s2,64(sp)
80002694: 03312e23 sw s3,60(sp)
80002698: 03512a23 sw s5,52(sp)
8000269c: 03612823 sw s6,48(sp)
800026a0: 03712623 sw s7,44(sp)
800026a4: 03812423 sw s8,40(sp)
800026a8: 03912223 sw s9,36(sp)
800026ac: 03a12023 sw s10,32(sp)
800026b0: 01b12e23 sw s11,28(sp)
800026b4: 00800793 li a5,8
800026b8: 00050a13 mv s4,a0
800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
800026c0: 00200793 li a5,2
800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
800026c8: ff458793 addi a5,a1,-12
800026cc: 00100713 li a4,1
800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
800026d4: 00f00793 li a5,15
800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
800026dc: 088a2503 lw a0,136(s4)
800026e0: c65ff0ef jal ra,80002344 <handle_fault>
800026e4: 04812403 lw s0,72(sp)
800026e8: 04c12083 lw ra,76(sp)
800026ec: 04412483 lw s1,68(sp)
800026f0: 04012903 lw s2,64(sp)
800026f4: 03c12983 lw s3,60(sp)
800026f8: 03412a83 lw s5,52(sp)
800026fc: 03012b03 lw s6,48(sp)
80002700: 02c12b83 lw s7,44(sp)
80002704: 02812c03 lw s8,40(sp)
80002708: 02412c83 lw s9,36(sp)
8000270c: 02012d03 lw s10,32(sp)
80002710: 01c12d83 lw s11,28(sp)
80002714: 000a0513 mv a0,s4
80002718: 03812a03 lw s4,56(sp)
8000271c: 05010113 addi sp,sp,80
80002720: 91dfd06f j 8000003c <pop_tf>
80002724: 08452703 lw a4,132(a0)
80002728: 00377793 andi a5,a4,3
8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
80002734: 00301073 fssr zero
80002738: 00072703 lw a4,0(a4)
8000273c: 0007a783 lw a5,0(a5)
80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
80002744: 04100513 li a0,65
80002748: 00000597 auipc a1,0x0
8000274c: 68058593 addi a1,a1,1664 # 80002dc8 <pass+0x178>
80002750: fffff697 auipc a3,0xfffff
80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
80002758: fffff617 auipc a2,0xfffff
8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
80002760: 0006a703 lw a4,0(a3)
80002764: 0046a783 lw a5,4(a3)
80002768: 00050813 mv a6,a0
8000276c: 00158593 addi a1,a1,1
80002770: 00f76733 or a4,a4,a5
80002774: 010108b7 lui a7,0x1010
80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
8000277c: 00000713 li a4,0
80002780: 00e62023 sw a4,0(a2)
80002784: 00000793 li a5,0
80002788: 00f62223 sw a5,4(a2)
8000278c: 0006a703 lw a4,0(a3)
80002790: 0046a783 lw a5,4(a3)
80002794: 00f76733 or a4,a4,a5
80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
8000279c: 0005c503 lbu a0,0(a1)
800027a0: 0106a023 sw a6,0(a3)
800027a4: 0116a223 sw a7,4(a3)
800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
800027ac: 00300513 li a0,3
800027b0: a79ff0ef jal ra,80002228 <terminate>
800027b4: 00100513 li a0,1
800027b8: a71ff0ef jal ra,80002228 <terminate>
800027bc: 00000597 auipc a1,0x0
800027c0: 5e858593 addi a1,a1,1512 # 80002da4 <pass+0x154>
800027c4: 04100613 li a2,65
800027c8: fffff697 auipc a3,0xfffff
800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
800027d0: fffff517 auipc a0,0xfffff
800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
800027d8: 0006a703 lw a4,0(a3)
800027dc: 0046a783 lw a5,4(a3)
800027e0: 00060e13 mv t3,a2
800027e4: 00158593 addi a1,a1,1
800027e8: 00f76733 or a4,a4,a5
800027ec: 01010eb7 lui t4,0x1010
800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
800027f4: 00000793 li a5,0
800027f8: 00f52023 sw a5,0(a0)
800027fc: 00000813 li a6,0
80002800: 01052223 sw a6,4(a0)
80002804: 0006a703 lw a4,0(a3)
80002808: 0046a783 lw a5,4(a3)
8000280c: 00f76733 or a4,a4,a5
80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
80002814: 0005c603 lbu a2,0(a1)
80002818: 01c6a023 sw t3,0(a3)
8000281c: 01d6a223 sw t4,4(a3)
80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
80002824: f89ff06f j 800027ac <handle_trap+0x134>
80002828: 02852783 lw a5,40(a0)
8000282c: 00001a37 lui s4,0x1
80002830: 00004b17 auipc s6,0x4
80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
80002838: 00f12223 sw a5,4(sp)
8000283c: 00001d17 auipc s10,0x1
80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
80002844: 00040cb7 lui s9,0x40
80002848: ffc00c37 lui s8,0xffc00
8000284c: 0003fab7 lui s5,0x3f
80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
80002854: 00f72223 sw a5,4(a4)
80002858: 00004717 auipc a4,0x4
8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
80002860: 000017b7 lui a5,0x1
80002864: 00fa0a33 add s4,s4,a5
80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
8000286c: 00ca5713 srli a4,s4,0xc
80002870: 00371b93 slli s7,a4,0x3
80002874: 017b0633 add a2,s6,s7
80002878: 00062603 lw a2,0(a2)
8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
80002880: 40070713 addi a4,a4,1024
80002884: 00271713 slli a4,a4,0x2
80002888: 00ed0733 add a4,s10,a4
8000288c: 00072703 lw a4,0(a4)
80002890: 04077613 andi a2,a4,64
80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
80002898: 00e12623 sw a4,12(sp)
8000289c: 100cadf3 csrrs s11,sstatus,s9
800028a0: 018a0833 add a6,s4,s8
800028a4: 00001637 lui a2,0x1
800028a8: 00080593 mv a1,a6
800028ac: 000a0513 mv a0,s4
800028b0: 01012423 sw a6,8(sp)
800028b4: 855ff0ef jal ra,80002108 <memcmp>
800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
800028bc: 00c12703 lw a4,12(sp)
800028c0: 00812803 lw a6,8(sp)
800028c4: 08077713 andi a4,a4,128
800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
800028cc: 00001637 lui a2,0x1
800028d0: 00080593 mv a1,a6
800028d4: 000a0513 mv a0,s4
800028d8: f28ff0ef jal ra,80002000 <memcpy>
800028dc: 017b07b3 add a5,s6,s7
800028e0: 100d9073 csrw sstatus,s11
800028e4: 00004717 auipc a4,0x4
800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
800028ec: 00072703 lw a4,0(a4)
800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
800028f8: 00004717 auipc a4,0x4
800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
80002900: 00004717 auipc a4,0x4
80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
8000290c: 04100593 li a1,65
80002910: 00000617 auipc a2,0x0
80002914: 4e460613 addi a2,a2,1252 # 80002df4 <pass+0x1a4>
80002918: ffffe697 auipc a3,0xffffe
8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
80002920: ffffe517 auipc a0,0xffffe
80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
80002928: 0006a703 lw a4,0(a3)
8000292c: 0046a783 lw a5,4(a3)
80002930: 00058313 mv t1,a1
80002934: 00160613 addi a2,a2,1
80002938: 00f76733 or a4,a4,a5
8000293c: 010103b7 lui t2,0x1010
80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
80002944: 00000793 li a5,0
80002948: 00f52023 sw a5,0(a0)
8000294c: 00000813 li a6,0
80002950: 01052223 sw a6,4(a0)
80002954: 0006a703 lw a4,0(a3)
80002958: 0046a783 lw a5,4(a3)
8000295c: 00f76733 or a4,a4,a5
80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
80002964: 00064583 lbu a1,0(a2)
80002968: 0066a023 sw t1,0(a3)
8000296c: 0076a223 sw t2,4(a3)
80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
80002974: e39ff06f j 800027ac <handle_trap+0x134>
80002978: 04100793 li a5,65
8000297c: 00000617 auipc a2,0x0
80002980: 3f460613 addi a2,a2,1012 # 80002d70 <pass+0x120>
80002984: ffffe697 auipc a3,0xffffe
80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
8000298c: ffffe597 auipc a1,0xffffe
80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
80002994: 00078413 mv s0,a5
80002998: 00160613 addi a2,a2,1
8000299c: 010104b7 lui s1,0x1010
800029a0: 0006a703 lw a4,0(a3)
800029a4: 0046a783 lw a5,4(a3)
800029a8: 00f76733 or a4,a4,a5
800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
800029b0: 00000793 li a5,0
800029b4: 00000813 li a6,0
800029b8: 00f5a023 sw a5,0(a1)
800029bc: 0105a223 sw a6,4(a1)
800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
800029c4: 04100793 li a5,65
800029c8: 00000617 auipc a2,0x0
800029cc: 37460613 addi a2,a2,884 # 80002d3c <pass+0xec>
800029d0: ffffe697 auipc a3,0xffffe
800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
800029d8: ffffe597 auipc a1,0xffffe
800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
800029e0: 00078913 mv s2,a5
800029e4: 00160613 addi a2,a2,1
800029e8: 010109b7 lui s3,0x1010
800029ec: 0006a703 lw a4,0(a3)
800029f0: 0046a783 lw a5,4(a3)
800029f4: 00f76733 or a4,a4,a5
800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
800029fc: 00000793 li a5,0
80002a00: 00000813 li a6,0
80002a04: 00f5a023 sw a5,0(a1)
80002a08: 0105a223 sw a6,4(a1)
80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
80002a10: 00412503 lw a0,4(sp)
80002a14: 815ff0ef jal ra,80002228 <terminate>
80002a18: 00064783 lbu a5,0(a2)
80002a1c: 0086a023 sw s0,0(a3)
80002a20: 0096a223 sw s1,4(a3)
80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
80002a28: d85ff06f j 800027ac <handle_trap+0x134>
80002a2c: 00064783 lbu a5,0(a2)
80002a30: 0126a023 sw s2,0(a3)
80002a34: 0136a223 sw s3,4(a3)
80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
80002a40 <vm_boot>:
80002a40: f14027f3 csrr a5,mhartid
80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
80002a48: 00002797 auipc a5,0x2
80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
80002a50: 00c7d793 srli a5,a5,0xc
80002a54: 00a79793 slli a5,a5,0xa
80002a58: 0017e793 ori a5,a5,1
80002a5c: 00001697 auipc a3,0x1
80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
80002a64: 200007b7 lui a5,0x20000
80002a68: 00001717 auipc a4,0x1
80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
80002a74: f6010113 addi sp,sp,-160
80002a78: 00002697 auipc a3,0x2
80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
80002a80: 00c75793 srli a5,a4,0xc
80002a84: 80000737 lui a4,0x80000
80002a88: 08112e23 sw ra,156(sp)
80002a8c: 08812c23 sw s0,152(sp)
80002a90: 00e7e7b3 or a5,a5,a4
80002a94: 18079073 csrw satp,a5
80002a98: 01f00793 li a5,31
80002a9c: fff00713 li a4,-1
80002aa0: 00000297 auipc t0,0x0
80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
80002aa8: 305292f3 csrrw t0,mtvec,t0
80002aac: 3b071073 csrw pmpaddr0,a4
80002ab0: 3a079073 csrw pmpcfg0,a5
80002ab4: 7fbfd797 auipc a5,0x7fbfd
80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
80002abc: 10579073 csrw stvec,a5
80002ac0: 340027f3 csrr a5,mscratch
80002ac4: 7fc00837 lui a6,0x7fc00
80002ac8: 010787b3 add a5,a5,a6
80002acc: 14079073 csrw sscratch,a5
80002ad0: 0000b7b7 lui a5,0xb
80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
80002ad8: 30279073 csrw medeleg,a5
80002adc: 0001e7b7 lui a5,0x1e
80002ae0: 30079073 csrw mstatus,a5
80002ae4: 30405073 csrwi mie,0
80002ae8: 7fc03797 auipc a5,0x7fc03
80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
80002af0: 00004717 auipc a4,0x4
80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
80002af8: 7fc03797 auipc a5,0x7fc03
80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
80002b00: 00004717 auipc a4,0x4
80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
80002b08: 000808b7 lui a7,0x80
80002b0c: 00003717 auipc a4,0x3
80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
80002b14: 00003317 auipc t1,0x3
80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
80002b1c: 03900793 li a5,57
80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
80002b28: 0017d613 srli a2,a5,0x1
80002b2c: 011786b3 add a3,a5,a7
80002b30: 00f647b3 xor a5,a2,a5
80002b34: 010705b3 add a1,a4,a6
80002b38: 00c69693 slli a3,a3,0xc
80002b3c: 00579793 slli a5,a5,0x5
80002b40: 00d72023 sw a3,0(a4)
80002b44: 00b72223 sw a1,4(a4)
80002b48: 0207f793 andi a5,a5,32
80002b4c: 00870713 addi a4,a4,8
80002b50: 00f667b3 or a5,a2,a5
80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
80002b58: 00050413 mv s0,a0
80002b5c: 09000613 li a2,144
80002b60: 00000593 li a1,0
80002b64: 00010513 mv a0,sp
80002b68: 00003797 auipc a5,0x3
80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
80002b70: cecff0ef jal ra,8000205c <memset>
80002b74: 800007b7 lui a5,0x80000
80002b78: 00f40433 add s0,s0,a5
80002b7c: 00010513 mv a0,sp
80002b80: 08812223 sw s0,132(sp)
80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
80002b88: 09c12083 lw ra,156(sp)
80002b8c: 09812403 lw s0,152(sp)
80002b90: 0a010113 addi sp,sp,160
80002b94: 00008067 ret
80002b98: 0a3d67b7 lui a5,0xa3d6
80002b9c: 00080637 lui a2,0x80
80002ba0: 9e278793 addi a5,a5,-1566 # a3d59e2 <_start-0x75c2a61e>
80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
80002ba8: 800005b7 lui a1,0x80000
80002bac: 00c7f733 and a4,a5,a2
80002bb0: 0017f693 andi a3,a5,1
80002bb4: 00b70733 add a4,a4,a1
80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
80002bbc: 0007202f amoadd.w zero,zero,(a4)
80002bc0: 0017d793 srli a5,a5,0x1
80002bc4: 00c7f733 and a4,a5,a2
80002bc8: 0017f693 andi a3,a5,1
80002bcc: 00b70733 add a4,a4,a1
80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
80002bd4: 00072003 lw zero,0(a4)
80002bd8: 0017d793 srli a5,a5,0x1
80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
80002be0 <userstart>:
80002be0: 80000537 lui a0,0x80000
80002be4: 80000593 li a1,-2048
80002be8: 00000697 auipc a3,0x0
80002bec: 41868693 addi a3,a3,1048 # 80003000 <begin_signature>
80002bf0: 00a6a023 sw a0,0(a3)
80002bf4: a0b6a72f amomax.w a4,a1,(a3)
80002bf8: 80000eb7 lui t4,0x80000
80002bfc: 00200193 li gp,2
80002c00: 05d71063 bne a4,t4,80002c40 <fail>
80002c04 <test_3>:
80002c04: 0006a783 lw a5,0(a3)
80002c08: 80000e93 li t4,-2048
80002c0c: 00300193 li gp,3
80002c10: 03d79863 bne a5,t4,80002c40 <fail>
80002c14 <test_4>:
80002c14: 00100593 li a1,1
80002c18: 0006a023 sw zero,0(a3)
80002c1c: a0b6a72f amomax.w a4,a1,(a3)
80002c20: 00000e93 li t4,0
80002c24: 00400193 li gp,4
80002c28: 01d71c63 bne a4,t4,80002c40 <fail>
80002c2c <test_5>:
80002c2c: 0006a783 lw a5,0(a3)
80002c30: 00100e93 li t4,1
80002c34: 00500193 li gp,5
80002c38: 01d79463 bne a5,t4,80002c40 <fail>
80002c3c: 00301a63 bne zero,gp,80002c50 <pass>
80002c40 <fail>:
80002c40: 00119513 slli a0,gp,0x1
80002c44: 00050063 beqz a0,80002c44 <fail+0x4>
80002c48: 00156513 ori a0,a0,1
80002c4c: 00000073 ecall
80002c50 <pass>:
80002c50: 00100513 li a0,1
80002c54: 00000073 ecall
80002c58: c0001073 unimp

Binary file not shown.

View File

@@ -0,0 +1,940 @@
rv32ua-v-amomaxu_w: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 00c0006f j 8000000c <handle_reset>
80000004 <nmi_vector>:
80000004: 2780206f j 8000227c <wtf>
80000008 <trap_vector>:
80000008: 2740206f j 8000227c <wtf>
8000000c <handle_reset>:
8000000c: 00000297 auipc t0,0x0
80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
80000014: 30529073 csrw mtvec,t0
80000018: 00007117 auipc sp,0x7
8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
80000020: f14022f3 csrr t0,mhartid
80000024: 00c29293 slli t0,t0,0xc
80000028: 00510133 add sp,sp,t0
8000002c: 34011073 csrw mscratch,sp
80000030: 00003517 auipc a0,0x3
80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
80000038: 2090206f j 80002a40 <vm_boot>
8000003c <pop_tf>:
8000003c: 08452283 lw t0,132(a0)
80000040: 14129073 csrw sepc,t0
80000044: 00452083 lw ra,4(a0)
80000048: 00852103 lw sp,8(a0)
8000004c: 00c52183 lw gp,12(a0)
80000050: 01052203 lw tp,16(a0)
80000054: 01452283 lw t0,20(a0)
80000058: 01852303 lw t1,24(a0)
8000005c: 01c52383 lw t2,28(a0)
80000060: 02052403 lw s0,32(a0)
80000064: 02452483 lw s1,36(a0)
80000068: 02c52583 lw a1,44(a0)
8000006c: 03052603 lw a2,48(a0)
80000070: 03452683 lw a3,52(a0)
80000074: 03852703 lw a4,56(a0)
80000078: 03c52783 lw a5,60(a0)
8000007c: 04052803 lw a6,64(a0)
80000080: 04452883 lw a7,68(a0)
80000084: 04852903 lw s2,72(a0)
80000088: 04c52983 lw s3,76(a0)
8000008c: 05052a03 lw s4,80(a0)
80000090: 05452a83 lw s5,84(a0)
80000094: 05852b03 lw s6,88(a0)
80000098: 05c52b83 lw s7,92(a0)
8000009c: 06052c03 lw s8,96(a0)
800000a0: 06452c83 lw s9,100(a0)
800000a4: 06852d03 lw s10,104(a0)
800000a8: 06c52d83 lw s11,108(a0)
800000ac: 07052e03 lw t3,112(a0)
800000b0: 07452e83 lw t4,116(a0)
800000b4: 07852f03 lw t5,120(a0)
800000b8: 07c52f83 lw t6,124(a0)
800000bc: 02852503 lw a0,40(a0)
800000c0: 10200073 sret
800000c4 <trap_entry>:
800000c4: 14011173 csrrw sp,sscratch,sp
800000c8: 00112223 sw ra,4(sp)
800000cc: 00312623 sw gp,12(sp)
800000d0: 00412823 sw tp,16(sp)
800000d4: 00512a23 sw t0,20(sp)
800000d8: 00612c23 sw t1,24(sp)
800000dc: 00712e23 sw t2,28(sp)
800000e0: 02812023 sw s0,32(sp)
800000e4: 02912223 sw s1,36(sp)
800000e8: 02a12423 sw a0,40(sp)
800000ec: 02b12623 sw a1,44(sp)
800000f0: 02c12823 sw a2,48(sp)
800000f4: 02d12a23 sw a3,52(sp)
800000f8: 02e12c23 sw a4,56(sp)
800000fc: 02f12e23 sw a5,60(sp)
80000100: 05012023 sw a6,64(sp)
80000104: 05112223 sw a7,68(sp)
80000108: 05212423 sw s2,72(sp)
8000010c: 05312623 sw s3,76(sp)
80000110: 05412823 sw s4,80(sp)
80000114: 05512a23 sw s5,84(sp)
80000118: 05612c23 sw s6,88(sp)
8000011c: 05712e23 sw s7,92(sp)
80000120: 07812023 sw s8,96(sp)
80000124: 07912223 sw s9,100(sp)
80000128: 07a12423 sw s10,104(sp)
8000012c: 07b12623 sw s11,108(sp)
80000130: 07c12823 sw t3,112(sp)
80000134: 07d12a23 sw t4,116(sp)
80000138: 07e12c23 sw t5,120(sp)
8000013c: 07f12e23 sw t6,124(sp)
80000140: 140112f3 csrrw t0,sscratch,sp
80000144: 00512423 sw t0,8(sp)
80000148: 100022f3 csrr t0,sstatus
8000014c: 08512023 sw t0,128(sp)
80000150: 141022f3 csrr t0,sepc
80000154: 08512223 sw t0,132(sp)
80000158: 143022f3 csrr t0,sbadaddr
8000015c: 08512423 sw t0,136(sp)
80000160: 142022f3 csrr t0,scause
80000164: 08512623 sw t0,140(sp)
80000168: 00010513 mv a0,sp
8000016c: 50c0206f j 80002678 <handle_trap>
Disassembly of section .text:
80002000 <memcpy>:
80002000: 00c5e7b3 or a5,a1,a2
80002004: 00f567b3 or a5,a0,a5
80002008: 0037f793 andi a5,a5,3
8000200c: 00c506b3 add a3,a0,a2
80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
80002014: 00c58633 add a2,a1,a2
80002018: 00050793 mv a5,a0
8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
80002020: 00158593 addi a1,a1,1
80002024: fff5c703 lbu a4,-1(a1)
80002028: 00178793 addi a5,a5,1
8000202c: fee78fa3 sb a4,-1(a5)
80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
80002034: 00008067 ret
80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
8000203c: 00050793 mv a5,a0
80002040: 00458593 addi a1,a1,4
80002044: ffc5a703 lw a4,-4(a1)
80002048: 00478793 addi a5,a5,4
8000204c: fee7ae23 sw a4,-4(a5)
80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
80002054: 00008067 ret
80002058: 00008067 ret
8000205c <memset>:
8000205c: 00c567b3 or a5,a0,a2
80002060: 0037f793 andi a5,a5,3
80002064: 00c50633 add a2,a0,a2
80002068: 02078063 beqz a5,80002088 <memset+0x2c>
8000206c: 0ff5f593 andi a1,a1,255
80002070: 00050793 mv a5,a0
80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
80002078: 00178793 addi a5,a5,1
8000207c: feb78fa3 sb a1,-1(a5)
80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
80002084: 00008067 ret
80002088: 0ff5f593 andi a1,a1,255
8000208c: 00859793 slli a5,a1,0x8
80002090: 00b7e7b3 or a5,a5,a1
80002094: 01079593 slli a1,a5,0x10
80002098: 00f5e5b3 or a1,a1,a5
8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
800020a0: 00050793 mv a5,a0
800020a4: 00478793 addi a5,a5,4
800020a8: feb7ae23 sw a1,-4(a5)
800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
800020b0: 00008067 ret
800020b4: 00008067 ret
800020b8 <strlen>:
800020b8: 00054783 lbu a5,0(a0)
800020bc: 00050713 mv a4,a0
800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
800020c4: 00150513 addi a0,a0,1
800020c8: 00054783 lbu a5,0(a0)
800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
800020d0: 40e50533 sub a0,a0,a4
800020d4: 00008067 ret
800020d8: 00000513 li a0,0
800020dc: 00008067 ret
800020e0 <strcmp>:
800020e0: 00150513 addi a0,a0,1
800020e4: fff54783 lbu a5,-1(a0)
800020e8: 00158593 addi a1,a1,1
800020ec: fff5c703 lbu a4,-1(a1)
800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
800020f8: 40e78533 sub a0,a5,a4
800020fc: 00008067 ret
80002100: 00000793 li a5,0
80002104: ff5ff06f j 800020f8 <strcmp+0x18>
80002108 <memcmp>:
80002108: 00b567b3 or a5,a0,a1
8000210c: 0037f793 andi a5,a5,3
80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
80002114: ffc67693 andi a3,a2,-4
80002118: 00d506b3 add a3,a0,a3
8000211c: 00050813 mv a6,a0
80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
80002124: 00052703 lw a4,0(a0)
80002128: 0005a783 lw a5,0(a1)
8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
80002130: 0240006f j 80002154 <memcmp+0x4c>
80002134: 00052703 lw a4,0(a0)
80002138: 0005a783 lw a5,0(a1)
8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
80002140: 00450513 addi a0,a0,4
80002144: 00458593 addi a1,a1,4
80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
8000214c: 41050833 sub a6,a0,a6
80002150: 41060633 sub a2,a2,a6
80002154: 00c58633 add a2,a1,a2
80002158: 0140006f j 8000216c <memcmp+0x64>
8000215c: 00158593 addi a1,a1,1
80002160: fff54783 lbu a5,-1(a0)
80002164: fff5c703 lbu a4,-1(a1)
80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
8000216c: 00150513 addi a0,a0,1
80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
80002174: 00000513 li a0,0
80002178: 00008067 ret
8000217c: 40e78533 sub a0,a5,a4
80002180: 00008067 ret
80002184 <strcpy>:
80002184: 00050793 mv a5,a0
80002188: 00158593 addi a1,a1,1
8000218c: fff5c703 lbu a4,-1(a1)
80002190: 00178793 addi a5,a5,1
80002194: fee78fa3 sb a4,-1(a5)
80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
8000219c: 00008067 ret
800021a0 <atol>:
800021a0: 00054783 lbu a5,0(a0)
800021a4: 02000713 li a4,32
800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
800021ac: 00150513 addi a0,a0,1
800021b0: 00054783 lbu a5,0(a0)
800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
800021b8: fd578713 addi a4,a5,-43
800021bc: 0fd77713 andi a4,a4,253
800021c0: 04070263 beqz a4,80002204 <atol+0x64>
800021c4: 00054683 lbu a3,0(a0)
800021c8: 00050793 mv a5,a0
800021cc: 00000613 li a2,0
800021d0: 04068863 beqz a3,80002220 <atol+0x80>
800021d4: 00000513 li a0,0
800021d8: 00178793 addi a5,a5,1
800021dc: fd068593 addi a1,a3,-48
800021e0: 00251713 slli a4,a0,0x2
800021e4: 0007c683 lbu a3,0(a5)
800021e8: 00a70533 add a0,a4,a0
800021ec: 00151513 slli a0,a0,0x1
800021f0: 00a58533 add a0,a1,a0
800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
800021f8: 00060463 beqz a2,80002200 <atol+0x60>
800021fc: 40a00533 neg a0,a0
80002200: 00008067 ret
80002204: 00154683 lbu a3,1(a0)
80002208: fd378793 addi a5,a5,-45
8000220c: 0017b613 seqz a2,a5
80002210: 00150793 addi a5,a0,1
80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
80002218: 00000513 li a0,0
8000221c: fddff06f j 800021f8 <atol+0x58>
80002220: 00000513 li a0,0
80002224: 00008067 ret
80002228 <terminate>:
80002228: fffff697 auipc a3,0xfffff
8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
80002230: 0006a703 lw a4,0(a3)
80002234: 0046a783 lw a5,4(a3)
80002238: 00050813 mv a6,a0
8000223c: 41f55893 srai a7,a0,0x1f
80002240: 00f76733 or a4,a4,a5
80002244: 02070663 beqz a4,80002270 <terminate+0x48>
80002248: fffff617 auipc a2,0xfffff
8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
80002250: 00000713 li a4,0
80002254: 00e62023 sw a4,0(a2)
80002258: 00000793 li a5,0
8000225c: 00f62223 sw a5,4(a2)
80002260: 0006a703 lw a4,0(a3)
80002264: 0046a783 lw a5,4(a3)
80002268: 00f76733 or a4,a4,a5
8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
80002270: 0106a023 sw a6,0(a3)
80002274: 0116a223 sw a7,4(a3)
80002278: 0000006f j 80002278 <terminate+0x50>
8000227c <wtf>:
8000227c: ff010113 addi sp,sp,-16
80002280: 34900513 li a0,841
80002284: 00112623 sw ra,12(sp)
80002288: fa1ff0ef jal ra,80002228 <terminate>
8000228c <printhex>:
8000228c: fe010113 addi sp,sp,-32
80002290: 01b10793 addi a5,sp,27
80002294: 00b10e93 addi t4,sp,11
80002298: 00900e13 li t3,9
8000229c: 00f57693 andi a3,a0,15
800022a0: 01c59313 slli t1,a1,0x1c
800022a4: 00455513 srli a0,a0,0x4
800022a8: 05700613 li a2,87
800022ac: 0ff6f713 andi a4,a3,255
800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
800022b4: 03000613 li a2,48
800022b8: 00c70733 add a4,a4,a2
800022bc: 00e78023 sb a4,0(a5)
800022c0: fff78793 addi a5,a5,-1
800022c4: 00a36533 or a0,t1,a0
800022c8: 0045d593 srli a1,a1,0x4
800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
800022d0: 00c14583 lbu a1,12(sp)
800022d4: 00010e23 sb zero,28(sp)
800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
800022dc: 00c10513 addi a0,sp,12
800022e0: fffff697 auipc a3,0xfffff
800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
800022e8: fffff617 auipc a2,0xfffff
800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
800022f0: 0006a703 lw a4,0(a3)
800022f4: 0046a783 lw a5,4(a3)
800022f8: 00058813 mv a6,a1
800022fc: 00150513 addi a0,a0,1
80002300: 00f76733 or a4,a4,a5
80002304: 010108b7 lui a7,0x1010
80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
8000230c: 00000713 li a4,0
80002310: 00e62023 sw a4,0(a2)
80002314: 00000793 li a5,0
80002318: 00f62223 sw a5,4(a2)
8000231c: 0006a703 lw a4,0(a3)
80002320: 0046a783 lw a5,4(a3)
80002324: 00f76733 or a4,a4,a5
80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
8000232c: 00054583 lbu a1,0(a0)
80002330: 0106a023 sw a6,0(a3)
80002334: 0116a223 sw a7,4(a3)
80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
8000233c: 02010113 addi sp,sp,32
80002340: 00008067 ret
80002344 <handle_fault>:
80002344: ff010113 addi sp,sp,-16
80002348: fffff6b7 lui a3,0xfffff
8000234c: 00112623 sw ra,12(sp)
80002350: 00812423 sw s0,8(sp)
80002354: 00912223 sw s1,4(sp)
80002358: 00d50733 add a4,a0,a3
8000235c: 0003e7b7 lui a5,0x3e
80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
80002364: 00c55613 srli a2,a0,0xc
80002368: 40060e13 addi t3,a2,1024
8000236c: 00002317 auipc t1,0x2
80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
80002374: 002e1793 slli a5,t3,0x2
80002378: 00f307b3 add a5,t1,a5
8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
80002380: 00d57533 and a0,a0,a3
80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
80002388: 00004797 auipc a5,0x4
8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
80002390: 0007a583 lw a1,0(a5)
80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
80002398: 0045a783 lw a5,4(a1)
8000239c: 00004717 auipc a4,0x4
800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
800023a4: 00072703 lw a4,0(a4)
800023a8: 00004697 auipc a3,0x4
800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
800023b4: 0005a703 lw a4,0(a1)
800023b8: 002e1793 slli a5,t3,0x2
800023bc: 00f307b3 add a5,t1,a5
800023c0: 00c75713 srli a4,a4,0xc
800023c4: 00a71713 slli a4,a4,0xa
800023c8: 0df76e93 ori t4,a4,223
800023cc: 01f76693 ori a3,a4,31
800023d0: 01d7a023 sw t4,0(a5)
800023d4: 12050073 sfence.vma a0
800023d8: 00004717 auipc a4,0x4
800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
800023e0: 00361793 slli a5,a2,0x3
800023e4: 00f707b3 add a5,a4,a5
800023e8: 0007a703 lw a4,0(a5)
800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
800023f0: 0005a703 lw a4,0(a1)
800023f4: 00e7a023 sw a4,0(a5)
800023f8: 0045a703 lw a4,4(a1)
800023fc: 00e7a223 sw a4,4(a5)
80002400: 000407b7 lui a5,0x40
80002404: 1007a5f3 csrrs a1,sstatus,a5
80002408: ffc007b7 lui a5,0xffc00
8000240c: 00f507b3 add a5,a0,a5
80002410: 00001637 lui a2,0x1
80002414: 00050713 mv a4,a0
80002418: 00c78633 add a2,a5,a2
8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
80002420: 0047ae83 lw t4,4(a5)
80002424: 0087a883 lw a7,8(a5)
80002428: 00c7a803 lw a6,12(a5)
8000242c: 01e72023 sw t5,0(a4)
80002430: 01d72223 sw t4,4(a4)
80002434: 01172423 sw a7,8(a4)
80002438: 01072623 sw a6,12(a4)
8000243c: 01078793 addi a5,a5,16
80002440: 01070713 addi a4,a4,16
80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
80002448: 10059073 csrw sstatus,a1
8000244c: 002e1e13 slli t3,t3,0x2
80002450: 01c30333 add t1,t1,t3
80002454: 00d32023 sw a3,0(t1)
80002458: 12050073 sfence.vma a0
8000245c: 0000100f fence.i
80002460: 00c12083 lw ra,12(sp)
80002464: 00812403 lw s0,8(sp)
80002468: 00412483 lw s1,4(sp)
8000246c: 01010113 addi sp,sp,16
80002470: 00008067 ret
80002474: 04077693 andi a3,a4,64
80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
8000247c: 04076713 ori a4,a4,64
80002480: 00e7a023 sw a4,0(a5)
80002484: 12050073 sfence.vma a0
80002488: 00c12083 lw ra,12(sp)
8000248c: 00812403 lw s0,8(sp)
80002490: 00412483 lw s1,4(sp)
80002494: 01010113 addi sp,sp,16
80002498: 00008067 ret
8000249c: 08077693 andi a3,a4,128
800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
800024a4: 00f00693 li a3,15
800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
800024ac: 08076713 ori a4,a4,128
800024b0: 00e7a023 sw a4,0(a5)
800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
800024b8: 00004797 auipc a5,0x4
800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
800024c4: 04100513 li a0,65
800024c8: 00000597 auipc a1,0x0
800024cc: 79458593 addi a1,a1,1940 # 80002c5c <pass+0xc>
800024d0: fffff697 auipc a3,0xfffff
800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
800024d8: fffff617 auipc a2,0xfffff
800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
800024e0: 0006a703 lw a4,0(a3)
800024e4: 0046a783 lw a5,4(a3)
800024e8: 00050313 mv t1,a0
800024ec: 00158593 addi a1,a1,1
800024f0: 00f76733 or a4,a4,a5
800024f4: 010103b7 lui t2,0x1010
800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
800024fc: 00000793 li a5,0
80002500: 00f62023 sw a5,0(a2)
80002504: 00000813 li a6,0
80002508: 01062223 sw a6,4(a2)
8000250c: 0006a703 lw a4,0(a3)
80002510: 0046a783 lw a5,4(a3)
80002514: 00f76733 or a4,a4,a5
80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
8000251c: 0005c503 lbu a0,0(a1)
80002520: 0066a023 sw t1,0(a3)
80002524: 0076a223 sw t2,4(a3)
80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
8000252c: 00300513 li a0,3
80002530: cf9ff0ef jal ra,80002228 <terminate>
80002534: 04100513 li a0,65
80002538: 00000597 auipc a1,0x0
8000253c: 7b058593 addi a1,a1,1968 # 80002ce8 <pass+0x98>
80002540: fffff697 auipc a3,0xfffff
80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
80002548: fffff617 auipc a2,0xfffff
8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
80002550: 0006a703 lw a4,0(a3)
80002554: 0046a783 lw a5,4(a3)
80002558: 00050f13 mv t5,a0
8000255c: 00158593 addi a1,a1,1
80002560: 00f76733 or a4,a4,a5
80002564: 01010fb7 lui t6,0x1010
80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
8000256c: 00000793 li a5,0
80002570: 00f62023 sw a5,0(a2)
80002574: 00000813 li a6,0
80002578: 01062223 sw a6,4(a2)
8000257c: 0006a703 lw a4,0(a3)
80002580: 0046a783 lw a5,4(a3)
80002584: 00f76733 or a4,a4,a5
80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
8000258c: 0005c503 lbu a0,0(a1)
80002590: 01e6a023 sw t5,0(a3)
80002594: 01f6a223 sw t6,4(a3)
80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
800025a0: 04100513 li a0,65
800025a4: 00000597 auipc a1,0x0
800025a8: 75c58593 addi a1,a1,1884 # 80002d00 <pass+0xb0>
800025ac: fffff697 auipc a3,0xfffff
800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
800025b4: fffff617 auipc a2,0xfffff
800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
800025bc: 0006a703 lw a4,0(a3)
800025c0: 0046a783 lw a5,4(a3)
800025c4: 00050813 mv a6,a0
800025c8: 00158593 addi a1,a1,1
800025cc: 00f76733 or a4,a4,a5
800025d0: 010108b7 lui a7,0x1010
800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
800025d8: 00000713 li a4,0
800025dc: 00e62023 sw a4,0(a2)
800025e0: 00000793 li a5,0
800025e4: 00f62223 sw a5,4(a2)
800025e8: 0006a703 lw a4,0(a3)
800025ec: 0046a783 lw a5,4(a3)
800025f0: 00f76733 or a4,a4,a5
800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
800025f8: 0005c503 lbu a0,0(a1)
800025fc: 0106a023 sw a6,0(a3)
80002600: 0116a223 sw a7,4(a3)
80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
8000260c: 04100793 li a5,65
80002610: 00000597 auipc a1,0x0
80002614: 69058593 addi a1,a1,1680 # 80002ca0 <pass+0x50>
80002618: fffff697 auipc a3,0xfffff
8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
80002620: fffff617 auipc a2,0xfffff
80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
80002628: 0006a803 lw a6,0(a3)
8000262c: 0046a883 lw a7,4(a3)
80002630: 00078413 mv s0,a5
80002634: 00158593 addi a1,a1,1
80002638: 01186833 or a6,a6,a7
8000263c: 010104b7 lui s1,0x1010
80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
80002644: 00000793 li a5,0
80002648: 00f62023 sw a5,0(a2)
8000264c: 00000813 li a6,0
80002650: 01062223 sw a6,4(a2)
80002654: 0006a703 lw a4,0(a3)
80002658: 0046a783 lw a5,4(a3)
8000265c: 00f76733 or a4,a4,a5
80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
80002664: 0005c783 lbu a5,0(a1)
80002668: 0086a023 sw s0,0(a3)
8000266c: 0096a223 sw s1,4(a3)
80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
80002678 <handle_trap>:
80002678: 08c52583 lw a1,140(a0)
8000267c: fb010113 addi sp,sp,-80
80002680: 03412c23 sw s4,56(sp)
80002684: 04112623 sw ra,76(sp)
80002688: 04812423 sw s0,72(sp)
8000268c: 04912223 sw s1,68(sp)
80002690: 05212023 sw s2,64(sp)
80002694: 03312e23 sw s3,60(sp)
80002698: 03512a23 sw s5,52(sp)
8000269c: 03612823 sw s6,48(sp)
800026a0: 03712623 sw s7,44(sp)
800026a4: 03812423 sw s8,40(sp)
800026a8: 03912223 sw s9,36(sp)
800026ac: 03a12023 sw s10,32(sp)
800026b0: 01b12e23 sw s11,28(sp)
800026b4: 00800793 li a5,8
800026b8: 00050a13 mv s4,a0
800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
800026c0: 00200793 li a5,2
800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
800026c8: ff458793 addi a5,a1,-12
800026cc: 00100713 li a4,1
800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
800026d4: 00f00793 li a5,15
800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
800026dc: 088a2503 lw a0,136(s4)
800026e0: c65ff0ef jal ra,80002344 <handle_fault>
800026e4: 04812403 lw s0,72(sp)
800026e8: 04c12083 lw ra,76(sp)
800026ec: 04412483 lw s1,68(sp)
800026f0: 04012903 lw s2,64(sp)
800026f4: 03c12983 lw s3,60(sp)
800026f8: 03412a83 lw s5,52(sp)
800026fc: 03012b03 lw s6,48(sp)
80002700: 02c12b83 lw s7,44(sp)
80002704: 02812c03 lw s8,40(sp)
80002708: 02412c83 lw s9,36(sp)
8000270c: 02012d03 lw s10,32(sp)
80002710: 01c12d83 lw s11,28(sp)
80002714: 000a0513 mv a0,s4
80002718: 03812a03 lw s4,56(sp)
8000271c: 05010113 addi sp,sp,80
80002720: 91dfd06f j 8000003c <pop_tf>
80002724: 08452703 lw a4,132(a0)
80002728: 00377793 andi a5,a4,3
8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
80002734: 00301073 fssr zero
80002738: 00072703 lw a4,0(a4)
8000273c: 0007a783 lw a5,0(a5)
80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
80002744: 04100513 li a0,65
80002748: 00000597 auipc a1,0x0
8000274c: 68058593 addi a1,a1,1664 # 80002dc8 <pass+0x178>
80002750: fffff697 auipc a3,0xfffff
80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
80002758: fffff617 auipc a2,0xfffff
8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
80002760: 0006a703 lw a4,0(a3)
80002764: 0046a783 lw a5,4(a3)
80002768: 00050813 mv a6,a0
8000276c: 00158593 addi a1,a1,1
80002770: 00f76733 or a4,a4,a5
80002774: 010108b7 lui a7,0x1010
80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
8000277c: 00000713 li a4,0
80002780: 00e62023 sw a4,0(a2)
80002784: 00000793 li a5,0
80002788: 00f62223 sw a5,4(a2)
8000278c: 0006a703 lw a4,0(a3)
80002790: 0046a783 lw a5,4(a3)
80002794: 00f76733 or a4,a4,a5
80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
8000279c: 0005c503 lbu a0,0(a1)
800027a0: 0106a023 sw a6,0(a3)
800027a4: 0116a223 sw a7,4(a3)
800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
800027ac: 00300513 li a0,3
800027b0: a79ff0ef jal ra,80002228 <terminate>
800027b4: 00100513 li a0,1
800027b8: a71ff0ef jal ra,80002228 <terminate>
800027bc: 00000597 auipc a1,0x0
800027c0: 5e858593 addi a1,a1,1512 # 80002da4 <pass+0x154>
800027c4: 04100613 li a2,65
800027c8: fffff697 auipc a3,0xfffff
800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
800027d0: fffff517 auipc a0,0xfffff
800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
800027d8: 0006a703 lw a4,0(a3)
800027dc: 0046a783 lw a5,4(a3)
800027e0: 00060e13 mv t3,a2
800027e4: 00158593 addi a1,a1,1
800027e8: 00f76733 or a4,a4,a5
800027ec: 01010eb7 lui t4,0x1010
800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
800027f4: 00000793 li a5,0
800027f8: 00f52023 sw a5,0(a0)
800027fc: 00000813 li a6,0
80002800: 01052223 sw a6,4(a0)
80002804: 0006a703 lw a4,0(a3)
80002808: 0046a783 lw a5,4(a3)
8000280c: 00f76733 or a4,a4,a5
80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
80002814: 0005c603 lbu a2,0(a1)
80002818: 01c6a023 sw t3,0(a3)
8000281c: 01d6a223 sw t4,4(a3)
80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
80002824: f89ff06f j 800027ac <handle_trap+0x134>
80002828: 02852783 lw a5,40(a0)
8000282c: 00001a37 lui s4,0x1
80002830: 00004b17 auipc s6,0x4
80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
80002838: 00f12223 sw a5,4(sp)
8000283c: 00001d17 auipc s10,0x1
80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
80002844: 00040cb7 lui s9,0x40
80002848: ffc00c37 lui s8,0xffc00
8000284c: 0003fab7 lui s5,0x3f
80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
80002854: 00f72223 sw a5,4(a4)
80002858: 00004717 auipc a4,0x4
8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
80002860: 000017b7 lui a5,0x1
80002864: 00fa0a33 add s4,s4,a5
80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
8000286c: 00ca5713 srli a4,s4,0xc
80002870: 00371b93 slli s7,a4,0x3
80002874: 017b0633 add a2,s6,s7
80002878: 00062603 lw a2,0(a2)
8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
80002880: 40070713 addi a4,a4,1024
80002884: 00271713 slli a4,a4,0x2
80002888: 00ed0733 add a4,s10,a4
8000288c: 00072703 lw a4,0(a4)
80002890: 04077613 andi a2,a4,64
80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
80002898: 00e12623 sw a4,12(sp)
8000289c: 100cadf3 csrrs s11,sstatus,s9
800028a0: 018a0833 add a6,s4,s8
800028a4: 00001637 lui a2,0x1
800028a8: 00080593 mv a1,a6
800028ac: 000a0513 mv a0,s4
800028b0: 01012423 sw a6,8(sp)
800028b4: 855ff0ef jal ra,80002108 <memcmp>
800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
800028bc: 00c12703 lw a4,12(sp)
800028c0: 00812803 lw a6,8(sp)
800028c4: 08077713 andi a4,a4,128
800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
800028cc: 00001637 lui a2,0x1
800028d0: 00080593 mv a1,a6
800028d4: 000a0513 mv a0,s4
800028d8: f28ff0ef jal ra,80002000 <memcpy>
800028dc: 017b07b3 add a5,s6,s7
800028e0: 100d9073 csrw sstatus,s11
800028e4: 00004717 auipc a4,0x4
800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
800028ec: 00072703 lw a4,0(a4)
800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
800028f8: 00004717 auipc a4,0x4
800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
80002900: 00004717 auipc a4,0x4
80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
8000290c: 04100593 li a1,65
80002910: 00000617 auipc a2,0x0
80002914: 4e460613 addi a2,a2,1252 # 80002df4 <pass+0x1a4>
80002918: ffffe697 auipc a3,0xffffe
8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
80002920: ffffe517 auipc a0,0xffffe
80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
80002928: 0006a703 lw a4,0(a3)
8000292c: 0046a783 lw a5,4(a3)
80002930: 00058313 mv t1,a1
80002934: 00160613 addi a2,a2,1
80002938: 00f76733 or a4,a4,a5
8000293c: 010103b7 lui t2,0x1010
80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
80002944: 00000793 li a5,0
80002948: 00f52023 sw a5,0(a0)
8000294c: 00000813 li a6,0
80002950: 01052223 sw a6,4(a0)
80002954: 0006a703 lw a4,0(a3)
80002958: 0046a783 lw a5,4(a3)
8000295c: 00f76733 or a4,a4,a5
80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
80002964: 00064583 lbu a1,0(a2)
80002968: 0066a023 sw t1,0(a3)
8000296c: 0076a223 sw t2,4(a3)
80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
80002974: e39ff06f j 800027ac <handle_trap+0x134>
80002978: 04100793 li a5,65
8000297c: 00000617 auipc a2,0x0
80002980: 3f460613 addi a2,a2,1012 # 80002d70 <pass+0x120>
80002984: ffffe697 auipc a3,0xffffe
80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
8000298c: ffffe597 auipc a1,0xffffe
80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
80002994: 00078413 mv s0,a5
80002998: 00160613 addi a2,a2,1
8000299c: 010104b7 lui s1,0x1010
800029a0: 0006a703 lw a4,0(a3)
800029a4: 0046a783 lw a5,4(a3)
800029a8: 00f76733 or a4,a4,a5
800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
800029b0: 00000793 li a5,0
800029b4: 00000813 li a6,0
800029b8: 00f5a023 sw a5,0(a1)
800029bc: 0105a223 sw a6,4(a1)
800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
800029c4: 04100793 li a5,65
800029c8: 00000617 auipc a2,0x0
800029cc: 37460613 addi a2,a2,884 # 80002d3c <pass+0xec>
800029d0: ffffe697 auipc a3,0xffffe
800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
800029d8: ffffe597 auipc a1,0xffffe
800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
800029e0: 00078913 mv s2,a5
800029e4: 00160613 addi a2,a2,1
800029e8: 010109b7 lui s3,0x1010
800029ec: 0006a703 lw a4,0(a3)
800029f0: 0046a783 lw a5,4(a3)
800029f4: 00f76733 or a4,a4,a5
800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
800029fc: 00000793 li a5,0
80002a00: 00000813 li a6,0
80002a04: 00f5a023 sw a5,0(a1)
80002a08: 0105a223 sw a6,4(a1)
80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
80002a10: 00412503 lw a0,4(sp)
80002a14: 815ff0ef jal ra,80002228 <terminate>
80002a18: 00064783 lbu a5,0(a2)
80002a1c: 0086a023 sw s0,0(a3)
80002a20: 0096a223 sw s1,4(a3)
80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
80002a28: d85ff06f j 800027ac <handle_trap+0x134>
80002a2c: 00064783 lbu a5,0(a2)
80002a30: 0126a023 sw s2,0(a3)
80002a34: 0136a223 sw s3,4(a3)
80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
80002a40 <vm_boot>:
80002a40: f14027f3 csrr a5,mhartid
80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
80002a48: 00002797 auipc a5,0x2
80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
80002a50: 00c7d793 srli a5,a5,0xc
80002a54: 00a79793 slli a5,a5,0xa
80002a58: 0017e793 ori a5,a5,1
80002a5c: 00001697 auipc a3,0x1
80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
80002a64: 200007b7 lui a5,0x20000
80002a68: 00001717 auipc a4,0x1
80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
80002a74: f6010113 addi sp,sp,-160
80002a78: 00002697 auipc a3,0x2
80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
80002a80: 00c75793 srli a5,a4,0xc
80002a84: 80000737 lui a4,0x80000
80002a88: 08112e23 sw ra,156(sp)
80002a8c: 08812c23 sw s0,152(sp)
80002a90: 00e7e7b3 or a5,a5,a4
80002a94: 18079073 csrw satp,a5
80002a98: 01f00793 li a5,31
80002a9c: fff00713 li a4,-1
80002aa0: 00000297 auipc t0,0x0
80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
80002aa8: 305292f3 csrrw t0,mtvec,t0
80002aac: 3b071073 csrw pmpaddr0,a4
80002ab0: 3a079073 csrw pmpcfg0,a5
80002ab4: 7fbfd797 auipc a5,0x7fbfd
80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
80002abc: 10579073 csrw stvec,a5
80002ac0: 340027f3 csrr a5,mscratch
80002ac4: 7fc00837 lui a6,0x7fc00
80002ac8: 010787b3 add a5,a5,a6
80002acc: 14079073 csrw sscratch,a5
80002ad0: 0000b7b7 lui a5,0xb
80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
80002ad8: 30279073 csrw medeleg,a5
80002adc: 0001e7b7 lui a5,0x1e
80002ae0: 30079073 csrw mstatus,a5
80002ae4: 30405073 csrwi mie,0
80002ae8: 7fc03797 auipc a5,0x7fc03
80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
80002af0: 00004717 auipc a4,0x4
80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
80002af8: 7fc03797 auipc a5,0x7fc03
80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
80002b00: 00004717 auipc a4,0x4
80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
80002b08: 000808b7 lui a7,0x80
80002b0c: 00003717 auipc a4,0x3
80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
80002b14: 00003317 auipc t1,0x3
80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
80002b1c: 00400793 li a5,4
80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
80002b28: 0017d613 srli a2,a5,0x1
80002b2c: 011786b3 add a3,a5,a7
80002b30: 00f647b3 xor a5,a2,a5
80002b34: 010705b3 add a1,a4,a6
80002b38: 00c69693 slli a3,a3,0xc
80002b3c: 00579793 slli a5,a5,0x5
80002b40: 00d72023 sw a3,0(a4)
80002b44: 00b72223 sw a1,4(a4)
80002b48: 0207f793 andi a5,a5,32
80002b4c: 00870713 addi a4,a4,8
80002b50: 00f667b3 or a5,a2,a5
80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
80002b58: 00050413 mv s0,a0
80002b5c: 09000613 li a2,144
80002b60: 00000593 li a1,0
80002b64: 00010513 mv a0,sp
80002b68: 00003797 auipc a5,0x3
80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
80002b70: cecff0ef jal ra,8000205c <memset>
80002b74: 800007b7 lui a5,0x80000
80002b78: 00f40433 add s0,s0,a5
80002b7c: 00010513 mv a0,sp
80002b80: 08812223 sw s0,132(sp)
80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
80002b88: 09c12083 lw ra,156(sp)
80002b8c: 09812403 lw s0,152(sp)
80002b90: 0a010113 addi sp,sp,160
80002b94: 00008067 ret
80002b98: 0ff5b7b7 lui a5,0xff5b
80002b9c: 00080637 lui a2,0x80
80002ba0: d2678793 addi a5,a5,-730 # ff5ad26 <_start-0x700a52da>
80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
80002ba8: 800005b7 lui a1,0x80000
80002bac: 00c7f733 and a4,a5,a2
80002bb0: 0017f693 andi a3,a5,1
80002bb4: 00b70733 add a4,a4,a1
80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
80002bbc: 0007202f amoadd.w zero,zero,(a4)
80002bc0: 0017d793 srli a5,a5,0x1
80002bc4: 00c7f733 and a4,a5,a2
80002bc8: 0017f693 andi a3,a5,1
80002bcc: 00b70733 add a4,a4,a1
80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
80002bd4: 00072003 lw zero,0(a4)
80002bd8: 0017d793 srli a5,a5,0x1
80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
80002be0 <userstart>:
80002be0: 80000537 lui a0,0x80000
80002be4: 80000593 li a1,-2048
80002be8: 00000697 auipc a3,0x0
80002bec: 41868693 addi a3,a3,1048 # 80003000 <begin_signature>
80002bf0: 00a6a023 sw a0,0(a3)
80002bf4: e0b6a72f amomaxu.w a4,a1,(a3)
80002bf8: 80000eb7 lui t4,0x80000
80002bfc: 00200193 li gp,2
80002c00: 05d71063 bne a4,t4,80002c40 <fail>
80002c04 <test_3>:
80002c04: 0006a783 lw a5,0(a3)
80002c08: 80000e93 li t4,-2048
80002c0c: 00300193 li gp,3
80002c10: 03d79863 bne a5,t4,80002c40 <fail>
80002c14 <test_4>:
80002c14: fff00593 li a1,-1
80002c18: 0006a023 sw zero,0(a3)
80002c1c: e0b6a72f amomaxu.w a4,a1,(a3)
80002c20: 00000e93 li t4,0
80002c24: 00400193 li gp,4
80002c28: 01d71c63 bne a4,t4,80002c40 <fail>
80002c2c <test_5>:
80002c2c: 0006a783 lw a5,0(a3)
80002c30: fff00e93 li t4,-1
80002c34: 00500193 li gp,5
80002c38: 01d79463 bne a5,t4,80002c40 <fail>
80002c3c: 00301a63 bne zero,gp,80002c50 <pass>
80002c40 <fail>:
80002c40: 00119513 slli a0,gp,0x1
80002c44: 00050063 beqz a0,80002c44 <fail+0x4>
80002c48: 00156513 ori a0,a0,1
80002c4c: 00000073 ecall
80002c50 <pass>:
80002c50: 00100513 li a0,1
80002c54: 00000073 ecall
80002c58: c0001073 unimp

BIN
Tests/isa/rv32ua-v-amomin_w Normal file

Binary file not shown.

View File

@@ -0,0 +1,940 @@
rv32ua-v-amomin_w: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 00c0006f j 8000000c <handle_reset>
80000004 <nmi_vector>:
80000004: 2780206f j 8000227c <wtf>
80000008 <trap_vector>:
80000008: 2740206f j 8000227c <wtf>
8000000c <handle_reset>:
8000000c: 00000297 auipc t0,0x0
80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
80000014: 30529073 csrw mtvec,t0
80000018: 00007117 auipc sp,0x7
8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
80000020: f14022f3 csrr t0,mhartid
80000024: 00c29293 slli t0,t0,0xc
80000028: 00510133 add sp,sp,t0
8000002c: 34011073 csrw mscratch,sp
80000030: 00003517 auipc a0,0x3
80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
80000038: 2090206f j 80002a40 <vm_boot>
8000003c <pop_tf>:
8000003c: 08452283 lw t0,132(a0)
80000040: 14129073 csrw sepc,t0
80000044: 00452083 lw ra,4(a0)
80000048: 00852103 lw sp,8(a0)
8000004c: 00c52183 lw gp,12(a0)
80000050: 01052203 lw tp,16(a0)
80000054: 01452283 lw t0,20(a0)
80000058: 01852303 lw t1,24(a0)
8000005c: 01c52383 lw t2,28(a0)
80000060: 02052403 lw s0,32(a0)
80000064: 02452483 lw s1,36(a0)
80000068: 02c52583 lw a1,44(a0)
8000006c: 03052603 lw a2,48(a0)
80000070: 03452683 lw a3,52(a0)
80000074: 03852703 lw a4,56(a0)
80000078: 03c52783 lw a5,60(a0)
8000007c: 04052803 lw a6,64(a0)
80000080: 04452883 lw a7,68(a0)
80000084: 04852903 lw s2,72(a0)
80000088: 04c52983 lw s3,76(a0)
8000008c: 05052a03 lw s4,80(a0)
80000090: 05452a83 lw s5,84(a0)
80000094: 05852b03 lw s6,88(a0)
80000098: 05c52b83 lw s7,92(a0)
8000009c: 06052c03 lw s8,96(a0)
800000a0: 06452c83 lw s9,100(a0)
800000a4: 06852d03 lw s10,104(a0)
800000a8: 06c52d83 lw s11,108(a0)
800000ac: 07052e03 lw t3,112(a0)
800000b0: 07452e83 lw t4,116(a0)
800000b4: 07852f03 lw t5,120(a0)
800000b8: 07c52f83 lw t6,124(a0)
800000bc: 02852503 lw a0,40(a0)
800000c0: 10200073 sret
800000c4 <trap_entry>:
800000c4: 14011173 csrrw sp,sscratch,sp
800000c8: 00112223 sw ra,4(sp)
800000cc: 00312623 sw gp,12(sp)
800000d0: 00412823 sw tp,16(sp)
800000d4: 00512a23 sw t0,20(sp)
800000d8: 00612c23 sw t1,24(sp)
800000dc: 00712e23 sw t2,28(sp)
800000e0: 02812023 sw s0,32(sp)
800000e4: 02912223 sw s1,36(sp)
800000e8: 02a12423 sw a0,40(sp)
800000ec: 02b12623 sw a1,44(sp)
800000f0: 02c12823 sw a2,48(sp)
800000f4: 02d12a23 sw a3,52(sp)
800000f8: 02e12c23 sw a4,56(sp)
800000fc: 02f12e23 sw a5,60(sp)
80000100: 05012023 sw a6,64(sp)
80000104: 05112223 sw a7,68(sp)
80000108: 05212423 sw s2,72(sp)
8000010c: 05312623 sw s3,76(sp)
80000110: 05412823 sw s4,80(sp)
80000114: 05512a23 sw s5,84(sp)
80000118: 05612c23 sw s6,88(sp)
8000011c: 05712e23 sw s7,92(sp)
80000120: 07812023 sw s8,96(sp)
80000124: 07912223 sw s9,100(sp)
80000128: 07a12423 sw s10,104(sp)
8000012c: 07b12623 sw s11,108(sp)
80000130: 07c12823 sw t3,112(sp)
80000134: 07d12a23 sw t4,116(sp)
80000138: 07e12c23 sw t5,120(sp)
8000013c: 07f12e23 sw t6,124(sp)
80000140: 140112f3 csrrw t0,sscratch,sp
80000144: 00512423 sw t0,8(sp)
80000148: 100022f3 csrr t0,sstatus
8000014c: 08512023 sw t0,128(sp)
80000150: 141022f3 csrr t0,sepc
80000154: 08512223 sw t0,132(sp)
80000158: 143022f3 csrr t0,sbadaddr
8000015c: 08512423 sw t0,136(sp)
80000160: 142022f3 csrr t0,scause
80000164: 08512623 sw t0,140(sp)
80000168: 00010513 mv a0,sp
8000016c: 50c0206f j 80002678 <handle_trap>
Disassembly of section .text:
80002000 <memcpy>:
80002000: 00c5e7b3 or a5,a1,a2
80002004: 00f567b3 or a5,a0,a5
80002008: 0037f793 andi a5,a5,3
8000200c: 00c506b3 add a3,a0,a2
80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
80002014: 00c58633 add a2,a1,a2
80002018: 00050793 mv a5,a0
8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
80002020: 00158593 addi a1,a1,1
80002024: fff5c703 lbu a4,-1(a1)
80002028: 00178793 addi a5,a5,1
8000202c: fee78fa3 sb a4,-1(a5)
80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
80002034: 00008067 ret
80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
8000203c: 00050793 mv a5,a0
80002040: 00458593 addi a1,a1,4
80002044: ffc5a703 lw a4,-4(a1)
80002048: 00478793 addi a5,a5,4
8000204c: fee7ae23 sw a4,-4(a5)
80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
80002054: 00008067 ret
80002058: 00008067 ret
8000205c <memset>:
8000205c: 00c567b3 or a5,a0,a2
80002060: 0037f793 andi a5,a5,3
80002064: 00c50633 add a2,a0,a2
80002068: 02078063 beqz a5,80002088 <memset+0x2c>
8000206c: 0ff5f593 andi a1,a1,255
80002070: 00050793 mv a5,a0
80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
80002078: 00178793 addi a5,a5,1
8000207c: feb78fa3 sb a1,-1(a5)
80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
80002084: 00008067 ret
80002088: 0ff5f593 andi a1,a1,255
8000208c: 00859793 slli a5,a1,0x8
80002090: 00b7e7b3 or a5,a5,a1
80002094: 01079593 slli a1,a5,0x10
80002098: 00f5e5b3 or a1,a1,a5
8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
800020a0: 00050793 mv a5,a0
800020a4: 00478793 addi a5,a5,4
800020a8: feb7ae23 sw a1,-4(a5)
800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
800020b0: 00008067 ret
800020b4: 00008067 ret
800020b8 <strlen>:
800020b8: 00054783 lbu a5,0(a0)
800020bc: 00050713 mv a4,a0
800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
800020c4: 00150513 addi a0,a0,1
800020c8: 00054783 lbu a5,0(a0)
800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
800020d0: 40e50533 sub a0,a0,a4
800020d4: 00008067 ret
800020d8: 00000513 li a0,0
800020dc: 00008067 ret
800020e0 <strcmp>:
800020e0: 00150513 addi a0,a0,1
800020e4: fff54783 lbu a5,-1(a0)
800020e8: 00158593 addi a1,a1,1
800020ec: fff5c703 lbu a4,-1(a1)
800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
800020f8: 40e78533 sub a0,a5,a4
800020fc: 00008067 ret
80002100: 00000793 li a5,0
80002104: ff5ff06f j 800020f8 <strcmp+0x18>
80002108 <memcmp>:
80002108: 00b567b3 or a5,a0,a1
8000210c: 0037f793 andi a5,a5,3
80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
80002114: ffc67693 andi a3,a2,-4
80002118: 00d506b3 add a3,a0,a3
8000211c: 00050813 mv a6,a0
80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
80002124: 00052703 lw a4,0(a0)
80002128: 0005a783 lw a5,0(a1)
8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
80002130: 0240006f j 80002154 <memcmp+0x4c>
80002134: 00052703 lw a4,0(a0)
80002138: 0005a783 lw a5,0(a1)
8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
80002140: 00450513 addi a0,a0,4
80002144: 00458593 addi a1,a1,4
80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
8000214c: 41050833 sub a6,a0,a6
80002150: 41060633 sub a2,a2,a6
80002154: 00c58633 add a2,a1,a2
80002158: 0140006f j 8000216c <memcmp+0x64>
8000215c: 00158593 addi a1,a1,1
80002160: fff54783 lbu a5,-1(a0)
80002164: fff5c703 lbu a4,-1(a1)
80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
8000216c: 00150513 addi a0,a0,1
80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
80002174: 00000513 li a0,0
80002178: 00008067 ret
8000217c: 40e78533 sub a0,a5,a4
80002180: 00008067 ret
80002184 <strcpy>:
80002184: 00050793 mv a5,a0
80002188: 00158593 addi a1,a1,1
8000218c: fff5c703 lbu a4,-1(a1)
80002190: 00178793 addi a5,a5,1
80002194: fee78fa3 sb a4,-1(a5)
80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
8000219c: 00008067 ret
800021a0 <atol>:
800021a0: 00054783 lbu a5,0(a0)
800021a4: 02000713 li a4,32
800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
800021ac: 00150513 addi a0,a0,1
800021b0: 00054783 lbu a5,0(a0)
800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
800021b8: fd578713 addi a4,a5,-43
800021bc: 0fd77713 andi a4,a4,253
800021c0: 04070263 beqz a4,80002204 <atol+0x64>
800021c4: 00054683 lbu a3,0(a0)
800021c8: 00050793 mv a5,a0
800021cc: 00000613 li a2,0
800021d0: 04068863 beqz a3,80002220 <atol+0x80>
800021d4: 00000513 li a0,0
800021d8: 00178793 addi a5,a5,1
800021dc: fd068593 addi a1,a3,-48
800021e0: 00251713 slli a4,a0,0x2
800021e4: 0007c683 lbu a3,0(a5)
800021e8: 00a70533 add a0,a4,a0
800021ec: 00151513 slli a0,a0,0x1
800021f0: 00a58533 add a0,a1,a0
800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
800021f8: 00060463 beqz a2,80002200 <atol+0x60>
800021fc: 40a00533 neg a0,a0
80002200: 00008067 ret
80002204: 00154683 lbu a3,1(a0)
80002208: fd378793 addi a5,a5,-45
8000220c: 0017b613 seqz a2,a5
80002210: 00150793 addi a5,a0,1
80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
80002218: 00000513 li a0,0
8000221c: fddff06f j 800021f8 <atol+0x58>
80002220: 00000513 li a0,0
80002224: 00008067 ret
80002228 <terminate>:
80002228: fffff697 auipc a3,0xfffff
8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
80002230: 0006a703 lw a4,0(a3)
80002234: 0046a783 lw a5,4(a3)
80002238: 00050813 mv a6,a0
8000223c: 41f55893 srai a7,a0,0x1f
80002240: 00f76733 or a4,a4,a5
80002244: 02070663 beqz a4,80002270 <terminate+0x48>
80002248: fffff617 auipc a2,0xfffff
8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
80002250: 00000713 li a4,0
80002254: 00e62023 sw a4,0(a2)
80002258: 00000793 li a5,0
8000225c: 00f62223 sw a5,4(a2)
80002260: 0006a703 lw a4,0(a3)
80002264: 0046a783 lw a5,4(a3)
80002268: 00f76733 or a4,a4,a5
8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
80002270: 0106a023 sw a6,0(a3)
80002274: 0116a223 sw a7,4(a3)
80002278: 0000006f j 80002278 <terminate+0x50>
8000227c <wtf>:
8000227c: ff010113 addi sp,sp,-16
80002280: 34900513 li a0,841
80002284: 00112623 sw ra,12(sp)
80002288: fa1ff0ef jal ra,80002228 <terminate>
8000228c <printhex>:
8000228c: fe010113 addi sp,sp,-32
80002290: 01b10793 addi a5,sp,27
80002294: 00b10e93 addi t4,sp,11
80002298: 00900e13 li t3,9
8000229c: 00f57693 andi a3,a0,15
800022a0: 01c59313 slli t1,a1,0x1c
800022a4: 00455513 srli a0,a0,0x4
800022a8: 05700613 li a2,87
800022ac: 0ff6f713 andi a4,a3,255
800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
800022b4: 03000613 li a2,48
800022b8: 00c70733 add a4,a4,a2
800022bc: 00e78023 sb a4,0(a5)
800022c0: fff78793 addi a5,a5,-1
800022c4: 00a36533 or a0,t1,a0
800022c8: 0045d593 srli a1,a1,0x4
800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
800022d0: 00c14583 lbu a1,12(sp)
800022d4: 00010e23 sb zero,28(sp)
800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
800022dc: 00c10513 addi a0,sp,12
800022e0: fffff697 auipc a3,0xfffff
800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
800022e8: fffff617 auipc a2,0xfffff
800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
800022f0: 0006a703 lw a4,0(a3)
800022f4: 0046a783 lw a5,4(a3)
800022f8: 00058813 mv a6,a1
800022fc: 00150513 addi a0,a0,1
80002300: 00f76733 or a4,a4,a5
80002304: 010108b7 lui a7,0x1010
80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
8000230c: 00000713 li a4,0
80002310: 00e62023 sw a4,0(a2)
80002314: 00000793 li a5,0
80002318: 00f62223 sw a5,4(a2)
8000231c: 0006a703 lw a4,0(a3)
80002320: 0046a783 lw a5,4(a3)
80002324: 00f76733 or a4,a4,a5
80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
8000232c: 00054583 lbu a1,0(a0)
80002330: 0106a023 sw a6,0(a3)
80002334: 0116a223 sw a7,4(a3)
80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
8000233c: 02010113 addi sp,sp,32
80002340: 00008067 ret
80002344 <handle_fault>:
80002344: ff010113 addi sp,sp,-16
80002348: fffff6b7 lui a3,0xfffff
8000234c: 00112623 sw ra,12(sp)
80002350: 00812423 sw s0,8(sp)
80002354: 00912223 sw s1,4(sp)
80002358: 00d50733 add a4,a0,a3
8000235c: 0003e7b7 lui a5,0x3e
80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
80002364: 00c55613 srli a2,a0,0xc
80002368: 40060e13 addi t3,a2,1024
8000236c: 00002317 auipc t1,0x2
80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
80002374: 002e1793 slli a5,t3,0x2
80002378: 00f307b3 add a5,t1,a5
8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
80002380: 00d57533 and a0,a0,a3
80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
80002388: 00004797 auipc a5,0x4
8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
80002390: 0007a583 lw a1,0(a5)
80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
80002398: 0045a783 lw a5,4(a1)
8000239c: 00004717 auipc a4,0x4
800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
800023a4: 00072703 lw a4,0(a4)
800023a8: 00004697 auipc a3,0x4
800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
800023b4: 0005a703 lw a4,0(a1)
800023b8: 002e1793 slli a5,t3,0x2
800023bc: 00f307b3 add a5,t1,a5
800023c0: 00c75713 srli a4,a4,0xc
800023c4: 00a71713 slli a4,a4,0xa
800023c8: 0df76e93 ori t4,a4,223
800023cc: 01f76693 ori a3,a4,31
800023d0: 01d7a023 sw t4,0(a5)
800023d4: 12050073 sfence.vma a0
800023d8: 00004717 auipc a4,0x4
800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
800023e0: 00361793 slli a5,a2,0x3
800023e4: 00f707b3 add a5,a4,a5
800023e8: 0007a703 lw a4,0(a5)
800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
800023f0: 0005a703 lw a4,0(a1)
800023f4: 00e7a023 sw a4,0(a5)
800023f8: 0045a703 lw a4,4(a1)
800023fc: 00e7a223 sw a4,4(a5)
80002400: 000407b7 lui a5,0x40
80002404: 1007a5f3 csrrs a1,sstatus,a5
80002408: ffc007b7 lui a5,0xffc00
8000240c: 00f507b3 add a5,a0,a5
80002410: 00001637 lui a2,0x1
80002414: 00050713 mv a4,a0
80002418: 00c78633 add a2,a5,a2
8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
80002420: 0047ae83 lw t4,4(a5)
80002424: 0087a883 lw a7,8(a5)
80002428: 00c7a803 lw a6,12(a5)
8000242c: 01e72023 sw t5,0(a4)
80002430: 01d72223 sw t4,4(a4)
80002434: 01172423 sw a7,8(a4)
80002438: 01072623 sw a6,12(a4)
8000243c: 01078793 addi a5,a5,16
80002440: 01070713 addi a4,a4,16
80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
80002448: 10059073 csrw sstatus,a1
8000244c: 002e1e13 slli t3,t3,0x2
80002450: 01c30333 add t1,t1,t3
80002454: 00d32023 sw a3,0(t1)
80002458: 12050073 sfence.vma a0
8000245c: 0000100f fence.i
80002460: 00c12083 lw ra,12(sp)
80002464: 00812403 lw s0,8(sp)
80002468: 00412483 lw s1,4(sp)
8000246c: 01010113 addi sp,sp,16
80002470: 00008067 ret
80002474: 04077693 andi a3,a4,64
80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
8000247c: 04076713 ori a4,a4,64
80002480: 00e7a023 sw a4,0(a5)
80002484: 12050073 sfence.vma a0
80002488: 00c12083 lw ra,12(sp)
8000248c: 00812403 lw s0,8(sp)
80002490: 00412483 lw s1,4(sp)
80002494: 01010113 addi sp,sp,16
80002498: 00008067 ret
8000249c: 08077693 andi a3,a4,128
800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
800024a4: 00f00693 li a3,15
800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
800024ac: 08076713 ori a4,a4,128
800024b0: 00e7a023 sw a4,0(a5)
800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
800024b8: 00004797 auipc a5,0x4
800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
800024c4: 04100513 li a0,65
800024c8: 00000597 auipc a1,0x0
800024cc: 79458593 addi a1,a1,1940 # 80002c5c <pass+0xc>
800024d0: fffff697 auipc a3,0xfffff
800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
800024d8: fffff617 auipc a2,0xfffff
800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
800024e0: 0006a703 lw a4,0(a3)
800024e4: 0046a783 lw a5,4(a3)
800024e8: 00050313 mv t1,a0
800024ec: 00158593 addi a1,a1,1
800024f0: 00f76733 or a4,a4,a5
800024f4: 010103b7 lui t2,0x1010
800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
800024fc: 00000793 li a5,0
80002500: 00f62023 sw a5,0(a2)
80002504: 00000813 li a6,0
80002508: 01062223 sw a6,4(a2)
8000250c: 0006a703 lw a4,0(a3)
80002510: 0046a783 lw a5,4(a3)
80002514: 00f76733 or a4,a4,a5
80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
8000251c: 0005c503 lbu a0,0(a1)
80002520: 0066a023 sw t1,0(a3)
80002524: 0076a223 sw t2,4(a3)
80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
8000252c: 00300513 li a0,3
80002530: cf9ff0ef jal ra,80002228 <terminate>
80002534: 04100513 li a0,65
80002538: 00000597 auipc a1,0x0
8000253c: 7b058593 addi a1,a1,1968 # 80002ce8 <pass+0x98>
80002540: fffff697 auipc a3,0xfffff
80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
80002548: fffff617 auipc a2,0xfffff
8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
80002550: 0006a703 lw a4,0(a3)
80002554: 0046a783 lw a5,4(a3)
80002558: 00050f13 mv t5,a0
8000255c: 00158593 addi a1,a1,1
80002560: 00f76733 or a4,a4,a5
80002564: 01010fb7 lui t6,0x1010
80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
8000256c: 00000793 li a5,0
80002570: 00f62023 sw a5,0(a2)
80002574: 00000813 li a6,0
80002578: 01062223 sw a6,4(a2)
8000257c: 0006a703 lw a4,0(a3)
80002580: 0046a783 lw a5,4(a3)
80002584: 00f76733 or a4,a4,a5
80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
8000258c: 0005c503 lbu a0,0(a1)
80002590: 01e6a023 sw t5,0(a3)
80002594: 01f6a223 sw t6,4(a3)
80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
800025a0: 04100513 li a0,65
800025a4: 00000597 auipc a1,0x0
800025a8: 75c58593 addi a1,a1,1884 # 80002d00 <pass+0xb0>
800025ac: fffff697 auipc a3,0xfffff
800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
800025b4: fffff617 auipc a2,0xfffff
800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
800025bc: 0006a703 lw a4,0(a3)
800025c0: 0046a783 lw a5,4(a3)
800025c4: 00050813 mv a6,a0
800025c8: 00158593 addi a1,a1,1
800025cc: 00f76733 or a4,a4,a5
800025d0: 010108b7 lui a7,0x1010
800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
800025d8: 00000713 li a4,0
800025dc: 00e62023 sw a4,0(a2)
800025e0: 00000793 li a5,0
800025e4: 00f62223 sw a5,4(a2)
800025e8: 0006a703 lw a4,0(a3)
800025ec: 0046a783 lw a5,4(a3)
800025f0: 00f76733 or a4,a4,a5
800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
800025f8: 0005c503 lbu a0,0(a1)
800025fc: 0106a023 sw a6,0(a3)
80002600: 0116a223 sw a7,4(a3)
80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
8000260c: 04100793 li a5,65
80002610: 00000597 auipc a1,0x0
80002614: 69058593 addi a1,a1,1680 # 80002ca0 <pass+0x50>
80002618: fffff697 auipc a3,0xfffff
8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
80002620: fffff617 auipc a2,0xfffff
80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
80002628: 0006a803 lw a6,0(a3)
8000262c: 0046a883 lw a7,4(a3)
80002630: 00078413 mv s0,a5
80002634: 00158593 addi a1,a1,1
80002638: 01186833 or a6,a6,a7
8000263c: 010104b7 lui s1,0x1010
80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
80002644: 00000793 li a5,0
80002648: 00f62023 sw a5,0(a2)
8000264c: 00000813 li a6,0
80002650: 01062223 sw a6,4(a2)
80002654: 0006a703 lw a4,0(a3)
80002658: 0046a783 lw a5,4(a3)
8000265c: 00f76733 or a4,a4,a5
80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
80002664: 0005c783 lbu a5,0(a1)
80002668: 0086a023 sw s0,0(a3)
8000266c: 0096a223 sw s1,4(a3)
80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
80002678 <handle_trap>:
80002678: 08c52583 lw a1,140(a0)
8000267c: fb010113 addi sp,sp,-80
80002680: 03412c23 sw s4,56(sp)
80002684: 04112623 sw ra,76(sp)
80002688: 04812423 sw s0,72(sp)
8000268c: 04912223 sw s1,68(sp)
80002690: 05212023 sw s2,64(sp)
80002694: 03312e23 sw s3,60(sp)
80002698: 03512a23 sw s5,52(sp)
8000269c: 03612823 sw s6,48(sp)
800026a0: 03712623 sw s7,44(sp)
800026a4: 03812423 sw s8,40(sp)
800026a8: 03912223 sw s9,36(sp)
800026ac: 03a12023 sw s10,32(sp)
800026b0: 01b12e23 sw s11,28(sp)
800026b4: 00800793 li a5,8
800026b8: 00050a13 mv s4,a0
800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
800026c0: 00200793 li a5,2
800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
800026c8: ff458793 addi a5,a1,-12
800026cc: 00100713 li a4,1
800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
800026d4: 00f00793 li a5,15
800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
800026dc: 088a2503 lw a0,136(s4)
800026e0: c65ff0ef jal ra,80002344 <handle_fault>
800026e4: 04812403 lw s0,72(sp)
800026e8: 04c12083 lw ra,76(sp)
800026ec: 04412483 lw s1,68(sp)
800026f0: 04012903 lw s2,64(sp)
800026f4: 03c12983 lw s3,60(sp)
800026f8: 03412a83 lw s5,52(sp)
800026fc: 03012b03 lw s6,48(sp)
80002700: 02c12b83 lw s7,44(sp)
80002704: 02812c03 lw s8,40(sp)
80002708: 02412c83 lw s9,36(sp)
8000270c: 02012d03 lw s10,32(sp)
80002710: 01c12d83 lw s11,28(sp)
80002714: 000a0513 mv a0,s4
80002718: 03812a03 lw s4,56(sp)
8000271c: 05010113 addi sp,sp,80
80002720: 91dfd06f j 8000003c <pop_tf>
80002724: 08452703 lw a4,132(a0)
80002728: 00377793 andi a5,a4,3
8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
80002734: 00301073 fssr zero
80002738: 00072703 lw a4,0(a4)
8000273c: 0007a783 lw a5,0(a5)
80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
80002744: 04100513 li a0,65
80002748: 00000597 auipc a1,0x0
8000274c: 68058593 addi a1,a1,1664 # 80002dc8 <pass+0x178>
80002750: fffff697 auipc a3,0xfffff
80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
80002758: fffff617 auipc a2,0xfffff
8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
80002760: 0006a703 lw a4,0(a3)
80002764: 0046a783 lw a5,4(a3)
80002768: 00050813 mv a6,a0
8000276c: 00158593 addi a1,a1,1
80002770: 00f76733 or a4,a4,a5
80002774: 010108b7 lui a7,0x1010
80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
8000277c: 00000713 li a4,0
80002780: 00e62023 sw a4,0(a2)
80002784: 00000793 li a5,0
80002788: 00f62223 sw a5,4(a2)
8000278c: 0006a703 lw a4,0(a3)
80002790: 0046a783 lw a5,4(a3)
80002794: 00f76733 or a4,a4,a5
80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
8000279c: 0005c503 lbu a0,0(a1)
800027a0: 0106a023 sw a6,0(a3)
800027a4: 0116a223 sw a7,4(a3)
800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
800027ac: 00300513 li a0,3
800027b0: a79ff0ef jal ra,80002228 <terminate>
800027b4: 00100513 li a0,1
800027b8: a71ff0ef jal ra,80002228 <terminate>
800027bc: 00000597 auipc a1,0x0
800027c0: 5e858593 addi a1,a1,1512 # 80002da4 <pass+0x154>
800027c4: 04100613 li a2,65
800027c8: fffff697 auipc a3,0xfffff
800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
800027d0: fffff517 auipc a0,0xfffff
800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
800027d8: 0006a703 lw a4,0(a3)
800027dc: 0046a783 lw a5,4(a3)
800027e0: 00060e13 mv t3,a2
800027e4: 00158593 addi a1,a1,1
800027e8: 00f76733 or a4,a4,a5
800027ec: 01010eb7 lui t4,0x1010
800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
800027f4: 00000793 li a5,0
800027f8: 00f52023 sw a5,0(a0)
800027fc: 00000813 li a6,0
80002800: 01052223 sw a6,4(a0)
80002804: 0006a703 lw a4,0(a3)
80002808: 0046a783 lw a5,4(a3)
8000280c: 00f76733 or a4,a4,a5
80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
80002814: 0005c603 lbu a2,0(a1)
80002818: 01c6a023 sw t3,0(a3)
8000281c: 01d6a223 sw t4,4(a3)
80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
80002824: f89ff06f j 800027ac <handle_trap+0x134>
80002828: 02852783 lw a5,40(a0)
8000282c: 00001a37 lui s4,0x1
80002830: 00004b17 auipc s6,0x4
80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
80002838: 00f12223 sw a5,4(sp)
8000283c: 00001d17 auipc s10,0x1
80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
80002844: 00040cb7 lui s9,0x40
80002848: ffc00c37 lui s8,0xffc00
8000284c: 0003fab7 lui s5,0x3f
80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
80002854: 00f72223 sw a5,4(a4)
80002858: 00004717 auipc a4,0x4
8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
80002860: 000017b7 lui a5,0x1
80002864: 00fa0a33 add s4,s4,a5
80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
8000286c: 00ca5713 srli a4,s4,0xc
80002870: 00371b93 slli s7,a4,0x3
80002874: 017b0633 add a2,s6,s7
80002878: 00062603 lw a2,0(a2)
8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
80002880: 40070713 addi a4,a4,1024
80002884: 00271713 slli a4,a4,0x2
80002888: 00ed0733 add a4,s10,a4
8000288c: 00072703 lw a4,0(a4)
80002890: 04077613 andi a2,a4,64
80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
80002898: 00e12623 sw a4,12(sp)
8000289c: 100cadf3 csrrs s11,sstatus,s9
800028a0: 018a0833 add a6,s4,s8
800028a4: 00001637 lui a2,0x1
800028a8: 00080593 mv a1,a6
800028ac: 000a0513 mv a0,s4
800028b0: 01012423 sw a6,8(sp)
800028b4: 855ff0ef jal ra,80002108 <memcmp>
800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
800028bc: 00c12703 lw a4,12(sp)
800028c0: 00812803 lw a6,8(sp)
800028c4: 08077713 andi a4,a4,128
800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
800028cc: 00001637 lui a2,0x1
800028d0: 00080593 mv a1,a6
800028d4: 000a0513 mv a0,s4
800028d8: f28ff0ef jal ra,80002000 <memcpy>
800028dc: 017b07b3 add a5,s6,s7
800028e0: 100d9073 csrw sstatus,s11
800028e4: 00004717 auipc a4,0x4
800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
800028ec: 00072703 lw a4,0(a4)
800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
800028f8: 00004717 auipc a4,0x4
800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
80002900: 00004717 auipc a4,0x4
80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
8000290c: 04100593 li a1,65
80002910: 00000617 auipc a2,0x0
80002914: 4e460613 addi a2,a2,1252 # 80002df4 <pass+0x1a4>
80002918: ffffe697 auipc a3,0xffffe
8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
80002920: ffffe517 auipc a0,0xffffe
80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
80002928: 0006a703 lw a4,0(a3)
8000292c: 0046a783 lw a5,4(a3)
80002930: 00058313 mv t1,a1
80002934: 00160613 addi a2,a2,1
80002938: 00f76733 or a4,a4,a5
8000293c: 010103b7 lui t2,0x1010
80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
80002944: 00000793 li a5,0
80002948: 00f52023 sw a5,0(a0)
8000294c: 00000813 li a6,0
80002950: 01052223 sw a6,4(a0)
80002954: 0006a703 lw a4,0(a3)
80002958: 0046a783 lw a5,4(a3)
8000295c: 00f76733 or a4,a4,a5
80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
80002964: 00064583 lbu a1,0(a2)
80002968: 0066a023 sw t1,0(a3)
8000296c: 0076a223 sw t2,4(a3)
80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
80002974: e39ff06f j 800027ac <handle_trap+0x134>
80002978: 04100793 li a5,65
8000297c: 00000617 auipc a2,0x0
80002980: 3f460613 addi a2,a2,1012 # 80002d70 <pass+0x120>
80002984: ffffe697 auipc a3,0xffffe
80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
8000298c: ffffe597 auipc a1,0xffffe
80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
80002994: 00078413 mv s0,a5
80002998: 00160613 addi a2,a2,1
8000299c: 010104b7 lui s1,0x1010
800029a0: 0006a703 lw a4,0(a3)
800029a4: 0046a783 lw a5,4(a3)
800029a8: 00f76733 or a4,a4,a5
800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
800029b0: 00000793 li a5,0
800029b4: 00000813 li a6,0
800029b8: 00f5a023 sw a5,0(a1)
800029bc: 0105a223 sw a6,4(a1)
800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
800029c4: 04100793 li a5,65
800029c8: 00000617 auipc a2,0x0
800029cc: 37460613 addi a2,a2,884 # 80002d3c <pass+0xec>
800029d0: ffffe697 auipc a3,0xffffe
800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
800029d8: ffffe597 auipc a1,0xffffe
800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
800029e0: 00078913 mv s2,a5
800029e4: 00160613 addi a2,a2,1
800029e8: 010109b7 lui s3,0x1010
800029ec: 0006a703 lw a4,0(a3)
800029f0: 0046a783 lw a5,4(a3)
800029f4: 00f76733 or a4,a4,a5
800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
800029fc: 00000793 li a5,0
80002a00: 00000813 li a6,0
80002a04: 00f5a023 sw a5,0(a1)
80002a08: 0105a223 sw a6,4(a1)
80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
80002a10: 00412503 lw a0,4(sp)
80002a14: 815ff0ef jal ra,80002228 <terminate>
80002a18: 00064783 lbu a5,0(a2)
80002a1c: 0086a023 sw s0,0(a3)
80002a20: 0096a223 sw s1,4(a3)
80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
80002a28: d85ff06f j 800027ac <handle_trap+0x134>
80002a2c: 00064783 lbu a5,0(a2)
80002a30: 0126a023 sw s2,0(a3)
80002a34: 0136a223 sw s3,4(a3)
80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
80002a40 <vm_boot>:
80002a40: f14027f3 csrr a5,mhartid
80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
80002a48: 00002797 auipc a5,0x2
80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
80002a50: 00c7d793 srli a5,a5,0xc
80002a54: 00a79793 slli a5,a5,0xa
80002a58: 0017e793 ori a5,a5,1
80002a5c: 00001697 auipc a3,0x1
80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
80002a64: 200007b7 lui a5,0x20000
80002a68: 00001717 auipc a4,0x1
80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
80002a74: f6010113 addi sp,sp,-160
80002a78: 00002697 auipc a3,0x2
80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
80002a80: 00c75793 srli a5,a4,0xc
80002a84: 80000737 lui a4,0x80000
80002a88: 08112e23 sw ra,156(sp)
80002a8c: 08812c23 sw s0,152(sp)
80002a90: 00e7e7b3 or a5,a5,a4
80002a94: 18079073 csrw satp,a5
80002a98: 01f00793 li a5,31
80002a9c: fff00713 li a4,-1
80002aa0: 00000297 auipc t0,0x0
80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
80002aa8: 305292f3 csrrw t0,mtvec,t0
80002aac: 3b071073 csrw pmpaddr0,a4
80002ab0: 3a079073 csrw pmpcfg0,a5
80002ab4: 7fbfd797 auipc a5,0x7fbfd
80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
80002abc: 10579073 csrw stvec,a5
80002ac0: 340027f3 csrr a5,mscratch
80002ac4: 7fc00837 lui a6,0x7fc00
80002ac8: 010787b3 add a5,a5,a6
80002acc: 14079073 csrw sscratch,a5
80002ad0: 0000b7b7 lui a5,0xb
80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
80002ad8: 30279073 csrw medeleg,a5
80002adc: 0001e7b7 lui a5,0x1e
80002ae0: 30079073 csrw mstatus,a5
80002ae4: 30405073 csrwi mie,0
80002ae8: 7fc03797 auipc a5,0x7fc03
80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
80002af0: 00004717 auipc a4,0x4
80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
80002af8: 7fc03797 auipc a5,0x7fc03
80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
80002b00: 00004717 auipc a4,0x4
80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
80002b08: 000808b7 lui a7,0x80
80002b0c: 00003717 auipc a4,0x3
80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
80002b14: 00003317 auipc t1,0x3
80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
80002b1c: 03e00793 li a5,62
80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
80002b28: 0017d613 srli a2,a5,0x1
80002b2c: 011786b3 add a3,a5,a7
80002b30: 00f647b3 xor a5,a2,a5
80002b34: 010705b3 add a1,a4,a6
80002b38: 00c69693 slli a3,a3,0xc
80002b3c: 00579793 slli a5,a5,0x5
80002b40: 00d72023 sw a3,0(a4)
80002b44: 00b72223 sw a1,4(a4)
80002b48: 0207f793 andi a5,a5,32
80002b4c: 00870713 addi a4,a4,8
80002b50: 00f667b3 or a5,a2,a5
80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
80002b58: 00050413 mv s0,a0
80002b5c: 09000613 li a2,144
80002b60: 00000593 li a1,0
80002b64: 00010513 mv a0,sp
80002b68: 00003797 auipc a5,0x3
80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
80002b70: cecff0ef jal ra,8000205c <memset>
80002b74: 800007b7 lui a5,0x80000
80002b78: 00f40433 add s0,s0,a5
80002b7c: 00010513 mv a0,sp
80002b80: 08812223 sw s0,132(sp)
80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
80002b88: 09c12083 lw ra,156(sp)
80002b8c: 09812403 lw s0,152(sp)
80002b90: 0a010113 addi sp,sp,160
80002b94: 00008067 ret
80002b98: 004777b7 lui a5,0x477
80002b9c: 00080637 lui a2,0x80
80002ba0: fb678793 addi a5,a5,-74 # 476fb6 <_start-0x7fb8904a>
80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
80002ba8: 800005b7 lui a1,0x80000
80002bac: 00c7f733 and a4,a5,a2
80002bb0: 0017f693 andi a3,a5,1
80002bb4: 00b70733 add a4,a4,a1
80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
80002bbc: 0007202f amoadd.w zero,zero,(a4)
80002bc0: 0017d793 srli a5,a5,0x1
80002bc4: 00c7f733 and a4,a5,a2
80002bc8: 0017f693 andi a3,a5,1
80002bcc: 00b70733 add a4,a4,a1
80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
80002bd4: 00072003 lw zero,0(a4)
80002bd8: 0017d793 srli a5,a5,0x1
80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
80002be0 <userstart>:
80002be0: 80000537 lui a0,0x80000
80002be4: 80000593 li a1,-2048
80002be8: 00000697 auipc a3,0x0
80002bec: 41868693 addi a3,a3,1048 # 80003000 <begin_signature>
80002bf0: 00a6a023 sw a0,0(a3)
80002bf4: 80b6a72f amomin.w a4,a1,(a3)
80002bf8: 80000eb7 lui t4,0x80000
80002bfc: 00200193 li gp,2
80002c00: 05d71063 bne a4,t4,80002c40 <fail>
80002c04 <test_3>:
80002c04: 0006a783 lw a5,0(a3)
80002c08: 80000eb7 lui t4,0x80000
80002c0c: 00300193 li gp,3
80002c10: 03d79863 bne a5,t4,80002c40 <fail>
80002c14 <test_4>:
80002c14: fff00593 li a1,-1
80002c18: 0006a023 sw zero,0(a3)
80002c1c: 80b6a72f amomin.w a4,a1,(a3)
80002c20: 00000e93 li t4,0
80002c24: 00400193 li gp,4
80002c28: 01d71c63 bne a4,t4,80002c40 <fail>
80002c2c <test_5>:
80002c2c: 0006a783 lw a5,0(a3)
80002c30: fff00e93 li t4,-1
80002c34: 00500193 li gp,5
80002c38: 01d79463 bne a5,t4,80002c40 <fail>
80002c3c: 00301a63 bne zero,gp,80002c50 <pass>
80002c40 <fail>:
80002c40: 00119513 slli a0,gp,0x1
80002c44: 00050063 beqz a0,80002c44 <fail+0x4>
80002c48: 00156513 ori a0,a0,1
80002c4c: 00000073 ecall
80002c50 <pass>:
80002c50: 00100513 li a0,1
80002c54: 00000073 ecall
80002c58: c0001073 unimp

Binary file not shown.

View File

@@ -0,0 +1,940 @@
rv32ua-v-amominu_w: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 00c0006f j 8000000c <handle_reset>
80000004 <nmi_vector>:
80000004: 2780206f j 8000227c <wtf>
80000008 <trap_vector>:
80000008: 2740206f j 8000227c <wtf>
8000000c <handle_reset>:
8000000c: 00000297 auipc t0,0x0
80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
80000014: 30529073 csrw mtvec,t0
80000018: 00007117 auipc sp,0x7
8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
80000020: f14022f3 csrr t0,mhartid
80000024: 00c29293 slli t0,t0,0xc
80000028: 00510133 add sp,sp,t0
8000002c: 34011073 csrw mscratch,sp
80000030: 00003517 auipc a0,0x3
80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
80000038: 2090206f j 80002a40 <vm_boot>
8000003c <pop_tf>:
8000003c: 08452283 lw t0,132(a0)
80000040: 14129073 csrw sepc,t0
80000044: 00452083 lw ra,4(a0)
80000048: 00852103 lw sp,8(a0)
8000004c: 00c52183 lw gp,12(a0)
80000050: 01052203 lw tp,16(a0)
80000054: 01452283 lw t0,20(a0)
80000058: 01852303 lw t1,24(a0)
8000005c: 01c52383 lw t2,28(a0)
80000060: 02052403 lw s0,32(a0)
80000064: 02452483 lw s1,36(a0)
80000068: 02c52583 lw a1,44(a0)
8000006c: 03052603 lw a2,48(a0)
80000070: 03452683 lw a3,52(a0)
80000074: 03852703 lw a4,56(a0)
80000078: 03c52783 lw a5,60(a0)
8000007c: 04052803 lw a6,64(a0)
80000080: 04452883 lw a7,68(a0)
80000084: 04852903 lw s2,72(a0)
80000088: 04c52983 lw s3,76(a0)
8000008c: 05052a03 lw s4,80(a0)
80000090: 05452a83 lw s5,84(a0)
80000094: 05852b03 lw s6,88(a0)
80000098: 05c52b83 lw s7,92(a0)
8000009c: 06052c03 lw s8,96(a0)
800000a0: 06452c83 lw s9,100(a0)
800000a4: 06852d03 lw s10,104(a0)
800000a8: 06c52d83 lw s11,108(a0)
800000ac: 07052e03 lw t3,112(a0)
800000b0: 07452e83 lw t4,116(a0)
800000b4: 07852f03 lw t5,120(a0)
800000b8: 07c52f83 lw t6,124(a0)
800000bc: 02852503 lw a0,40(a0)
800000c0: 10200073 sret
800000c4 <trap_entry>:
800000c4: 14011173 csrrw sp,sscratch,sp
800000c8: 00112223 sw ra,4(sp)
800000cc: 00312623 sw gp,12(sp)
800000d0: 00412823 sw tp,16(sp)
800000d4: 00512a23 sw t0,20(sp)
800000d8: 00612c23 sw t1,24(sp)
800000dc: 00712e23 sw t2,28(sp)
800000e0: 02812023 sw s0,32(sp)
800000e4: 02912223 sw s1,36(sp)
800000e8: 02a12423 sw a0,40(sp)
800000ec: 02b12623 sw a1,44(sp)
800000f0: 02c12823 sw a2,48(sp)
800000f4: 02d12a23 sw a3,52(sp)
800000f8: 02e12c23 sw a4,56(sp)
800000fc: 02f12e23 sw a5,60(sp)
80000100: 05012023 sw a6,64(sp)
80000104: 05112223 sw a7,68(sp)
80000108: 05212423 sw s2,72(sp)
8000010c: 05312623 sw s3,76(sp)
80000110: 05412823 sw s4,80(sp)
80000114: 05512a23 sw s5,84(sp)
80000118: 05612c23 sw s6,88(sp)
8000011c: 05712e23 sw s7,92(sp)
80000120: 07812023 sw s8,96(sp)
80000124: 07912223 sw s9,100(sp)
80000128: 07a12423 sw s10,104(sp)
8000012c: 07b12623 sw s11,108(sp)
80000130: 07c12823 sw t3,112(sp)
80000134: 07d12a23 sw t4,116(sp)
80000138: 07e12c23 sw t5,120(sp)
8000013c: 07f12e23 sw t6,124(sp)
80000140: 140112f3 csrrw t0,sscratch,sp
80000144: 00512423 sw t0,8(sp)
80000148: 100022f3 csrr t0,sstatus
8000014c: 08512023 sw t0,128(sp)
80000150: 141022f3 csrr t0,sepc
80000154: 08512223 sw t0,132(sp)
80000158: 143022f3 csrr t0,sbadaddr
8000015c: 08512423 sw t0,136(sp)
80000160: 142022f3 csrr t0,scause
80000164: 08512623 sw t0,140(sp)
80000168: 00010513 mv a0,sp
8000016c: 50c0206f j 80002678 <handle_trap>
Disassembly of section .text:
80002000 <memcpy>:
80002000: 00c5e7b3 or a5,a1,a2
80002004: 00f567b3 or a5,a0,a5
80002008: 0037f793 andi a5,a5,3
8000200c: 00c506b3 add a3,a0,a2
80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
80002014: 00c58633 add a2,a1,a2
80002018: 00050793 mv a5,a0
8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
80002020: 00158593 addi a1,a1,1
80002024: fff5c703 lbu a4,-1(a1)
80002028: 00178793 addi a5,a5,1
8000202c: fee78fa3 sb a4,-1(a5)
80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
80002034: 00008067 ret
80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
8000203c: 00050793 mv a5,a0
80002040: 00458593 addi a1,a1,4
80002044: ffc5a703 lw a4,-4(a1)
80002048: 00478793 addi a5,a5,4
8000204c: fee7ae23 sw a4,-4(a5)
80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
80002054: 00008067 ret
80002058: 00008067 ret
8000205c <memset>:
8000205c: 00c567b3 or a5,a0,a2
80002060: 0037f793 andi a5,a5,3
80002064: 00c50633 add a2,a0,a2
80002068: 02078063 beqz a5,80002088 <memset+0x2c>
8000206c: 0ff5f593 andi a1,a1,255
80002070: 00050793 mv a5,a0
80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
80002078: 00178793 addi a5,a5,1
8000207c: feb78fa3 sb a1,-1(a5)
80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
80002084: 00008067 ret
80002088: 0ff5f593 andi a1,a1,255
8000208c: 00859793 slli a5,a1,0x8
80002090: 00b7e7b3 or a5,a5,a1
80002094: 01079593 slli a1,a5,0x10
80002098: 00f5e5b3 or a1,a1,a5
8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
800020a0: 00050793 mv a5,a0
800020a4: 00478793 addi a5,a5,4
800020a8: feb7ae23 sw a1,-4(a5)
800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
800020b0: 00008067 ret
800020b4: 00008067 ret
800020b8 <strlen>:
800020b8: 00054783 lbu a5,0(a0)
800020bc: 00050713 mv a4,a0
800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
800020c4: 00150513 addi a0,a0,1
800020c8: 00054783 lbu a5,0(a0)
800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
800020d0: 40e50533 sub a0,a0,a4
800020d4: 00008067 ret
800020d8: 00000513 li a0,0
800020dc: 00008067 ret
800020e0 <strcmp>:
800020e0: 00150513 addi a0,a0,1
800020e4: fff54783 lbu a5,-1(a0)
800020e8: 00158593 addi a1,a1,1
800020ec: fff5c703 lbu a4,-1(a1)
800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
800020f8: 40e78533 sub a0,a5,a4
800020fc: 00008067 ret
80002100: 00000793 li a5,0
80002104: ff5ff06f j 800020f8 <strcmp+0x18>
80002108 <memcmp>:
80002108: 00b567b3 or a5,a0,a1
8000210c: 0037f793 andi a5,a5,3
80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
80002114: ffc67693 andi a3,a2,-4
80002118: 00d506b3 add a3,a0,a3
8000211c: 00050813 mv a6,a0
80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
80002124: 00052703 lw a4,0(a0)
80002128: 0005a783 lw a5,0(a1)
8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
80002130: 0240006f j 80002154 <memcmp+0x4c>
80002134: 00052703 lw a4,0(a0)
80002138: 0005a783 lw a5,0(a1)
8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
80002140: 00450513 addi a0,a0,4
80002144: 00458593 addi a1,a1,4
80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
8000214c: 41050833 sub a6,a0,a6
80002150: 41060633 sub a2,a2,a6
80002154: 00c58633 add a2,a1,a2
80002158: 0140006f j 8000216c <memcmp+0x64>
8000215c: 00158593 addi a1,a1,1
80002160: fff54783 lbu a5,-1(a0)
80002164: fff5c703 lbu a4,-1(a1)
80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
8000216c: 00150513 addi a0,a0,1
80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
80002174: 00000513 li a0,0
80002178: 00008067 ret
8000217c: 40e78533 sub a0,a5,a4
80002180: 00008067 ret
80002184 <strcpy>:
80002184: 00050793 mv a5,a0
80002188: 00158593 addi a1,a1,1
8000218c: fff5c703 lbu a4,-1(a1)
80002190: 00178793 addi a5,a5,1
80002194: fee78fa3 sb a4,-1(a5)
80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
8000219c: 00008067 ret
800021a0 <atol>:
800021a0: 00054783 lbu a5,0(a0)
800021a4: 02000713 li a4,32
800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
800021ac: 00150513 addi a0,a0,1
800021b0: 00054783 lbu a5,0(a0)
800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
800021b8: fd578713 addi a4,a5,-43
800021bc: 0fd77713 andi a4,a4,253
800021c0: 04070263 beqz a4,80002204 <atol+0x64>
800021c4: 00054683 lbu a3,0(a0)
800021c8: 00050793 mv a5,a0
800021cc: 00000613 li a2,0
800021d0: 04068863 beqz a3,80002220 <atol+0x80>
800021d4: 00000513 li a0,0
800021d8: 00178793 addi a5,a5,1
800021dc: fd068593 addi a1,a3,-48
800021e0: 00251713 slli a4,a0,0x2
800021e4: 0007c683 lbu a3,0(a5)
800021e8: 00a70533 add a0,a4,a0
800021ec: 00151513 slli a0,a0,0x1
800021f0: 00a58533 add a0,a1,a0
800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
800021f8: 00060463 beqz a2,80002200 <atol+0x60>
800021fc: 40a00533 neg a0,a0
80002200: 00008067 ret
80002204: 00154683 lbu a3,1(a0)
80002208: fd378793 addi a5,a5,-45
8000220c: 0017b613 seqz a2,a5
80002210: 00150793 addi a5,a0,1
80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
80002218: 00000513 li a0,0
8000221c: fddff06f j 800021f8 <atol+0x58>
80002220: 00000513 li a0,0
80002224: 00008067 ret
80002228 <terminate>:
80002228: fffff697 auipc a3,0xfffff
8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
80002230: 0006a703 lw a4,0(a3)
80002234: 0046a783 lw a5,4(a3)
80002238: 00050813 mv a6,a0
8000223c: 41f55893 srai a7,a0,0x1f
80002240: 00f76733 or a4,a4,a5
80002244: 02070663 beqz a4,80002270 <terminate+0x48>
80002248: fffff617 auipc a2,0xfffff
8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
80002250: 00000713 li a4,0
80002254: 00e62023 sw a4,0(a2)
80002258: 00000793 li a5,0
8000225c: 00f62223 sw a5,4(a2)
80002260: 0006a703 lw a4,0(a3)
80002264: 0046a783 lw a5,4(a3)
80002268: 00f76733 or a4,a4,a5
8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
80002270: 0106a023 sw a6,0(a3)
80002274: 0116a223 sw a7,4(a3)
80002278: 0000006f j 80002278 <terminate+0x50>
8000227c <wtf>:
8000227c: ff010113 addi sp,sp,-16
80002280: 34900513 li a0,841
80002284: 00112623 sw ra,12(sp)
80002288: fa1ff0ef jal ra,80002228 <terminate>
8000228c <printhex>:
8000228c: fe010113 addi sp,sp,-32
80002290: 01b10793 addi a5,sp,27
80002294: 00b10e93 addi t4,sp,11
80002298: 00900e13 li t3,9
8000229c: 00f57693 andi a3,a0,15
800022a0: 01c59313 slli t1,a1,0x1c
800022a4: 00455513 srli a0,a0,0x4
800022a8: 05700613 li a2,87
800022ac: 0ff6f713 andi a4,a3,255
800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
800022b4: 03000613 li a2,48
800022b8: 00c70733 add a4,a4,a2
800022bc: 00e78023 sb a4,0(a5)
800022c0: fff78793 addi a5,a5,-1
800022c4: 00a36533 or a0,t1,a0
800022c8: 0045d593 srli a1,a1,0x4
800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
800022d0: 00c14583 lbu a1,12(sp)
800022d4: 00010e23 sb zero,28(sp)
800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
800022dc: 00c10513 addi a0,sp,12
800022e0: fffff697 auipc a3,0xfffff
800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
800022e8: fffff617 auipc a2,0xfffff
800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
800022f0: 0006a703 lw a4,0(a3)
800022f4: 0046a783 lw a5,4(a3)
800022f8: 00058813 mv a6,a1
800022fc: 00150513 addi a0,a0,1
80002300: 00f76733 or a4,a4,a5
80002304: 010108b7 lui a7,0x1010
80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
8000230c: 00000713 li a4,0
80002310: 00e62023 sw a4,0(a2)
80002314: 00000793 li a5,0
80002318: 00f62223 sw a5,4(a2)
8000231c: 0006a703 lw a4,0(a3)
80002320: 0046a783 lw a5,4(a3)
80002324: 00f76733 or a4,a4,a5
80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
8000232c: 00054583 lbu a1,0(a0)
80002330: 0106a023 sw a6,0(a3)
80002334: 0116a223 sw a7,4(a3)
80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
8000233c: 02010113 addi sp,sp,32
80002340: 00008067 ret
80002344 <handle_fault>:
80002344: ff010113 addi sp,sp,-16
80002348: fffff6b7 lui a3,0xfffff
8000234c: 00112623 sw ra,12(sp)
80002350: 00812423 sw s0,8(sp)
80002354: 00912223 sw s1,4(sp)
80002358: 00d50733 add a4,a0,a3
8000235c: 0003e7b7 lui a5,0x3e
80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
80002364: 00c55613 srli a2,a0,0xc
80002368: 40060e13 addi t3,a2,1024
8000236c: 00002317 auipc t1,0x2
80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
80002374: 002e1793 slli a5,t3,0x2
80002378: 00f307b3 add a5,t1,a5
8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
80002380: 00d57533 and a0,a0,a3
80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
80002388: 00004797 auipc a5,0x4
8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
80002390: 0007a583 lw a1,0(a5)
80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
80002398: 0045a783 lw a5,4(a1)
8000239c: 00004717 auipc a4,0x4
800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
800023a4: 00072703 lw a4,0(a4)
800023a8: 00004697 auipc a3,0x4
800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
800023b4: 0005a703 lw a4,0(a1)
800023b8: 002e1793 slli a5,t3,0x2
800023bc: 00f307b3 add a5,t1,a5
800023c0: 00c75713 srli a4,a4,0xc
800023c4: 00a71713 slli a4,a4,0xa
800023c8: 0df76e93 ori t4,a4,223
800023cc: 01f76693 ori a3,a4,31
800023d0: 01d7a023 sw t4,0(a5)
800023d4: 12050073 sfence.vma a0
800023d8: 00004717 auipc a4,0x4
800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
800023e0: 00361793 slli a5,a2,0x3
800023e4: 00f707b3 add a5,a4,a5
800023e8: 0007a703 lw a4,0(a5)
800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
800023f0: 0005a703 lw a4,0(a1)
800023f4: 00e7a023 sw a4,0(a5)
800023f8: 0045a703 lw a4,4(a1)
800023fc: 00e7a223 sw a4,4(a5)
80002400: 000407b7 lui a5,0x40
80002404: 1007a5f3 csrrs a1,sstatus,a5
80002408: ffc007b7 lui a5,0xffc00
8000240c: 00f507b3 add a5,a0,a5
80002410: 00001637 lui a2,0x1
80002414: 00050713 mv a4,a0
80002418: 00c78633 add a2,a5,a2
8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
80002420: 0047ae83 lw t4,4(a5)
80002424: 0087a883 lw a7,8(a5)
80002428: 00c7a803 lw a6,12(a5)
8000242c: 01e72023 sw t5,0(a4)
80002430: 01d72223 sw t4,4(a4)
80002434: 01172423 sw a7,8(a4)
80002438: 01072623 sw a6,12(a4)
8000243c: 01078793 addi a5,a5,16
80002440: 01070713 addi a4,a4,16
80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
80002448: 10059073 csrw sstatus,a1
8000244c: 002e1e13 slli t3,t3,0x2
80002450: 01c30333 add t1,t1,t3
80002454: 00d32023 sw a3,0(t1)
80002458: 12050073 sfence.vma a0
8000245c: 0000100f fence.i
80002460: 00c12083 lw ra,12(sp)
80002464: 00812403 lw s0,8(sp)
80002468: 00412483 lw s1,4(sp)
8000246c: 01010113 addi sp,sp,16
80002470: 00008067 ret
80002474: 04077693 andi a3,a4,64
80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
8000247c: 04076713 ori a4,a4,64
80002480: 00e7a023 sw a4,0(a5)
80002484: 12050073 sfence.vma a0
80002488: 00c12083 lw ra,12(sp)
8000248c: 00812403 lw s0,8(sp)
80002490: 00412483 lw s1,4(sp)
80002494: 01010113 addi sp,sp,16
80002498: 00008067 ret
8000249c: 08077693 andi a3,a4,128
800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
800024a4: 00f00693 li a3,15
800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
800024ac: 08076713 ori a4,a4,128
800024b0: 00e7a023 sw a4,0(a5)
800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
800024b8: 00004797 auipc a5,0x4
800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
800024c4: 04100513 li a0,65
800024c8: 00000597 auipc a1,0x0
800024cc: 79458593 addi a1,a1,1940 # 80002c5c <pass+0xc>
800024d0: fffff697 auipc a3,0xfffff
800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
800024d8: fffff617 auipc a2,0xfffff
800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
800024e0: 0006a703 lw a4,0(a3)
800024e4: 0046a783 lw a5,4(a3)
800024e8: 00050313 mv t1,a0
800024ec: 00158593 addi a1,a1,1
800024f0: 00f76733 or a4,a4,a5
800024f4: 010103b7 lui t2,0x1010
800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
800024fc: 00000793 li a5,0
80002500: 00f62023 sw a5,0(a2)
80002504: 00000813 li a6,0
80002508: 01062223 sw a6,4(a2)
8000250c: 0006a703 lw a4,0(a3)
80002510: 0046a783 lw a5,4(a3)
80002514: 00f76733 or a4,a4,a5
80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
8000251c: 0005c503 lbu a0,0(a1)
80002520: 0066a023 sw t1,0(a3)
80002524: 0076a223 sw t2,4(a3)
80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
8000252c: 00300513 li a0,3
80002530: cf9ff0ef jal ra,80002228 <terminate>
80002534: 04100513 li a0,65
80002538: 00000597 auipc a1,0x0
8000253c: 7b058593 addi a1,a1,1968 # 80002ce8 <pass+0x98>
80002540: fffff697 auipc a3,0xfffff
80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
80002548: fffff617 auipc a2,0xfffff
8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
80002550: 0006a703 lw a4,0(a3)
80002554: 0046a783 lw a5,4(a3)
80002558: 00050f13 mv t5,a0
8000255c: 00158593 addi a1,a1,1
80002560: 00f76733 or a4,a4,a5
80002564: 01010fb7 lui t6,0x1010
80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
8000256c: 00000793 li a5,0
80002570: 00f62023 sw a5,0(a2)
80002574: 00000813 li a6,0
80002578: 01062223 sw a6,4(a2)
8000257c: 0006a703 lw a4,0(a3)
80002580: 0046a783 lw a5,4(a3)
80002584: 00f76733 or a4,a4,a5
80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
8000258c: 0005c503 lbu a0,0(a1)
80002590: 01e6a023 sw t5,0(a3)
80002594: 01f6a223 sw t6,4(a3)
80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
800025a0: 04100513 li a0,65
800025a4: 00000597 auipc a1,0x0
800025a8: 75c58593 addi a1,a1,1884 # 80002d00 <pass+0xb0>
800025ac: fffff697 auipc a3,0xfffff
800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
800025b4: fffff617 auipc a2,0xfffff
800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
800025bc: 0006a703 lw a4,0(a3)
800025c0: 0046a783 lw a5,4(a3)
800025c4: 00050813 mv a6,a0
800025c8: 00158593 addi a1,a1,1
800025cc: 00f76733 or a4,a4,a5
800025d0: 010108b7 lui a7,0x1010
800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
800025d8: 00000713 li a4,0
800025dc: 00e62023 sw a4,0(a2)
800025e0: 00000793 li a5,0
800025e4: 00f62223 sw a5,4(a2)
800025e8: 0006a703 lw a4,0(a3)
800025ec: 0046a783 lw a5,4(a3)
800025f0: 00f76733 or a4,a4,a5
800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
800025f8: 0005c503 lbu a0,0(a1)
800025fc: 0106a023 sw a6,0(a3)
80002600: 0116a223 sw a7,4(a3)
80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
8000260c: 04100793 li a5,65
80002610: 00000597 auipc a1,0x0
80002614: 69058593 addi a1,a1,1680 # 80002ca0 <pass+0x50>
80002618: fffff697 auipc a3,0xfffff
8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
80002620: fffff617 auipc a2,0xfffff
80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
80002628: 0006a803 lw a6,0(a3)
8000262c: 0046a883 lw a7,4(a3)
80002630: 00078413 mv s0,a5
80002634: 00158593 addi a1,a1,1
80002638: 01186833 or a6,a6,a7
8000263c: 010104b7 lui s1,0x1010
80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
80002644: 00000793 li a5,0
80002648: 00f62023 sw a5,0(a2)
8000264c: 00000813 li a6,0
80002650: 01062223 sw a6,4(a2)
80002654: 0006a703 lw a4,0(a3)
80002658: 0046a783 lw a5,4(a3)
8000265c: 00f76733 or a4,a4,a5
80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
80002664: 0005c783 lbu a5,0(a1)
80002668: 0086a023 sw s0,0(a3)
8000266c: 0096a223 sw s1,4(a3)
80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
80002678 <handle_trap>:
80002678: 08c52583 lw a1,140(a0)
8000267c: fb010113 addi sp,sp,-80
80002680: 03412c23 sw s4,56(sp)
80002684: 04112623 sw ra,76(sp)
80002688: 04812423 sw s0,72(sp)
8000268c: 04912223 sw s1,68(sp)
80002690: 05212023 sw s2,64(sp)
80002694: 03312e23 sw s3,60(sp)
80002698: 03512a23 sw s5,52(sp)
8000269c: 03612823 sw s6,48(sp)
800026a0: 03712623 sw s7,44(sp)
800026a4: 03812423 sw s8,40(sp)
800026a8: 03912223 sw s9,36(sp)
800026ac: 03a12023 sw s10,32(sp)
800026b0: 01b12e23 sw s11,28(sp)
800026b4: 00800793 li a5,8
800026b8: 00050a13 mv s4,a0
800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
800026c0: 00200793 li a5,2
800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
800026c8: ff458793 addi a5,a1,-12
800026cc: 00100713 li a4,1
800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
800026d4: 00f00793 li a5,15
800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
800026dc: 088a2503 lw a0,136(s4)
800026e0: c65ff0ef jal ra,80002344 <handle_fault>
800026e4: 04812403 lw s0,72(sp)
800026e8: 04c12083 lw ra,76(sp)
800026ec: 04412483 lw s1,68(sp)
800026f0: 04012903 lw s2,64(sp)
800026f4: 03c12983 lw s3,60(sp)
800026f8: 03412a83 lw s5,52(sp)
800026fc: 03012b03 lw s6,48(sp)
80002700: 02c12b83 lw s7,44(sp)
80002704: 02812c03 lw s8,40(sp)
80002708: 02412c83 lw s9,36(sp)
8000270c: 02012d03 lw s10,32(sp)
80002710: 01c12d83 lw s11,28(sp)
80002714: 000a0513 mv a0,s4
80002718: 03812a03 lw s4,56(sp)
8000271c: 05010113 addi sp,sp,80
80002720: 91dfd06f j 8000003c <pop_tf>
80002724: 08452703 lw a4,132(a0)
80002728: 00377793 andi a5,a4,3
8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
80002734: 00301073 fssr zero
80002738: 00072703 lw a4,0(a4)
8000273c: 0007a783 lw a5,0(a5)
80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
80002744: 04100513 li a0,65
80002748: 00000597 auipc a1,0x0
8000274c: 68058593 addi a1,a1,1664 # 80002dc8 <pass+0x178>
80002750: fffff697 auipc a3,0xfffff
80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
80002758: fffff617 auipc a2,0xfffff
8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
80002760: 0006a703 lw a4,0(a3)
80002764: 0046a783 lw a5,4(a3)
80002768: 00050813 mv a6,a0
8000276c: 00158593 addi a1,a1,1
80002770: 00f76733 or a4,a4,a5
80002774: 010108b7 lui a7,0x1010
80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
8000277c: 00000713 li a4,0
80002780: 00e62023 sw a4,0(a2)
80002784: 00000793 li a5,0
80002788: 00f62223 sw a5,4(a2)
8000278c: 0006a703 lw a4,0(a3)
80002790: 0046a783 lw a5,4(a3)
80002794: 00f76733 or a4,a4,a5
80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
8000279c: 0005c503 lbu a0,0(a1)
800027a0: 0106a023 sw a6,0(a3)
800027a4: 0116a223 sw a7,4(a3)
800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
800027ac: 00300513 li a0,3
800027b0: a79ff0ef jal ra,80002228 <terminate>
800027b4: 00100513 li a0,1
800027b8: a71ff0ef jal ra,80002228 <terminate>
800027bc: 00000597 auipc a1,0x0
800027c0: 5e858593 addi a1,a1,1512 # 80002da4 <pass+0x154>
800027c4: 04100613 li a2,65
800027c8: fffff697 auipc a3,0xfffff
800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
800027d0: fffff517 auipc a0,0xfffff
800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
800027d8: 0006a703 lw a4,0(a3)
800027dc: 0046a783 lw a5,4(a3)
800027e0: 00060e13 mv t3,a2
800027e4: 00158593 addi a1,a1,1
800027e8: 00f76733 or a4,a4,a5
800027ec: 01010eb7 lui t4,0x1010
800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
800027f4: 00000793 li a5,0
800027f8: 00f52023 sw a5,0(a0)
800027fc: 00000813 li a6,0
80002800: 01052223 sw a6,4(a0)
80002804: 0006a703 lw a4,0(a3)
80002808: 0046a783 lw a5,4(a3)
8000280c: 00f76733 or a4,a4,a5
80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
80002814: 0005c603 lbu a2,0(a1)
80002818: 01c6a023 sw t3,0(a3)
8000281c: 01d6a223 sw t4,4(a3)
80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
80002824: f89ff06f j 800027ac <handle_trap+0x134>
80002828: 02852783 lw a5,40(a0)
8000282c: 00001a37 lui s4,0x1
80002830: 00004b17 auipc s6,0x4
80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
80002838: 00f12223 sw a5,4(sp)
8000283c: 00001d17 auipc s10,0x1
80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
80002844: 00040cb7 lui s9,0x40
80002848: ffc00c37 lui s8,0xffc00
8000284c: 0003fab7 lui s5,0x3f
80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
80002854: 00f72223 sw a5,4(a4)
80002858: 00004717 auipc a4,0x4
8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
80002860: 000017b7 lui a5,0x1
80002864: 00fa0a33 add s4,s4,a5
80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
8000286c: 00ca5713 srli a4,s4,0xc
80002870: 00371b93 slli s7,a4,0x3
80002874: 017b0633 add a2,s6,s7
80002878: 00062603 lw a2,0(a2)
8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
80002880: 40070713 addi a4,a4,1024
80002884: 00271713 slli a4,a4,0x2
80002888: 00ed0733 add a4,s10,a4
8000288c: 00072703 lw a4,0(a4)
80002890: 04077613 andi a2,a4,64
80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
80002898: 00e12623 sw a4,12(sp)
8000289c: 100cadf3 csrrs s11,sstatus,s9
800028a0: 018a0833 add a6,s4,s8
800028a4: 00001637 lui a2,0x1
800028a8: 00080593 mv a1,a6
800028ac: 000a0513 mv a0,s4
800028b0: 01012423 sw a6,8(sp)
800028b4: 855ff0ef jal ra,80002108 <memcmp>
800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
800028bc: 00c12703 lw a4,12(sp)
800028c0: 00812803 lw a6,8(sp)
800028c4: 08077713 andi a4,a4,128
800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
800028cc: 00001637 lui a2,0x1
800028d0: 00080593 mv a1,a6
800028d4: 000a0513 mv a0,s4
800028d8: f28ff0ef jal ra,80002000 <memcpy>
800028dc: 017b07b3 add a5,s6,s7
800028e0: 100d9073 csrw sstatus,s11
800028e4: 00004717 auipc a4,0x4
800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
800028ec: 00072703 lw a4,0(a4)
800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
800028f8: 00004717 auipc a4,0x4
800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
80002900: 00004717 auipc a4,0x4
80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
8000290c: 04100593 li a1,65
80002910: 00000617 auipc a2,0x0
80002914: 4e460613 addi a2,a2,1252 # 80002df4 <pass+0x1a4>
80002918: ffffe697 auipc a3,0xffffe
8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
80002920: ffffe517 auipc a0,0xffffe
80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
80002928: 0006a703 lw a4,0(a3)
8000292c: 0046a783 lw a5,4(a3)
80002930: 00058313 mv t1,a1
80002934: 00160613 addi a2,a2,1
80002938: 00f76733 or a4,a4,a5
8000293c: 010103b7 lui t2,0x1010
80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
80002944: 00000793 li a5,0
80002948: 00f52023 sw a5,0(a0)
8000294c: 00000813 li a6,0
80002950: 01052223 sw a6,4(a0)
80002954: 0006a703 lw a4,0(a3)
80002958: 0046a783 lw a5,4(a3)
8000295c: 00f76733 or a4,a4,a5
80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
80002964: 00064583 lbu a1,0(a2)
80002968: 0066a023 sw t1,0(a3)
8000296c: 0076a223 sw t2,4(a3)
80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
80002974: e39ff06f j 800027ac <handle_trap+0x134>
80002978: 04100793 li a5,65
8000297c: 00000617 auipc a2,0x0
80002980: 3f460613 addi a2,a2,1012 # 80002d70 <pass+0x120>
80002984: ffffe697 auipc a3,0xffffe
80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
8000298c: ffffe597 auipc a1,0xffffe
80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
80002994: 00078413 mv s0,a5
80002998: 00160613 addi a2,a2,1
8000299c: 010104b7 lui s1,0x1010
800029a0: 0006a703 lw a4,0(a3)
800029a4: 0046a783 lw a5,4(a3)
800029a8: 00f76733 or a4,a4,a5
800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
800029b0: 00000793 li a5,0
800029b4: 00000813 li a6,0
800029b8: 00f5a023 sw a5,0(a1)
800029bc: 0105a223 sw a6,4(a1)
800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
800029c4: 04100793 li a5,65
800029c8: 00000617 auipc a2,0x0
800029cc: 37460613 addi a2,a2,884 # 80002d3c <pass+0xec>
800029d0: ffffe697 auipc a3,0xffffe
800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
800029d8: ffffe597 auipc a1,0xffffe
800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
800029e0: 00078913 mv s2,a5
800029e4: 00160613 addi a2,a2,1
800029e8: 010109b7 lui s3,0x1010
800029ec: 0006a703 lw a4,0(a3)
800029f0: 0046a783 lw a5,4(a3)
800029f4: 00f76733 or a4,a4,a5
800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
800029fc: 00000793 li a5,0
80002a00: 00000813 li a6,0
80002a04: 00f5a023 sw a5,0(a1)
80002a08: 0105a223 sw a6,4(a1)
80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
80002a10: 00412503 lw a0,4(sp)
80002a14: 815ff0ef jal ra,80002228 <terminate>
80002a18: 00064783 lbu a5,0(a2)
80002a1c: 0086a023 sw s0,0(a3)
80002a20: 0096a223 sw s1,4(a3)
80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
80002a28: d85ff06f j 800027ac <handle_trap+0x134>
80002a2c: 00064783 lbu a5,0(a2)
80002a30: 0126a023 sw s2,0(a3)
80002a34: 0136a223 sw s3,4(a3)
80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
80002a40 <vm_boot>:
80002a40: f14027f3 csrr a5,mhartid
80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
80002a48: 00002797 auipc a5,0x2
80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
80002a50: 00c7d793 srli a5,a5,0xc
80002a54: 00a79793 slli a5,a5,0xa
80002a58: 0017e793 ori a5,a5,1
80002a5c: 00001697 auipc a3,0x1
80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
80002a64: 200007b7 lui a5,0x20000
80002a68: 00001717 auipc a4,0x1
80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
80002a74: f6010113 addi sp,sp,-160
80002a78: 00002697 auipc a3,0x2
80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
80002a80: 00c75793 srli a5,a4,0xc
80002a84: 80000737 lui a4,0x80000
80002a88: 08112e23 sw ra,156(sp)
80002a8c: 08812c23 sw s0,152(sp)
80002a90: 00e7e7b3 or a5,a5,a4
80002a94: 18079073 csrw satp,a5
80002a98: 01f00793 li a5,31
80002a9c: fff00713 li a4,-1
80002aa0: 00000297 auipc t0,0x0
80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
80002aa8: 305292f3 csrrw t0,mtvec,t0
80002aac: 3b071073 csrw pmpaddr0,a4
80002ab0: 3a079073 csrw pmpcfg0,a5
80002ab4: 7fbfd797 auipc a5,0x7fbfd
80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
80002abc: 10579073 csrw stvec,a5
80002ac0: 340027f3 csrr a5,mscratch
80002ac4: 7fc00837 lui a6,0x7fc00
80002ac8: 010787b3 add a5,a5,a6
80002acc: 14079073 csrw sscratch,a5
80002ad0: 0000b7b7 lui a5,0xb
80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
80002ad8: 30279073 csrw medeleg,a5
80002adc: 0001e7b7 lui a5,0x1e
80002ae0: 30079073 csrw mstatus,a5
80002ae4: 30405073 csrwi mie,0
80002ae8: 7fc03797 auipc a5,0x7fc03
80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
80002af0: 00004717 auipc a4,0x4
80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
80002af8: 7fc03797 auipc a5,0x7fc03
80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
80002b00: 00004717 auipc a4,0x4
80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
80002b08: 000808b7 lui a7,0x80
80002b0c: 00003717 auipc a4,0x3
80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
80002b14: 00003317 auipc t1,0x3
80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
80002b1c: 00c00793 li a5,12
80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
80002b28: 0017d613 srli a2,a5,0x1
80002b2c: 011786b3 add a3,a5,a7
80002b30: 00f647b3 xor a5,a2,a5
80002b34: 010705b3 add a1,a4,a6
80002b38: 00c69693 slli a3,a3,0xc
80002b3c: 00579793 slli a5,a5,0x5
80002b40: 00d72023 sw a3,0(a4)
80002b44: 00b72223 sw a1,4(a4)
80002b48: 0207f793 andi a5,a5,32
80002b4c: 00870713 addi a4,a4,8
80002b50: 00f667b3 or a5,a2,a5
80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
80002b58: 00050413 mv s0,a0
80002b5c: 09000613 li a2,144
80002b60: 00000593 li a1,0
80002b64: 00010513 mv a0,sp
80002b68: 00003797 auipc a5,0x3
80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
80002b70: cecff0ef jal ra,8000205c <memset>
80002b74: 800007b7 lui a5,0x80000
80002b78: 00f40433 add s0,s0,a5
80002b7c: 00010513 mv a0,sp
80002b80: 08812223 sw s0,132(sp)
80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
80002b88: 09c12083 lw ra,156(sp)
80002b8c: 09812403 lw s0,152(sp)
80002b90: 0a010113 addi sp,sp,160
80002b94: 00008067 ret
80002b98: 03fa07b7 lui a5,0x3fa0
80002b9c: 00080637 lui a2,0x80
80002ba0: 22078793 addi a5,a5,544 # 3fa0220 <_start-0x7c05fde0>
80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
80002ba8: 800005b7 lui a1,0x80000
80002bac: 00c7f733 and a4,a5,a2
80002bb0: 0017f693 andi a3,a5,1
80002bb4: 00b70733 add a4,a4,a1
80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
80002bbc: 0007202f amoadd.w zero,zero,(a4)
80002bc0: 0017d793 srli a5,a5,0x1
80002bc4: 00c7f733 and a4,a5,a2
80002bc8: 0017f693 andi a3,a5,1
80002bcc: 00b70733 add a4,a4,a1
80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
80002bd4: 00072003 lw zero,0(a4)
80002bd8: 0017d793 srli a5,a5,0x1
80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
80002be0 <userstart>:
80002be0: 80000537 lui a0,0x80000
80002be4: 80000593 li a1,-2048
80002be8: 00000697 auipc a3,0x0
80002bec: 41868693 addi a3,a3,1048 # 80003000 <begin_signature>
80002bf0: 00a6a023 sw a0,0(a3)
80002bf4: c0b6a72f amominu.w a4,a1,(a3)
80002bf8: 80000eb7 lui t4,0x80000
80002bfc: 00200193 li gp,2
80002c00: 05d71063 bne a4,t4,80002c40 <fail>
80002c04 <test_3>:
80002c04: 0006a783 lw a5,0(a3)
80002c08: 80000eb7 lui t4,0x80000
80002c0c: 00300193 li gp,3
80002c10: 03d79863 bne a5,t4,80002c40 <fail>
80002c14 <test_4>:
80002c14: fff00593 li a1,-1
80002c18: 0006a023 sw zero,0(a3)
80002c1c: c0b6a72f amominu.w a4,a1,(a3)
80002c20: 00000e93 li t4,0
80002c24: 00400193 li gp,4
80002c28: 01d71c63 bne a4,t4,80002c40 <fail>
80002c2c <test_5>:
80002c2c: 0006a783 lw a5,0(a3)
80002c30: 00000e93 li t4,0
80002c34: 00500193 li gp,5
80002c38: 01d79463 bne a5,t4,80002c40 <fail>
80002c3c: 00301a63 bne zero,gp,80002c50 <pass>
80002c40 <fail>:
80002c40: 00119513 slli a0,gp,0x1
80002c44: 00050063 beqz a0,80002c44 <fail+0x4>
80002c48: 00156513 ori a0,a0,1
80002c4c: 00000073 ecall
80002c50 <pass>:
80002c50: 00100513 li a0,1
80002c54: 00000073 ecall
80002c58: c0001073 unimp

BIN
Tests/isa/rv32ua-v-amoor_w Normal file

Binary file not shown.

View File

@@ -0,0 +1,939 @@
rv32ua-v-amoor_w: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 00c0006f j 8000000c <handle_reset>
80000004 <nmi_vector>:
80000004: 2780206f j 8000227c <wtf>
80000008 <trap_vector>:
80000008: 2740206f j 8000227c <wtf>
8000000c <handle_reset>:
8000000c: 00000297 auipc t0,0x0
80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
80000014: 30529073 csrw mtvec,t0
80000018: 00007117 auipc sp,0x7
8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
80000020: f14022f3 csrr t0,mhartid
80000024: 00c29293 slli t0,t0,0xc
80000028: 00510133 add sp,sp,t0
8000002c: 34011073 csrw mscratch,sp
80000030: 00003517 auipc a0,0x3
80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
80000038: 2090206f j 80002a40 <vm_boot>
8000003c <pop_tf>:
8000003c: 08452283 lw t0,132(a0)
80000040: 14129073 csrw sepc,t0
80000044: 00452083 lw ra,4(a0)
80000048: 00852103 lw sp,8(a0)
8000004c: 00c52183 lw gp,12(a0)
80000050: 01052203 lw tp,16(a0)
80000054: 01452283 lw t0,20(a0)
80000058: 01852303 lw t1,24(a0)
8000005c: 01c52383 lw t2,28(a0)
80000060: 02052403 lw s0,32(a0)
80000064: 02452483 lw s1,36(a0)
80000068: 02c52583 lw a1,44(a0)
8000006c: 03052603 lw a2,48(a0)
80000070: 03452683 lw a3,52(a0)
80000074: 03852703 lw a4,56(a0)
80000078: 03c52783 lw a5,60(a0)
8000007c: 04052803 lw a6,64(a0)
80000080: 04452883 lw a7,68(a0)
80000084: 04852903 lw s2,72(a0)
80000088: 04c52983 lw s3,76(a0)
8000008c: 05052a03 lw s4,80(a0)
80000090: 05452a83 lw s5,84(a0)
80000094: 05852b03 lw s6,88(a0)
80000098: 05c52b83 lw s7,92(a0)
8000009c: 06052c03 lw s8,96(a0)
800000a0: 06452c83 lw s9,100(a0)
800000a4: 06852d03 lw s10,104(a0)
800000a8: 06c52d83 lw s11,108(a0)
800000ac: 07052e03 lw t3,112(a0)
800000b0: 07452e83 lw t4,116(a0)
800000b4: 07852f03 lw t5,120(a0)
800000b8: 07c52f83 lw t6,124(a0)
800000bc: 02852503 lw a0,40(a0)
800000c0: 10200073 sret
800000c4 <trap_entry>:
800000c4: 14011173 csrrw sp,sscratch,sp
800000c8: 00112223 sw ra,4(sp)
800000cc: 00312623 sw gp,12(sp)
800000d0: 00412823 sw tp,16(sp)
800000d4: 00512a23 sw t0,20(sp)
800000d8: 00612c23 sw t1,24(sp)
800000dc: 00712e23 sw t2,28(sp)
800000e0: 02812023 sw s0,32(sp)
800000e4: 02912223 sw s1,36(sp)
800000e8: 02a12423 sw a0,40(sp)
800000ec: 02b12623 sw a1,44(sp)
800000f0: 02c12823 sw a2,48(sp)
800000f4: 02d12a23 sw a3,52(sp)
800000f8: 02e12c23 sw a4,56(sp)
800000fc: 02f12e23 sw a5,60(sp)
80000100: 05012023 sw a6,64(sp)
80000104: 05112223 sw a7,68(sp)
80000108: 05212423 sw s2,72(sp)
8000010c: 05312623 sw s3,76(sp)
80000110: 05412823 sw s4,80(sp)
80000114: 05512a23 sw s5,84(sp)
80000118: 05612c23 sw s6,88(sp)
8000011c: 05712e23 sw s7,92(sp)
80000120: 07812023 sw s8,96(sp)
80000124: 07912223 sw s9,100(sp)
80000128: 07a12423 sw s10,104(sp)
8000012c: 07b12623 sw s11,108(sp)
80000130: 07c12823 sw t3,112(sp)
80000134: 07d12a23 sw t4,116(sp)
80000138: 07e12c23 sw t5,120(sp)
8000013c: 07f12e23 sw t6,124(sp)
80000140: 140112f3 csrrw t0,sscratch,sp
80000144: 00512423 sw t0,8(sp)
80000148: 100022f3 csrr t0,sstatus
8000014c: 08512023 sw t0,128(sp)
80000150: 141022f3 csrr t0,sepc
80000154: 08512223 sw t0,132(sp)
80000158: 143022f3 csrr t0,sbadaddr
8000015c: 08512423 sw t0,136(sp)
80000160: 142022f3 csrr t0,scause
80000164: 08512623 sw t0,140(sp)
80000168: 00010513 mv a0,sp
8000016c: 50c0206f j 80002678 <handle_trap>
Disassembly of section .text:
80002000 <memcpy>:
80002000: 00c5e7b3 or a5,a1,a2
80002004: 00f567b3 or a5,a0,a5
80002008: 0037f793 andi a5,a5,3
8000200c: 00c506b3 add a3,a0,a2
80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
80002014: 00c58633 add a2,a1,a2
80002018: 00050793 mv a5,a0
8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
80002020: 00158593 addi a1,a1,1
80002024: fff5c703 lbu a4,-1(a1)
80002028: 00178793 addi a5,a5,1
8000202c: fee78fa3 sb a4,-1(a5)
80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
80002034: 00008067 ret
80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
8000203c: 00050793 mv a5,a0
80002040: 00458593 addi a1,a1,4
80002044: ffc5a703 lw a4,-4(a1)
80002048: 00478793 addi a5,a5,4
8000204c: fee7ae23 sw a4,-4(a5)
80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
80002054: 00008067 ret
80002058: 00008067 ret
8000205c <memset>:
8000205c: 00c567b3 or a5,a0,a2
80002060: 0037f793 andi a5,a5,3
80002064: 00c50633 add a2,a0,a2
80002068: 02078063 beqz a5,80002088 <memset+0x2c>
8000206c: 0ff5f593 andi a1,a1,255
80002070: 00050793 mv a5,a0
80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
80002078: 00178793 addi a5,a5,1
8000207c: feb78fa3 sb a1,-1(a5)
80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
80002084: 00008067 ret
80002088: 0ff5f593 andi a1,a1,255
8000208c: 00859793 slli a5,a1,0x8
80002090: 00b7e7b3 or a5,a5,a1
80002094: 01079593 slli a1,a5,0x10
80002098: 00f5e5b3 or a1,a1,a5
8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
800020a0: 00050793 mv a5,a0
800020a4: 00478793 addi a5,a5,4
800020a8: feb7ae23 sw a1,-4(a5)
800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
800020b0: 00008067 ret
800020b4: 00008067 ret
800020b8 <strlen>:
800020b8: 00054783 lbu a5,0(a0)
800020bc: 00050713 mv a4,a0
800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
800020c4: 00150513 addi a0,a0,1
800020c8: 00054783 lbu a5,0(a0)
800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
800020d0: 40e50533 sub a0,a0,a4
800020d4: 00008067 ret
800020d8: 00000513 li a0,0
800020dc: 00008067 ret
800020e0 <strcmp>:
800020e0: 00150513 addi a0,a0,1
800020e4: fff54783 lbu a5,-1(a0)
800020e8: 00158593 addi a1,a1,1
800020ec: fff5c703 lbu a4,-1(a1)
800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
800020f8: 40e78533 sub a0,a5,a4
800020fc: 00008067 ret
80002100: 00000793 li a5,0
80002104: ff5ff06f j 800020f8 <strcmp+0x18>
80002108 <memcmp>:
80002108: 00b567b3 or a5,a0,a1
8000210c: 0037f793 andi a5,a5,3
80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
80002114: ffc67693 andi a3,a2,-4
80002118: 00d506b3 add a3,a0,a3
8000211c: 00050813 mv a6,a0
80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
80002124: 00052703 lw a4,0(a0)
80002128: 0005a783 lw a5,0(a1)
8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
80002130: 0240006f j 80002154 <memcmp+0x4c>
80002134: 00052703 lw a4,0(a0)
80002138: 0005a783 lw a5,0(a1)
8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
80002140: 00450513 addi a0,a0,4
80002144: 00458593 addi a1,a1,4
80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
8000214c: 41050833 sub a6,a0,a6
80002150: 41060633 sub a2,a2,a6
80002154: 00c58633 add a2,a1,a2
80002158: 0140006f j 8000216c <memcmp+0x64>
8000215c: 00158593 addi a1,a1,1
80002160: fff54783 lbu a5,-1(a0)
80002164: fff5c703 lbu a4,-1(a1)
80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
8000216c: 00150513 addi a0,a0,1
80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
80002174: 00000513 li a0,0
80002178: 00008067 ret
8000217c: 40e78533 sub a0,a5,a4
80002180: 00008067 ret
80002184 <strcpy>:
80002184: 00050793 mv a5,a0
80002188: 00158593 addi a1,a1,1
8000218c: fff5c703 lbu a4,-1(a1)
80002190: 00178793 addi a5,a5,1
80002194: fee78fa3 sb a4,-1(a5)
80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
8000219c: 00008067 ret
800021a0 <atol>:
800021a0: 00054783 lbu a5,0(a0)
800021a4: 02000713 li a4,32
800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
800021ac: 00150513 addi a0,a0,1
800021b0: 00054783 lbu a5,0(a0)
800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
800021b8: fd578713 addi a4,a5,-43
800021bc: 0fd77713 andi a4,a4,253
800021c0: 04070263 beqz a4,80002204 <atol+0x64>
800021c4: 00054683 lbu a3,0(a0)
800021c8: 00050793 mv a5,a0
800021cc: 00000613 li a2,0
800021d0: 04068863 beqz a3,80002220 <atol+0x80>
800021d4: 00000513 li a0,0
800021d8: 00178793 addi a5,a5,1
800021dc: fd068593 addi a1,a3,-48
800021e0: 00251713 slli a4,a0,0x2
800021e4: 0007c683 lbu a3,0(a5)
800021e8: 00a70533 add a0,a4,a0
800021ec: 00151513 slli a0,a0,0x1
800021f0: 00a58533 add a0,a1,a0
800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
800021f8: 00060463 beqz a2,80002200 <atol+0x60>
800021fc: 40a00533 neg a0,a0
80002200: 00008067 ret
80002204: 00154683 lbu a3,1(a0)
80002208: fd378793 addi a5,a5,-45
8000220c: 0017b613 seqz a2,a5
80002210: 00150793 addi a5,a0,1
80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
80002218: 00000513 li a0,0
8000221c: fddff06f j 800021f8 <atol+0x58>
80002220: 00000513 li a0,0
80002224: 00008067 ret
80002228 <terminate>:
80002228: fffff697 auipc a3,0xfffff
8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
80002230: 0006a703 lw a4,0(a3)
80002234: 0046a783 lw a5,4(a3)
80002238: 00050813 mv a6,a0
8000223c: 41f55893 srai a7,a0,0x1f
80002240: 00f76733 or a4,a4,a5
80002244: 02070663 beqz a4,80002270 <terminate+0x48>
80002248: fffff617 auipc a2,0xfffff
8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
80002250: 00000713 li a4,0
80002254: 00e62023 sw a4,0(a2)
80002258: 00000793 li a5,0
8000225c: 00f62223 sw a5,4(a2)
80002260: 0006a703 lw a4,0(a3)
80002264: 0046a783 lw a5,4(a3)
80002268: 00f76733 or a4,a4,a5
8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
80002270: 0106a023 sw a6,0(a3)
80002274: 0116a223 sw a7,4(a3)
80002278: 0000006f j 80002278 <terminate+0x50>
8000227c <wtf>:
8000227c: ff010113 addi sp,sp,-16
80002280: 34900513 li a0,841
80002284: 00112623 sw ra,12(sp)
80002288: fa1ff0ef jal ra,80002228 <terminate>
8000228c <printhex>:
8000228c: fe010113 addi sp,sp,-32
80002290: 01b10793 addi a5,sp,27
80002294: 00b10e93 addi t4,sp,11
80002298: 00900e13 li t3,9
8000229c: 00f57693 andi a3,a0,15
800022a0: 01c59313 slli t1,a1,0x1c
800022a4: 00455513 srli a0,a0,0x4
800022a8: 05700613 li a2,87
800022ac: 0ff6f713 andi a4,a3,255
800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
800022b4: 03000613 li a2,48
800022b8: 00c70733 add a4,a4,a2
800022bc: 00e78023 sb a4,0(a5)
800022c0: fff78793 addi a5,a5,-1
800022c4: 00a36533 or a0,t1,a0
800022c8: 0045d593 srli a1,a1,0x4
800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
800022d0: 00c14583 lbu a1,12(sp)
800022d4: 00010e23 sb zero,28(sp)
800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
800022dc: 00c10513 addi a0,sp,12
800022e0: fffff697 auipc a3,0xfffff
800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
800022e8: fffff617 auipc a2,0xfffff
800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
800022f0: 0006a703 lw a4,0(a3)
800022f4: 0046a783 lw a5,4(a3)
800022f8: 00058813 mv a6,a1
800022fc: 00150513 addi a0,a0,1
80002300: 00f76733 or a4,a4,a5
80002304: 010108b7 lui a7,0x1010
80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
8000230c: 00000713 li a4,0
80002310: 00e62023 sw a4,0(a2)
80002314: 00000793 li a5,0
80002318: 00f62223 sw a5,4(a2)
8000231c: 0006a703 lw a4,0(a3)
80002320: 0046a783 lw a5,4(a3)
80002324: 00f76733 or a4,a4,a5
80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
8000232c: 00054583 lbu a1,0(a0)
80002330: 0106a023 sw a6,0(a3)
80002334: 0116a223 sw a7,4(a3)
80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
8000233c: 02010113 addi sp,sp,32
80002340: 00008067 ret
80002344 <handle_fault>:
80002344: ff010113 addi sp,sp,-16
80002348: fffff6b7 lui a3,0xfffff
8000234c: 00112623 sw ra,12(sp)
80002350: 00812423 sw s0,8(sp)
80002354: 00912223 sw s1,4(sp)
80002358: 00d50733 add a4,a0,a3
8000235c: 0003e7b7 lui a5,0x3e
80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
80002364: 00c55613 srli a2,a0,0xc
80002368: 40060e13 addi t3,a2,1024
8000236c: 00002317 auipc t1,0x2
80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
80002374: 002e1793 slli a5,t3,0x2
80002378: 00f307b3 add a5,t1,a5
8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
80002380: 00d57533 and a0,a0,a3
80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
80002388: 00004797 auipc a5,0x4
8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
80002390: 0007a583 lw a1,0(a5)
80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
80002398: 0045a783 lw a5,4(a1)
8000239c: 00004717 auipc a4,0x4
800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
800023a4: 00072703 lw a4,0(a4)
800023a8: 00004697 auipc a3,0x4
800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
800023b4: 0005a703 lw a4,0(a1)
800023b8: 002e1793 slli a5,t3,0x2
800023bc: 00f307b3 add a5,t1,a5
800023c0: 00c75713 srli a4,a4,0xc
800023c4: 00a71713 slli a4,a4,0xa
800023c8: 0df76e93 ori t4,a4,223
800023cc: 01f76693 ori a3,a4,31
800023d0: 01d7a023 sw t4,0(a5)
800023d4: 12050073 sfence.vma a0
800023d8: 00004717 auipc a4,0x4
800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
800023e0: 00361793 slli a5,a2,0x3
800023e4: 00f707b3 add a5,a4,a5
800023e8: 0007a703 lw a4,0(a5)
800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
800023f0: 0005a703 lw a4,0(a1)
800023f4: 00e7a023 sw a4,0(a5)
800023f8: 0045a703 lw a4,4(a1)
800023fc: 00e7a223 sw a4,4(a5)
80002400: 000407b7 lui a5,0x40
80002404: 1007a5f3 csrrs a1,sstatus,a5
80002408: ffc007b7 lui a5,0xffc00
8000240c: 00f507b3 add a5,a0,a5
80002410: 00001637 lui a2,0x1
80002414: 00050713 mv a4,a0
80002418: 00c78633 add a2,a5,a2
8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
80002420: 0047ae83 lw t4,4(a5)
80002424: 0087a883 lw a7,8(a5)
80002428: 00c7a803 lw a6,12(a5)
8000242c: 01e72023 sw t5,0(a4)
80002430: 01d72223 sw t4,4(a4)
80002434: 01172423 sw a7,8(a4)
80002438: 01072623 sw a6,12(a4)
8000243c: 01078793 addi a5,a5,16
80002440: 01070713 addi a4,a4,16
80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
80002448: 10059073 csrw sstatus,a1
8000244c: 002e1e13 slli t3,t3,0x2
80002450: 01c30333 add t1,t1,t3
80002454: 00d32023 sw a3,0(t1)
80002458: 12050073 sfence.vma a0
8000245c: 0000100f fence.i
80002460: 00c12083 lw ra,12(sp)
80002464: 00812403 lw s0,8(sp)
80002468: 00412483 lw s1,4(sp)
8000246c: 01010113 addi sp,sp,16
80002470: 00008067 ret
80002474: 04077693 andi a3,a4,64
80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
8000247c: 04076713 ori a4,a4,64
80002480: 00e7a023 sw a4,0(a5)
80002484: 12050073 sfence.vma a0
80002488: 00c12083 lw ra,12(sp)
8000248c: 00812403 lw s0,8(sp)
80002490: 00412483 lw s1,4(sp)
80002494: 01010113 addi sp,sp,16
80002498: 00008067 ret
8000249c: 08077693 andi a3,a4,128
800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
800024a4: 00f00693 li a3,15
800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
800024ac: 08076713 ori a4,a4,128
800024b0: 00e7a023 sw a4,0(a5)
800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
800024b8: 00004797 auipc a5,0x4
800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
800024c4: 04100513 li a0,65
800024c8: 00000597 auipc a1,0x0
800024cc: 79058593 addi a1,a1,1936 # 80002c58 <pass+0xc>
800024d0: fffff697 auipc a3,0xfffff
800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
800024d8: fffff617 auipc a2,0xfffff
800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
800024e0: 0006a703 lw a4,0(a3)
800024e4: 0046a783 lw a5,4(a3)
800024e8: 00050313 mv t1,a0
800024ec: 00158593 addi a1,a1,1
800024f0: 00f76733 or a4,a4,a5
800024f4: 010103b7 lui t2,0x1010
800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
800024fc: 00000793 li a5,0
80002500: 00f62023 sw a5,0(a2)
80002504: 00000813 li a6,0
80002508: 01062223 sw a6,4(a2)
8000250c: 0006a703 lw a4,0(a3)
80002510: 0046a783 lw a5,4(a3)
80002514: 00f76733 or a4,a4,a5
80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
8000251c: 0005c503 lbu a0,0(a1)
80002520: 0066a023 sw t1,0(a3)
80002524: 0076a223 sw t2,4(a3)
80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
8000252c: 00300513 li a0,3
80002530: cf9ff0ef jal ra,80002228 <terminate>
80002534: 04100513 li a0,65
80002538: 00000597 auipc a1,0x0
8000253c: 7ac58593 addi a1,a1,1964 # 80002ce4 <pass+0x98>
80002540: fffff697 auipc a3,0xfffff
80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
80002548: fffff617 auipc a2,0xfffff
8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
80002550: 0006a703 lw a4,0(a3)
80002554: 0046a783 lw a5,4(a3)
80002558: 00050f13 mv t5,a0
8000255c: 00158593 addi a1,a1,1
80002560: 00f76733 or a4,a4,a5
80002564: 01010fb7 lui t6,0x1010
80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
8000256c: 00000793 li a5,0
80002570: 00f62023 sw a5,0(a2)
80002574: 00000813 li a6,0
80002578: 01062223 sw a6,4(a2)
8000257c: 0006a703 lw a4,0(a3)
80002580: 0046a783 lw a5,4(a3)
80002584: 00f76733 or a4,a4,a5
80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
8000258c: 0005c503 lbu a0,0(a1)
80002590: 01e6a023 sw t5,0(a3)
80002594: 01f6a223 sw t6,4(a3)
80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
800025a0: 04100513 li a0,65
800025a4: 00000597 auipc a1,0x0
800025a8: 75858593 addi a1,a1,1880 # 80002cfc <pass+0xb0>
800025ac: fffff697 auipc a3,0xfffff
800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
800025b4: fffff617 auipc a2,0xfffff
800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
800025bc: 0006a703 lw a4,0(a3)
800025c0: 0046a783 lw a5,4(a3)
800025c4: 00050813 mv a6,a0
800025c8: 00158593 addi a1,a1,1
800025cc: 00f76733 or a4,a4,a5
800025d0: 010108b7 lui a7,0x1010
800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
800025d8: 00000713 li a4,0
800025dc: 00e62023 sw a4,0(a2)
800025e0: 00000793 li a5,0
800025e4: 00f62223 sw a5,4(a2)
800025e8: 0006a703 lw a4,0(a3)
800025ec: 0046a783 lw a5,4(a3)
800025f0: 00f76733 or a4,a4,a5
800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
800025f8: 0005c503 lbu a0,0(a1)
800025fc: 0106a023 sw a6,0(a3)
80002600: 0116a223 sw a7,4(a3)
80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
8000260c: 04100793 li a5,65
80002610: 00000597 auipc a1,0x0
80002614: 68c58593 addi a1,a1,1676 # 80002c9c <pass+0x50>
80002618: fffff697 auipc a3,0xfffff
8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
80002620: fffff617 auipc a2,0xfffff
80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
80002628: 0006a803 lw a6,0(a3)
8000262c: 0046a883 lw a7,4(a3)
80002630: 00078413 mv s0,a5
80002634: 00158593 addi a1,a1,1
80002638: 01186833 or a6,a6,a7
8000263c: 010104b7 lui s1,0x1010
80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
80002644: 00000793 li a5,0
80002648: 00f62023 sw a5,0(a2)
8000264c: 00000813 li a6,0
80002650: 01062223 sw a6,4(a2)
80002654: 0006a703 lw a4,0(a3)
80002658: 0046a783 lw a5,4(a3)
8000265c: 00f76733 or a4,a4,a5
80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
80002664: 0005c783 lbu a5,0(a1)
80002668: 0086a023 sw s0,0(a3)
8000266c: 0096a223 sw s1,4(a3)
80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
80002678 <handle_trap>:
80002678: 08c52583 lw a1,140(a0)
8000267c: fb010113 addi sp,sp,-80
80002680: 03412c23 sw s4,56(sp)
80002684: 04112623 sw ra,76(sp)
80002688: 04812423 sw s0,72(sp)
8000268c: 04912223 sw s1,68(sp)
80002690: 05212023 sw s2,64(sp)
80002694: 03312e23 sw s3,60(sp)
80002698: 03512a23 sw s5,52(sp)
8000269c: 03612823 sw s6,48(sp)
800026a0: 03712623 sw s7,44(sp)
800026a4: 03812423 sw s8,40(sp)
800026a8: 03912223 sw s9,36(sp)
800026ac: 03a12023 sw s10,32(sp)
800026b0: 01b12e23 sw s11,28(sp)
800026b4: 00800793 li a5,8
800026b8: 00050a13 mv s4,a0
800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
800026c0: 00200793 li a5,2
800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
800026c8: ff458793 addi a5,a1,-12
800026cc: 00100713 li a4,1
800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
800026d4: 00f00793 li a5,15
800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
800026dc: 088a2503 lw a0,136(s4)
800026e0: c65ff0ef jal ra,80002344 <handle_fault>
800026e4: 04812403 lw s0,72(sp)
800026e8: 04c12083 lw ra,76(sp)
800026ec: 04412483 lw s1,68(sp)
800026f0: 04012903 lw s2,64(sp)
800026f4: 03c12983 lw s3,60(sp)
800026f8: 03412a83 lw s5,52(sp)
800026fc: 03012b03 lw s6,48(sp)
80002700: 02c12b83 lw s7,44(sp)
80002704: 02812c03 lw s8,40(sp)
80002708: 02412c83 lw s9,36(sp)
8000270c: 02012d03 lw s10,32(sp)
80002710: 01c12d83 lw s11,28(sp)
80002714: 000a0513 mv a0,s4
80002718: 03812a03 lw s4,56(sp)
8000271c: 05010113 addi sp,sp,80
80002720: 91dfd06f j 8000003c <pop_tf>
80002724: 08452703 lw a4,132(a0)
80002728: 00377793 andi a5,a4,3
8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
80002734: 00301073 fssr zero
80002738: 00072703 lw a4,0(a4)
8000273c: 0007a783 lw a5,0(a5)
80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
80002744: 04100513 li a0,65
80002748: 00000597 auipc a1,0x0
8000274c: 67c58593 addi a1,a1,1660 # 80002dc4 <pass+0x178>
80002750: fffff697 auipc a3,0xfffff
80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
80002758: fffff617 auipc a2,0xfffff
8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
80002760: 0006a703 lw a4,0(a3)
80002764: 0046a783 lw a5,4(a3)
80002768: 00050813 mv a6,a0
8000276c: 00158593 addi a1,a1,1
80002770: 00f76733 or a4,a4,a5
80002774: 010108b7 lui a7,0x1010
80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
8000277c: 00000713 li a4,0
80002780: 00e62023 sw a4,0(a2)
80002784: 00000793 li a5,0
80002788: 00f62223 sw a5,4(a2)
8000278c: 0006a703 lw a4,0(a3)
80002790: 0046a783 lw a5,4(a3)
80002794: 00f76733 or a4,a4,a5
80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
8000279c: 0005c503 lbu a0,0(a1)
800027a0: 0106a023 sw a6,0(a3)
800027a4: 0116a223 sw a7,4(a3)
800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
800027ac: 00300513 li a0,3
800027b0: a79ff0ef jal ra,80002228 <terminate>
800027b4: 00100513 li a0,1
800027b8: a71ff0ef jal ra,80002228 <terminate>
800027bc: 00000597 auipc a1,0x0
800027c0: 5e458593 addi a1,a1,1508 # 80002da0 <pass+0x154>
800027c4: 04100613 li a2,65
800027c8: fffff697 auipc a3,0xfffff
800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
800027d0: fffff517 auipc a0,0xfffff
800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
800027d8: 0006a703 lw a4,0(a3)
800027dc: 0046a783 lw a5,4(a3)
800027e0: 00060e13 mv t3,a2
800027e4: 00158593 addi a1,a1,1
800027e8: 00f76733 or a4,a4,a5
800027ec: 01010eb7 lui t4,0x1010
800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
800027f4: 00000793 li a5,0
800027f8: 00f52023 sw a5,0(a0)
800027fc: 00000813 li a6,0
80002800: 01052223 sw a6,4(a0)
80002804: 0006a703 lw a4,0(a3)
80002808: 0046a783 lw a5,4(a3)
8000280c: 00f76733 or a4,a4,a5
80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
80002814: 0005c603 lbu a2,0(a1)
80002818: 01c6a023 sw t3,0(a3)
8000281c: 01d6a223 sw t4,4(a3)
80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
80002824: f89ff06f j 800027ac <handle_trap+0x134>
80002828: 02852783 lw a5,40(a0)
8000282c: 00001a37 lui s4,0x1
80002830: 00004b17 auipc s6,0x4
80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
80002838: 00f12223 sw a5,4(sp)
8000283c: 00001d17 auipc s10,0x1
80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
80002844: 00040cb7 lui s9,0x40
80002848: ffc00c37 lui s8,0xffc00
8000284c: 0003fab7 lui s5,0x3f
80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
80002854: 00f72223 sw a5,4(a4)
80002858: 00004717 auipc a4,0x4
8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
80002860: 000017b7 lui a5,0x1
80002864: 00fa0a33 add s4,s4,a5
80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
8000286c: 00ca5713 srli a4,s4,0xc
80002870: 00371b93 slli s7,a4,0x3
80002874: 017b0633 add a2,s6,s7
80002878: 00062603 lw a2,0(a2)
8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
80002880: 40070713 addi a4,a4,1024
80002884: 00271713 slli a4,a4,0x2
80002888: 00ed0733 add a4,s10,a4
8000288c: 00072703 lw a4,0(a4)
80002890: 04077613 andi a2,a4,64
80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
80002898: 00e12623 sw a4,12(sp)
8000289c: 100cadf3 csrrs s11,sstatus,s9
800028a0: 018a0833 add a6,s4,s8
800028a4: 00001637 lui a2,0x1
800028a8: 00080593 mv a1,a6
800028ac: 000a0513 mv a0,s4
800028b0: 01012423 sw a6,8(sp)
800028b4: 855ff0ef jal ra,80002108 <memcmp>
800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
800028bc: 00c12703 lw a4,12(sp)
800028c0: 00812803 lw a6,8(sp)
800028c4: 08077713 andi a4,a4,128
800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
800028cc: 00001637 lui a2,0x1
800028d0: 00080593 mv a1,a6
800028d4: 000a0513 mv a0,s4
800028d8: f28ff0ef jal ra,80002000 <memcpy>
800028dc: 017b07b3 add a5,s6,s7
800028e0: 100d9073 csrw sstatus,s11
800028e4: 00004717 auipc a4,0x4
800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
800028ec: 00072703 lw a4,0(a4)
800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
800028f8: 00004717 auipc a4,0x4
800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
80002900: 00004717 auipc a4,0x4
80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
8000290c: 04100593 li a1,65
80002910: 00000617 auipc a2,0x0
80002914: 4e060613 addi a2,a2,1248 # 80002df0 <pass+0x1a4>
80002918: ffffe697 auipc a3,0xffffe
8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
80002920: ffffe517 auipc a0,0xffffe
80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
80002928: 0006a703 lw a4,0(a3)
8000292c: 0046a783 lw a5,4(a3)
80002930: 00058313 mv t1,a1
80002934: 00160613 addi a2,a2,1
80002938: 00f76733 or a4,a4,a5
8000293c: 010103b7 lui t2,0x1010
80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
80002944: 00000793 li a5,0
80002948: 00f52023 sw a5,0(a0)
8000294c: 00000813 li a6,0
80002950: 01052223 sw a6,4(a0)
80002954: 0006a703 lw a4,0(a3)
80002958: 0046a783 lw a5,4(a3)
8000295c: 00f76733 or a4,a4,a5
80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
80002964: 00064583 lbu a1,0(a2)
80002968: 0066a023 sw t1,0(a3)
8000296c: 0076a223 sw t2,4(a3)
80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
80002974: e39ff06f j 800027ac <handle_trap+0x134>
80002978: 04100793 li a5,65
8000297c: 00000617 auipc a2,0x0
80002980: 3f060613 addi a2,a2,1008 # 80002d6c <pass+0x120>
80002984: ffffe697 auipc a3,0xffffe
80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
8000298c: ffffe597 auipc a1,0xffffe
80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
80002994: 00078413 mv s0,a5
80002998: 00160613 addi a2,a2,1
8000299c: 010104b7 lui s1,0x1010
800029a0: 0006a703 lw a4,0(a3)
800029a4: 0046a783 lw a5,4(a3)
800029a8: 00f76733 or a4,a4,a5
800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
800029b0: 00000793 li a5,0
800029b4: 00000813 li a6,0
800029b8: 00f5a023 sw a5,0(a1)
800029bc: 0105a223 sw a6,4(a1)
800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
800029c4: 04100793 li a5,65
800029c8: 00000617 auipc a2,0x0
800029cc: 37060613 addi a2,a2,880 # 80002d38 <pass+0xec>
800029d0: ffffe697 auipc a3,0xffffe
800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
800029d8: ffffe597 auipc a1,0xffffe
800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
800029e0: 00078913 mv s2,a5
800029e4: 00160613 addi a2,a2,1
800029e8: 010109b7 lui s3,0x1010
800029ec: 0006a703 lw a4,0(a3)
800029f0: 0046a783 lw a5,4(a3)
800029f4: 00f76733 or a4,a4,a5
800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
800029fc: 00000793 li a5,0
80002a00: 00000813 li a6,0
80002a04: 00f5a023 sw a5,0(a1)
80002a08: 0105a223 sw a6,4(a1)
80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
80002a10: 00412503 lw a0,4(sp)
80002a14: 815ff0ef jal ra,80002228 <terminate>
80002a18: 00064783 lbu a5,0(a2)
80002a1c: 0086a023 sw s0,0(a3)
80002a20: 0096a223 sw s1,4(a3)
80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
80002a28: d85ff06f j 800027ac <handle_trap+0x134>
80002a2c: 00064783 lbu a5,0(a2)
80002a30: 0126a023 sw s2,0(a3)
80002a34: 0136a223 sw s3,4(a3)
80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
80002a40 <vm_boot>:
80002a40: f14027f3 csrr a5,mhartid
80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
80002a48: 00002797 auipc a5,0x2
80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
80002a50: 00c7d793 srli a5,a5,0xc
80002a54: 00a79793 slli a5,a5,0xa
80002a58: 0017e793 ori a5,a5,1
80002a5c: 00001697 auipc a3,0x1
80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
80002a64: 200007b7 lui a5,0x20000
80002a68: 00001717 auipc a4,0x1
80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
80002a74: f6010113 addi sp,sp,-160
80002a78: 00002697 auipc a3,0x2
80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
80002a80: 00c75793 srli a5,a4,0xc
80002a84: 80000737 lui a4,0x80000
80002a88: 08112e23 sw ra,156(sp)
80002a8c: 08812c23 sw s0,152(sp)
80002a90: 00e7e7b3 or a5,a5,a4
80002a94: 18079073 csrw satp,a5
80002a98: 01f00793 li a5,31
80002a9c: fff00713 li a4,-1
80002aa0: 00000297 auipc t0,0x0
80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
80002aa8: 305292f3 csrrw t0,mtvec,t0
80002aac: 3b071073 csrw pmpaddr0,a4
80002ab0: 3a079073 csrw pmpcfg0,a5
80002ab4: 7fbfd797 auipc a5,0x7fbfd
80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
80002abc: 10579073 csrw stvec,a5
80002ac0: 340027f3 csrr a5,mscratch
80002ac4: 7fc00837 lui a6,0x7fc00
80002ac8: 010787b3 add a5,a5,a6
80002acc: 14079073 csrw sscratch,a5
80002ad0: 0000b7b7 lui a5,0xb
80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
80002ad8: 30279073 csrw medeleg,a5
80002adc: 0001e7b7 lui a5,0x1e
80002ae0: 30079073 csrw mstatus,a5
80002ae4: 30405073 csrwi mie,0
80002ae8: 7fc03797 auipc a5,0x7fc03
80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
80002af0: 00004717 auipc a4,0x4
80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
80002af8: 7fc03797 auipc a5,0x7fc03
80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
80002b00: 00004717 auipc a4,0x4
80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
80002b08: 000808b7 lui a7,0x80
80002b0c: 00003717 auipc a4,0x3
80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
80002b14: 00003317 auipc t1,0x3
80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
80002b1c: 00e00793 li a5,14
80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
80002b28: 0017d613 srli a2,a5,0x1
80002b2c: 011786b3 add a3,a5,a7
80002b30: 00f647b3 xor a5,a2,a5
80002b34: 010705b3 add a1,a4,a6
80002b38: 00c69693 slli a3,a3,0xc
80002b3c: 00579793 slli a5,a5,0x5
80002b40: 00d72023 sw a3,0(a4)
80002b44: 00b72223 sw a1,4(a4)
80002b48: 0207f793 andi a5,a5,32
80002b4c: 00870713 addi a4,a4,8
80002b50: 00f667b3 or a5,a2,a5
80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
80002b58: 00050413 mv s0,a0
80002b5c: 09000613 li a2,144
80002b60: 00000593 li a1,0
80002b64: 00010513 mv a0,sp
80002b68: 00003797 auipc a5,0x3
80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
80002b70: cecff0ef jal ra,8000205c <memset>
80002b74: 800007b7 lui a5,0x80000
80002b78: 00f40433 add s0,s0,a5
80002b7c: 00010513 mv a0,sp
80002b80: 08812223 sw s0,132(sp)
80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
80002b88: 09c12083 lw ra,156(sp)
80002b8c: 09812403 lw s0,152(sp)
80002b90: 0a010113 addi sp,sp,160
80002b94: 00008067 ret
80002b98: 05ac37b7 lui a5,0x5ac3
80002b9c: 00080637 lui a2,0x80
80002ba0: c2978793 addi a5,a5,-983 # 5ac2c29 <_start-0x7a53d3d7>
80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
80002ba8: 800005b7 lui a1,0x80000
80002bac: 00c7f733 and a4,a5,a2
80002bb0: 0017f693 andi a3,a5,1
80002bb4: 00b70733 add a4,a4,a1
80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
80002bbc: 0007202f amoadd.w zero,zero,(a4)
80002bc0: 0017d793 srli a5,a5,0x1
80002bc4: 00c7f733 and a4,a5,a2
80002bc8: 0017f693 andi a3,a5,1
80002bcc: 00b70733 add a4,a4,a1
80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
80002bd4: 00072003 lw zero,0(a4)
80002bd8: 0017d793 srli a5,a5,0x1
80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
80002be0 <userstart>:
80002be0: 80000537 lui a0,0x80000
80002be4: 80000593 li a1,-2048
80002be8: 00000697 auipc a3,0x0
80002bec: 41868693 addi a3,a3,1048 # 80003000 <begin_signature>
80002bf0: 00a6a023 sw a0,0(a3)
80002bf4: 40b6a72f amoor.w a4,a1,(a3)
80002bf8: 80000eb7 lui t4,0x80000
80002bfc: 00200193 li gp,2
80002c00: 03d71e63 bne a4,t4,80002c3c <fail>
80002c04 <test_3>:
80002c04: 0006a783 lw a5,0(a3)
80002c08: 80000e93 li t4,-2048
80002c0c: 00300193 li gp,3
80002c10: 03d79663 bne a5,t4,80002c3c <fail>
80002c14 <test_4>:
80002c14: 00100593 li a1,1
80002c18: 40b6a72f amoor.w a4,a1,(a3)
80002c1c: 80000e93 li t4,-2048
80002c20: 00400193 li gp,4
80002c24: 01d71c63 bne a4,t4,80002c3c <fail>
80002c28 <test_5>:
80002c28: 0006a783 lw a5,0(a3)
80002c2c: 80100e93 li t4,-2047
80002c30: 00500193 li gp,5
80002c34: 01d79463 bne a5,t4,80002c3c <fail>
80002c38: 00301a63 bne zero,gp,80002c4c <pass>
80002c3c <fail>:
80002c3c: 00119513 slli a0,gp,0x1
80002c40: 00050063 beqz a0,80002c40 <fail+0x4>
80002c44: 00156513 ori a0,a0,1
80002c48: 00000073 ecall
80002c4c <pass>:
80002c4c: 00100513 li a0,1
80002c50: 00000073 ecall
80002c54: c0001073 unimp

Binary file not shown.

View File

@@ -0,0 +1,939 @@
rv32ua-v-amoswap_w: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 00c0006f j 8000000c <handle_reset>
80000004 <nmi_vector>:
80000004: 2780206f j 8000227c <wtf>
80000008 <trap_vector>:
80000008: 2740206f j 8000227c <wtf>
8000000c <handle_reset>:
8000000c: 00000297 auipc t0,0x0
80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
80000014: 30529073 csrw mtvec,t0
80000018: 00007117 auipc sp,0x7
8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
80000020: f14022f3 csrr t0,mhartid
80000024: 00c29293 slli t0,t0,0xc
80000028: 00510133 add sp,sp,t0
8000002c: 34011073 csrw mscratch,sp
80000030: 00003517 auipc a0,0x3
80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
80000038: 2090206f j 80002a40 <vm_boot>
8000003c <pop_tf>:
8000003c: 08452283 lw t0,132(a0)
80000040: 14129073 csrw sepc,t0
80000044: 00452083 lw ra,4(a0)
80000048: 00852103 lw sp,8(a0)
8000004c: 00c52183 lw gp,12(a0)
80000050: 01052203 lw tp,16(a0)
80000054: 01452283 lw t0,20(a0)
80000058: 01852303 lw t1,24(a0)
8000005c: 01c52383 lw t2,28(a0)
80000060: 02052403 lw s0,32(a0)
80000064: 02452483 lw s1,36(a0)
80000068: 02c52583 lw a1,44(a0)
8000006c: 03052603 lw a2,48(a0)
80000070: 03452683 lw a3,52(a0)
80000074: 03852703 lw a4,56(a0)
80000078: 03c52783 lw a5,60(a0)
8000007c: 04052803 lw a6,64(a0)
80000080: 04452883 lw a7,68(a0)
80000084: 04852903 lw s2,72(a0)
80000088: 04c52983 lw s3,76(a0)
8000008c: 05052a03 lw s4,80(a0)
80000090: 05452a83 lw s5,84(a0)
80000094: 05852b03 lw s6,88(a0)
80000098: 05c52b83 lw s7,92(a0)
8000009c: 06052c03 lw s8,96(a0)
800000a0: 06452c83 lw s9,100(a0)
800000a4: 06852d03 lw s10,104(a0)
800000a8: 06c52d83 lw s11,108(a0)
800000ac: 07052e03 lw t3,112(a0)
800000b0: 07452e83 lw t4,116(a0)
800000b4: 07852f03 lw t5,120(a0)
800000b8: 07c52f83 lw t6,124(a0)
800000bc: 02852503 lw a0,40(a0)
800000c0: 10200073 sret
800000c4 <trap_entry>:
800000c4: 14011173 csrrw sp,sscratch,sp
800000c8: 00112223 sw ra,4(sp)
800000cc: 00312623 sw gp,12(sp)
800000d0: 00412823 sw tp,16(sp)
800000d4: 00512a23 sw t0,20(sp)
800000d8: 00612c23 sw t1,24(sp)
800000dc: 00712e23 sw t2,28(sp)
800000e0: 02812023 sw s0,32(sp)
800000e4: 02912223 sw s1,36(sp)
800000e8: 02a12423 sw a0,40(sp)
800000ec: 02b12623 sw a1,44(sp)
800000f0: 02c12823 sw a2,48(sp)
800000f4: 02d12a23 sw a3,52(sp)
800000f8: 02e12c23 sw a4,56(sp)
800000fc: 02f12e23 sw a5,60(sp)
80000100: 05012023 sw a6,64(sp)
80000104: 05112223 sw a7,68(sp)
80000108: 05212423 sw s2,72(sp)
8000010c: 05312623 sw s3,76(sp)
80000110: 05412823 sw s4,80(sp)
80000114: 05512a23 sw s5,84(sp)
80000118: 05612c23 sw s6,88(sp)
8000011c: 05712e23 sw s7,92(sp)
80000120: 07812023 sw s8,96(sp)
80000124: 07912223 sw s9,100(sp)
80000128: 07a12423 sw s10,104(sp)
8000012c: 07b12623 sw s11,108(sp)
80000130: 07c12823 sw t3,112(sp)
80000134: 07d12a23 sw t4,116(sp)
80000138: 07e12c23 sw t5,120(sp)
8000013c: 07f12e23 sw t6,124(sp)
80000140: 140112f3 csrrw t0,sscratch,sp
80000144: 00512423 sw t0,8(sp)
80000148: 100022f3 csrr t0,sstatus
8000014c: 08512023 sw t0,128(sp)
80000150: 141022f3 csrr t0,sepc
80000154: 08512223 sw t0,132(sp)
80000158: 143022f3 csrr t0,sbadaddr
8000015c: 08512423 sw t0,136(sp)
80000160: 142022f3 csrr t0,scause
80000164: 08512623 sw t0,140(sp)
80000168: 00010513 mv a0,sp
8000016c: 50c0206f j 80002678 <handle_trap>
Disassembly of section .text:
80002000 <memcpy>:
80002000: 00c5e7b3 or a5,a1,a2
80002004: 00f567b3 or a5,a0,a5
80002008: 0037f793 andi a5,a5,3
8000200c: 00c506b3 add a3,a0,a2
80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
80002014: 00c58633 add a2,a1,a2
80002018: 00050793 mv a5,a0
8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
80002020: 00158593 addi a1,a1,1
80002024: fff5c703 lbu a4,-1(a1)
80002028: 00178793 addi a5,a5,1
8000202c: fee78fa3 sb a4,-1(a5)
80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
80002034: 00008067 ret
80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
8000203c: 00050793 mv a5,a0
80002040: 00458593 addi a1,a1,4
80002044: ffc5a703 lw a4,-4(a1)
80002048: 00478793 addi a5,a5,4
8000204c: fee7ae23 sw a4,-4(a5)
80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
80002054: 00008067 ret
80002058: 00008067 ret
8000205c <memset>:
8000205c: 00c567b3 or a5,a0,a2
80002060: 0037f793 andi a5,a5,3
80002064: 00c50633 add a2,a0,a2
80002068: 02078063 beqz a5,80002088 <memset+0x2c>
8000206c: 0ff5f593 andi a1,a1,255
80002070: 00050793 mv a5,a0
80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
80002078: 00178793 addi a5,a5,1
8000207c: feb78fa3 sb a1,-1(a5)
80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
80002084: 00008067 ret
80002088: 0ff5f593 andi a1,a1,255
8000208c: 00859793 slli a5,a1,0x8
80002090: 00b7e7b3 or a5,a5,a1
80002094: 01079593 slli a1,a5,0x10
80002098: 00f5e5b3 or a1,a1,a5
8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
800020a0: 00050793 mv a5,a0
800020a4: 00478793 addi a5,a5,4
800020a8: feb7ae23 sw a1,-4(a5)
800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
800020b0: 00008067 ret
800020b4: 00008067 ret
800020b8 <strlen>:
800020b8: 00054783 lbu a5,0(a0)
800020bc: 00050713 mv a4,a0
800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
800020c4: 00150513 addi a0,a0,1
800020c8: 00054783 lbu a5,0(a0)
800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
800020d0: 40e50533 sub a0,a0,a4
800020d4: 00008067 ret
800020d8: 00000513 li a0,0
800020dc: 00008067 ret
800020e0 <strcmp>:
800020e0: 00150513 addi a0,a0,1
800020e4: fff54783 lbu a5,-1(a0)
800020e8: 00158593 addi a1,a1,1
800020ec: fff5c703 lbu a4,-1(a1)
800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
800020f8: 40e78533 sub a0,a5,a4
800020fc: 00008067 ret
80002100: 00000793 li a5,0
80002104: ff5ff06f j 800020f8 <strcmp+0x18>
80002108 <memcmp>:
80002108: 00b567b3 or a5,a0,a1
8000210c: 0037f793 andi a5,a5,3
80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
80002114: ffc67693 andi a3,a2,-4
80002118: 00d506b3 add a3,a0,a3
8000211c: 00050813 mv a6,a0
80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
80002124: 00052703 lw a4,0(a0)
80002128: 0005a783 lw a5,0(a1)
8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
80002130: 0240006f j 80002154 <memcmp+0x4c>
80002134: 00052703 lw a4,0(a0)
80002138: 0005a783 lw a5,0(a1)
8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
80002140: 00450513 addi a0,a0,4
80002144: 00458593 addi a1,a1,4
80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
8000214c: 41050833 sub a6,a0,a6
80002150: 41060633 sub a2,a2,a6
80002154: 00c58633 add a2,a1,a2
80002158: 0140006f j 8000216c <memcmp+0x64>
8000215c: 00158593 addi a1,a1,1
80002160: fff54783 lbu a5,-1(a0)
80002164: fff5c703 lbu a4,-1(a1)
80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
8000216c: 00150513 addi a0,a0,1
80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
80002174: 00000513 li a0,0
80002178: 00008067 ret
8000217c: 40e78533 sub a0,a5,a4
80002180: 00008067 ret
80002184 <strcpy>:
80002184: 00050793 mv a5,a0
80002188: 00158593 addi a1,a1,1
8000218c: fff5c703 lbu a4,-1(a1)
80002190: 00178793 addi a5,a5,1
80002194: fee78fa3 sb a4,-1(a5)
80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
8000219c: 00008067 ret
800021a0 <atol>:
800021a0: 00054783 lbu a5,0(a0)
800021a4: 02000713 li a4,32
800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
800021ac: 00150513 addi a0,a0,1
800021b0: 00054783 lbu a5,0(a0)
800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
800021b8: fd578713 addi a4,a5,-43
800021bc: 0fd77713 andi a4,a4,253
800021c0: 04070263 beqz a4,80002204 <atol+0x64>
800021c4: 00054683 lbu a3,0(a0)
800021c8: 00050793 mv a5,a0
800021cc: 00000613 li a2,0
800021d0: 04068863 beqz a3,80002220 <atol+0x80>
800021d4: 00000513 li a0,0
800021d8: 00178793 addi a5,a5,1
800021dc: fd068593 addi a1,a3,-48
800021e0: 00251713 slli a4,a0,0x2
800021e4: 0007c683 lbu a3,0(a5)
800021e8: 00a70533 add a0,a4,a0
800021ec: 00151513 slli a0,a0,0x1
800021f0: 00a58533 add a0,a1,a0
800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
800021f8: 00060463 beqz a2,80002200 <atol+0x60>
800021fc: 40a00533 neg a0,a0
80002200: 00008067 ret
80002204: 00154683 lbu a3,1(a0)
80002208: fd378793 addi a5,a5,-45
8000220c: 0017b613 seqz a2,a5
80002210: 00150793 addi a5,a0,1
80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
80002218: 00000513 li a0,0
8000221c: fddff06f j 800021f8 <atol+0x58>
80002220: 00000513 li a0,0
80002224: 00008067 ret
80002228 <terminate>:
80002228: fffff697 auipc a3,0xfffff
8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
80002230: 0006a703 lw a4,0(a3)
80002234: 0046a783 lw a5,4(a3)
80002238: 00050813 mv a6,a0
8000223c: 41f55893 srai a7,a0,0x1f
80002240: 00f76733 or a4,a4,a5
80002244: 02070663 beqz a4,80002270 <terminate+0x48>
80002248: fffff617 auipc a2,0xfffff
8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
80002250: 00000713 li a4,0
80002254: 00e62023 sw a4,0(a2)
80002258: 00000793 li a5,0
8000225c: 00f62223 sw a5,4(a2)
80002260: 0006a703 lw a4,0(a3)
80002264: 0046a783 lw a5,4(a3)
80002268: 00f76733 or a4,a4,a5
8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
80002270: 0106a023 sw a6,0(a3)
80002274: 0116a223 sw a7,4(a3)
80002278: 0000006f j 80002278 <terminate+0x50>
8000227c <wtf>:
8000227c: ff010113 addi sp,sp,-16
80002280: 34900513 li a0,841
80002284: 00112623 sw ra,12(sp)
80002288: fa1ff0ef jal ra,80002228 <terminate>
8000228c <printhex>:
8000228c: fe010113 addi sp,sp,-32
80002290: 01b10793 addi a5,sp,27
80002294: 00b10e93 addi t4,sp,11
80002298: 00900e13 li t3,9
8000229c: 00f57693 andi a3,a0,15
800022a0: 01c59313 slli t1,a1,0x1c
800022a4: 00455513 srli a0,a0,0x4
800022a8: 05700613 li a2,87
800022ac: 0ff6f713 andi a4,a3,255
800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
800022b4: 03000613 li a2,48
800022b8: 00c70733 add a4,a4,a2
800022bc: 00e78023 sb a4,0(a5)
800022c0: fff78793 addi a5,a5,-1
800022c4: 00a36533 or a0,t1,a0
800022c8: 0045d593 srli a1,a1,0x4
800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
800022d0: 00c14583 lbu a1,12(sp)
800022d4: 00010e23 sb zero,28(sp)
800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
800022dc: 00c10513 addi a0,sp,12
800022e0: fffff697 auipc a3,0xfffff
800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
800022e8: fffff617 auipc a2,0xfffff
800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
800022f0: 0006a703 lw a4,0(a3)
800022f4: 0046a783 lw a5,4(a3)
800022f8: 00058813 mv a6,a1
800022fc: 00150513 addi a0,a0,1
80002300: 00f76733 or a4,a4,a5
80002304: 010108b7 lui a7,0x1010
80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
8000230c: 00000713 li a4,0
80002310: 00e62023 sw a4,0(a2)
80002314: 00000793 li a5,0
80002318: 00f62223 sw a5,4(a2)
8000231c: 0006a703 lw a4,0(a3)
80002320: 0046a783 lw a5,4(a3)
80002324: 00f76733 or a4,a4,a5
80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
8000232c: 00054583 lbu a1,0(a0)
80002330: 0106a023 sw a6,0(a3)
80002334: 0116a223 sw a7,4(a3)
80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
8000233c: 02010113 addi sp,sp,32
80002340: 00008067 ret
80002344 <handle_fault>:
80002344: ff010113 addi sp,sp,-16
80002348: fffff6b7 lui a3,0xfffff
8000234c: 00112623 sw ra,12(sp)
80002350: 00812423 sw s0,8(sp)
80002354: 00912223 sw s1,4(sp)
80002358: 00d50733 add a4,a0,a3
8000235c: 0003e7b7 lui a5,0x3e
80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
80002364: 00c55613 srli a2,a0,0xc
80002368: 40060e13 addi t3,a2,1024
8000236c: 00002317 auipc t1,0x2
80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
80002374: 002e1793 slli a5,t3,0x2
80002378: 00f307b3 add a5,t1,a5
8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
80002380: 00d57533 and a0,a0,a3
80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
80002388: 00004797 auipc a5,0x4
8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
80002390: 0007a583 lw a1,0(a5)
80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
80002398: 0045a783 lw a5,4(a1)
8000239c: 00004717 auipc a4,0x4
800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
800023a4: 00072703 lw a4,0(a4)
800023a8: 00004697 auipc a3,0x4
800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
800023b4: 0005a703 lw a4,0(a1)
800023b8: 002e1793 slli a5,t3,0x2
800023bc: 00f307b3 add a5,t1,a5
800023c0: 00c75713 srli a4,a4,0xc
800023c4: 00a71713 slli a4,a4,0xa
800023c8: 0df76e93 ori t4,a4,223
800023cc: 01f76693 ori a3,a4,31
800023d0: 01d7a023 sw t4,0(a5)
800023d4: 12050073 sfence.vma a0
800023d8: 00004717 auipc a4,0x4
800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
800023e0: 00361793 slli a5,a2,0x3
800023e4: 00f707b3 add a5,a4,a5
800023e8: 0007a703 lw a4,0(a5)
800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
800023f0: 0005a703 lw a4,0(a1)
800023f4: 00e7a023 sw a4,0(a5)
800023f8: 0045a703 lw a4,4(a1)
800023fc: 00e7a223 sw a4,4(a5)
80002400: 000407b7 lui a5,0x40
80002404: 1007a5f3 csrrs a1,sstatus,a5
80002408: ffc007b7 lui a5,0xffc00
8000240c: 00f507b3 add a5,a0,a5
80002410: 00001637 lui a2,0x1
80002414: 00050713 mv a4,a0
80002418: 00c78633 add a2,a5,a2
8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
80002420: 0047ae83 lw t4,4(a5)
80002424: 0087a883 lw a7,8(a5)
80002428: 00c7a803 lw a6,12(a5)
8000242c: 01e72023 sw t5,0(a4)
80002430: 01d72223 sw t4,4(a4)
80002434: 01172423 sw a7,8(a4)
80002438: 01072623 sw a6,12(a4)
8000243c: 01078793 addi a5,a5,16
80002440: 01070713 addi a4,a4,16
80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
80002448: 10059073 csrw sstatus,a1
8000244c: 002e1e13 slli t3,t3,0x2
80002450: 01c30333 add t1,t1,t3
80002454: 00d32023 sw a3,0(t1)
80002458: 12050073 sfence.vma a0
8000245c: 0000100f fence.i
80002460: 00c12083 lw ra,12(sp)
80002464: 00812403 lw s0,8(sp)
80002468: 00412483 lw s1,4(sp)
8000246c: 01010113 addi sp,sp,16
80002470: 00008067 ret
80002474: 04077693 andi a3,a4,64
80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
8000247c: 04076713 ori a4,a4,64
80002480: 00e7a023 sw a4,0(a5)
80002484: 12050073 sfence.vma a0
80002488: 00c12083 lw ra,12(sp)
8000248c: 00812403 lw s0,8(sp)
80002490: 00412483 lw s1,4(sp)
80002494: 01010113 addi sp,sp,16
80002498: 00008067 ret
8000249c: 08077693 andi a3,a4,128
800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
800024a4: 00f00693 li a3,15
800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
800024ac: 08076713 ori a4,a4,128
800024b0: 00e7a023 sw a4,0(a5)
800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
800024b8: 00004797 auipc a5,0x4
800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
800024c4: 04100513 li a0,65
800024c8: 00000597 auipc a1,0x0
800024cc: 79058593 addi a1,a1,1936 # 80002c58 <pass+0xc>
800024d0: fffff697 auipc a3,0xfffff
800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
800024d8: fffff617 auipc a2,0xfffff
800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
800024e0: 0006a703 lw a4,0(a3)
800024e4: 0046a783 lw a5,4(a3)
800024e8: 00050313 mv t1,a0
800024ec: 00158593 addi a1,a1,1
800024f0: 00f76733 or a4,a4,a5
800024f4: 010103b7 lui t2,0x1010
800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
800024fc: 00000793 li a5,0
80002500: 00f62023 sw a5,0(a2)
80002504: 00000813 li a6,0
80002508: 01062223 sw a6,4(a2)
8000250c: 0006a703 lw a4,0(a3)
80002510: 0046a783 lw a5,4(a3)
80002514: 00f76733 or a4,a4,a5
80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
8000251c: 0005c503 lbu a0,0(a1)
80002520: 0066a023 sw t1,0(a3)
80002524: 0076a223 sw t2,4(a3)
80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
8000252c: 00300513 li a0,3
80002530: cf9ff0ef jal ra,80002228 <terminate>
80002534: 04100513 li a0,65
80002538: 00000597 auipc a1,0x0
8000253c: 7ac58593 addi a1,a1,1964 # 80002ce4 <pass+0x98>
80002540: fffff697 auipc a3,0xfffff
80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
80002548: fffff617 auipc a2,0xfffff
8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
80002550: 0006a703 lw a4,0(a3)
80002554: 0046a783 lw a5,4(a3)
80002558: 00050f13 mv t5,a0
8000255c: 00158593 addi a1,a1,1
80002560: 00f76733 or a4,a4,a5
80002564: 01010fb7 lui t6,0x1010
80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
8000256c: 00000793 li a5,0
80002570: 00f62023 sw a5,0(a2)
80002574: 00000813 li a6,0
80002578: 01062223 sw a6,4(a2)
8000257c: 0006a703 lw a4,0(a3)
80002580: 0046a783 lw a5,4(a3)
80002584: 00f76733 or a4,a4,a5
80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
8000258c: 0005c503 lbu a0,0(a1)
80002590: 01e6a023 sw t5,0(a3)
80002594: 01f6a223 sw t6,4(a3)
80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
800025a0: 04100513 li a0,65
800025a4: 00000597 auipc a1,0x0
800025a8: 75858593 addi a1,a1,1880 # 80002cfc <pass+0xb0>
800025ac: fffff697 auipc a3,0xfffff
800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
800025b4: fffff617 auipc a2,0xfffff
800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
800025bc: 0006a703 lw a4,0(a3)
800025c0: 0046a783 lw a5,4(a3)
800025c4: 00050813 mv a6,a0
800025c8: 00158593 addi a1,a1,1
800025cc: 00f76733 or a4,a4,a5
800025d0: 010108b7 lui a7,0x1010
800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
800025d8: 00000713 li a4,0
800025dc: 00e62023 sw a4,0(a2)
800025e0: 00000793 li a5,0
800025e4: 00f62223 sw a5,4(a2)
800025e8: 0006a703 lw a4,0(a3)
800025ec: 0046a783 lw a5,4(a3)
800025f0: 00f76733 or a4,a4,a5
800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
800025f8: 0005c503 lbu a0,0(a1)
800025fc: 0106a023 sw a6,0(a3)
80002600: 0116a223 sw a7,4(a3)
80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
8000260c: 04100793 li a5,65
80002610: 00000597 auipc a1,0x0
80002614: 68c58593 addi a1,a1,1676 # 80002c9c <pass+0x50>
80002618: fffff697 auipc a3,0xfffff
8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
80002620: fffff617 auipc a2,0xfffff
80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
80002628: 0006a803 lw a6,0(a3)
8000262c: 0046a883 lw a7,4(a3)
80002630: 00078413 mv s0,a5
80002634: 00158593 addi a1,a1,1
80002638: 01186833 or a6,a6,a7
8000263c: 010104b7 lui s1,0x1010
80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
80002644: 00000793 li a5,0
80002648: 00f62023 sw a5,0(a2)
8000264c: 00000813 li a6,0
80002650: 01062223 sw a6,4(a2)
80002654: 0006a703 lw a4,0(a3)
80002658: 0046a783 lw a5,4(a3)
8000265c: 00f76733 or a4,a4,a5
80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
80002664: 0005c783 lbu a5,0(a1)
80002668: 0086a023 sw s0,0(a3)
8000266c: 0096a223 sw s1,4(a3)
80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
80002678 <handle_trap>:
80002678: 08c52583 lw a1,140(a0)
8000267c: fb010113 addi sp,sp,-80
80002680: 03412c23 sw s4,56(sp)
80002684: 04112623 sw ra,76(sp)
80002688: 04812423 sw s0,72(sp)
8000268c: 04912223 sw s1,68(sp)
80002690: 05212023 sw s2,64(sp)
80002694: 03312e23 sw s3,60(sp)
80002698: 03512a23 sw s5,52(sp)
8000269c: 03612823 sw s6,48(sp)
800026a0: 03712623 sw s7,44(sp)
800026a4: 03812423 sw s8,40(sp)
800026a8: 03912223 sw s9,36(sp)
800026ac: 03a12023 sw s10,32(sp)
800026b0: 01b12e23 sw s11,28(sp)
800026b4: 00800793 li a5,8
800026b8: 00050a13 mv s4,a0
800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
800026c0: 00200793 li a5,2
800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
800026c8: ff458793 addi a5,a1,-12
800026cc: 00100713 li a4,1
800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
800026d4: 00f00793 li a5,15
800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
800026dc: 088a2503 lw a0,136(s4)
800026e0: c65ff0ef jal ra,80002344 <handle_fault>
800026e4: 04812403 lw s0,72(sp)
800026e8: 04c12083 lw ra,76(sp)
800026ec: 04412483 lw s1,68(sp)
800026f0: 04012903 lw s2,64(sp)
800026f4: 03c12983 lw s3,60(sp)
800026f8: 03412a83 lw s5,52(sp)
800026fc: 03012b03 lw s6,48(sp)
80002700: 02c12b83 lw s7,44(sp)
80002704: 02812c03 lw s8,40(sp)
80002708: 02412c83 lw s9,36(sp)
8000270c: 02012d03 lw s10,32(sp)
80002710: 01c12d83 lw s11,28(sp)
80002714: 000a0513 mv a0,s4
80002718: 03812a03 lw s4,56(sp)
8000271c: 05010113 addi sp,sp,80
80002720: 91dfd06f j 8000003c <pop_tf>
80002724: 08452703 lw a4,132(a0)
80002728: 00377793 andi a5,a4,3
8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
80002734: 00301073 fssr zero
80002738: 00072703 lw a4,0(a4)
8000273c: 0007a783 lw a5,0(a5)
80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
80002744: 04100513 li a0,65
80002748: 00000597 auipc a1,0x0
8000274c: 67c58593 addi a1,a1,1660 # 80002dc4 <pass+0x178>
80002750: fffff697 auipc a3,0xfffff
80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
80002758: fffff617 auipc a2,0xfffff
8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
80002760: 0006a703 lw a4,0(a3)
80002764: 0046a783 lw a5,4(a3)
80002768: 00050813 mv a6,a0
8000276c: 00158593 addi a1,a1,1
80002770: 00f76733 or a4,a4,a5
80002774: 010108b7 lui a7,0x1010
80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
8000277c: 00000713 li a4,0
80002780: 00e62023 sw a4,0(a2)
80002784: 00000793 li a5,0
80002788: 00f62223 sw a5,4(a2)
8000278c: 0006a703 lw a4,0(a3)
80002790: 0046a783 lw a5,4(a3)
80002794: 00f76733 or a4,a4,a5
80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
8000279c: 0005c503 lbu a0,0(a1)
800027a0: 0106a023 sw a6,0(a3)
800027a4: 0116a223 sw a7,4(a3)
800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
800027ac: 00300513 li a0,3
800027b0: a79ff0ef jal ra,80002228 <terminate>
800027b4: 00100513 li a0,1
800027b8: a71ff0ef jal ra,80002228 <terminate>
800027bc: 00000597 auipc a1,0x0
800027c0: 5e458593 addi a1,a1,1508 # 80002da0 <pass+0x154>
800027c4: 04100613 li a2,65
800027c8: fffff697 auipc a3,0xfffff
800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
800027d0: fffff517 auipc a0,0xfffff
800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
800027d8: 0006a703 lw a4,0(a3)
800027dc: 0046a783 lw a5,4(a3)
800027e0: 00060e13 mv t3,a2
800027e4: 00158593 addi a1,a1,1
800027e8: 00f76733 or a4,a4,a5
800027ec: 01010eb7 lui t4,0x1010
800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
800027f4: 00000793 li a5,0
800027f8: 00f52023 sw a5,0(a0)
800027fc: 00000813 li a6,0
80002800: 01052223 sw a6,4(a0)
80002804: 0006a703 lw a4,0(a3)
80002808: 0046a783 lw a5,4(a3)
8000280c: 00f76733 or a4,a4,a5
80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
80002814: 0005c603 lbu a2,0(a1)
80002818: 01c6a023 sw t3,0(a3)
8000281c: 01d6a223 sw t4,4(a3)
80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
80002824: f89ff06f j 800027ac <handle_trap+0x134>
80002828: 02852783 lw a5,40(a0)
8000282c: 00001a37 lui s4,0x1
80002830: 00004b17 auipc s6,0x4
80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
80002838: 00f12223 sw a5,4(sp)
8000283c: 00001d17 auipc s10,0x1
80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
80002844: 00040cb7 lui s9,0x40
80002848: ffc00c37 lui s8,0xffc00
8000284c: 0003fab7 lui s5,0x3f
80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
80002854: 00f72223 sw a5,4(a4)
80002858: 00004717 auipc a4,0x4
8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
80002860: 000017b7 lui a5,0x1
80002864: 00fa0a33 add s4,s4,a5
80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
8000286c: 00ca5713 srli a4,s4,0xc
80002870: 00371b93 slli s7,a4,0x3
80002874: 017b0633 add a2,s6,s7
80002878: 00062603 lw a2,0(a2)
8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
80002880: 40070713 addi a4,a4,1024
80002884: 00271713 slli a4,a4,0x2
80002888: 00ed0733 add a4,s10,a4
8000288c: 00072703 lw a4,0(a4)
80002890: 04077613 andi a2,a4,64
80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
80002898: 00e12623 sw a4,12(sp)
8000289c: 100cadf3 csrrs s11,sstatus,s9
800028a0: 018a0833 add a6,s4,s8
800028a4: 00001637 lui a2,0x1
800028a8: 00080593 mv a1,a6
800028ac: 000a0513 mv a0,s4
800028b0: 01012423 sw a6,8(sp)
800028b4: 855ff0ef jal ra,80002108 <memcmp>
800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
800028bc: 00c12703 lw a4,12(sp)
800028c0: 00812803 lw a6,8(sp)
800028c4: 08077713 andi a4,a4,128
800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
800028cc: 00001637 lui a2,0x1
800028d0: 00080593 mv a1,a6
800028d4: 000a0513 mv a0,s4
800028d8: f28ff0ef jal ra,80002000 <memcpy>
800028dc: 017b07b3 add a5,s6,s7
800028e0: 100d9073 csrw sstatus,s11
800028e4: 00004717 auipc a4,0x4
800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
800028ec: 00072703 lw a4,0(a4)
800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
800028f8: 00004717 auipc a4,0x4
800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
80002900: 00004717 auipc a4,0x4
80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
8000290c: 04100593 li a1,65
80002910: 00000617 auipc a2,0x0
80002914: 4e060613 addi a2,a2,1248 # 80002df0 <pass+0x1a4>
80002918: ffffe697 auipc a3,0xffffe
8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
80002920: ffffe517 auipc a0,0xffffe
80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
80002928: 0006a703 lw a4,0(a3)
8000292c: 0046a783 lw a5,4(a3)
80002930: 00058313 mv t1,a1
80002934: 00160613 addi a2,a2,1
80002938: 00f76733 or a4,a4,a5
8000293c: 010103b7 lui t2,0x1010
80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
80002944: 00000793 li a5,0
80002948: 00f52023 sw a5,0(a0)
8000294c: 00000813 li a6,0
80002950: 01052223 sw a6,4(a0)
80002954: 0006a703 lw a4,0(a3)
80002958: 0046a783 lw a5,4(a3)
8000295c: 00f76733 or a4,a4,a5
80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
80002964: 00064583 lbu a1,0(a2)
80002968: 0066a023 sw t1,0(a3)
8000296c: 0076a223 sw t2,4(a3)
80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
80002974: e39ff06f j 800027ac <handle_trap+0x134>
80002978: 04100793 li a5,65
8000297c: 00000617 auipc a2,0x0
80002980: 3f060613 addi a2,a2,1008 # 80002d6c <pass+0x120>
80002984: ffffe697 auipc a3,0xffffe
80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
8000298c: ffffe597 auipc a1,0xffffe
80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
80002994: 00078413 mv s0,a5
80002998: 00160613 addi a2,a2,1
8000299c: 010104b7 lui s1,0x1010
800029a0: 0006a703 lw a4,0(a3)
800029a4: 0046a783 lw a5,4(a3)
800029a8: 00f76733 or a4,a4,a5
800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
800029b0: 00000793 li a5,0
800029b4: 00000813 li a6,0
800029b8: 00f5a023 sw a5,0(a1)
800029bc: 0105a223 sw a6,4(a1)
800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
800029c4: 04100793 li a5,65
800029c8: 00000617 auipc a2,0x0
800029cc: 37060613 addi a2,a2,880 # 80002d38 <pass+0xec>
800029d0: ffffe697 auipc a3,0xffffe
800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
800029d8: ffffe597 auipc a1,0xffffe
800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
800029e0: 00078913 mv s2,a5
800029e4: 00160613 addi a2,a2,1
800029e8: 010109b7 lui s3,0x1010
800029ec: 0006a703 lw a4,0(a3)
800029f0: 0046a783 lw a5,4(a3)
800029f4: 00f76733 or a4,a4,a5
800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
800029fc: 00000793 li a5,0
80002a00: 00000813 li a6,0
80002a04: 00f5a023 sw a5,0(a1)
80002a08: 0105a223 sw a6,4(a1)
80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
80002a10: 00412503 lw a0,4(sp)
80002a14: 815ff0ef jal ra,80002228 <terminate>
80002a18: 00064783 lbu a5,0(a2)
80002a1c: 0086a023 sw s0,0(a3)
80002a20: 0096a223 sw s1,4(a3)
80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
80002a28: d85ff06f j 800027ac <handle_trap+0x134>
80002a2c: 00064783 lbu a5,0(a2)
80002a30: 0126a023 sw s2,0(a3)
80002a34: 0136a223 sw s3,4(a3)
80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
80002a40 <vm_boot>:
80002a40: f14027f3 csrr a5,mhartid
80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
80002a48: 00002797 auipc a5,0x2
80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
80002a50: 00c7d793 srli a5,a5,0xc
80002a54: 00a79793 slli a5,a5,0xa
80002a58: 0017e793 ori a5,a5,1
80002a5c: 00001697 auipc a3,0x1
80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
80002a64: 200007b7 lui a5,0x20000
80002a68: 00001717 auipc a4,0x1
80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
80002a74: f6010113 addi sp,sp,-160
80002a78: 00002697 auipc a3,0x2
80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
80002a80: 00c75793 srli a5,a4,0xc
80002a84: 80000737 lui a4,0x80000
80002a88: 08112e23 sw ra,156(sp)
80002a8c: 08812c23 sw s0,152(sp)
80002a90: 00e7e7b3 or a5,a5,a4
80002a94: 18079073 csrw satp,a5
80002a98: 01f00793 li a5,31
80002a9c: fff00713 li a4,-1
80002aa0: 00000297 auipc t0,0x0
80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
80002aa8: 305292f3 csrrw t0,mtvec,t0
80002aac: 3b071073 csrw pmpaddr0,a4
80002ab0: 3a079073 csrw pmpcfg0,a5
80002ab4: 7fbfd797 auipc a5,0x7fbfd
80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
80002abc: 10579073 csrw stvec,a5
80002ac0: 340027f3 csrr a5,mscratch
80002ac4: 7fc00837 lui a6,0x7fc00
80002ac8: 010787b3 add a5,a5,a6
80002acc: 14079073 csrw sscratch,a5
80002ad0: 0000b7b7 lui a5,0xb
80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
80002ad8: 30279073 csrw medeleg,a5
80002adc: 0001e7b7 lui a5,0x1e
80002ae0: 30079073 csrw mstatus,a5
80002ae4: 30405073 csrwi mie,0
80002ae8: 7fc03797 auipc a5,0x7fc03
80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
80002af0: 00004717 auipc a4,0x4
80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
80002af8: 7fc03797 auipc a5,0x7fc03
80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
80002b00: 00004717 auipc a4,0x4
80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
80002b08: 000808b7 lui a7,0x80
80002b0c: 00003717 auipc a4,0x3
80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
80002b14: 00003317 auipc t1,0x3
80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
80002b1c: 02b00793 li a5,43
80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
80002b28: 0017d613 srli a2,a5,0x1
80002b2c: 011786b3 add a3,a5,a7
80002b30: 00f647b3 xor a5,a2,a5
80002b34: 010705b3 add a1,a4,a6
80002b38: 00c69693 slli a3,a3,0xc
80002b3c: 00579793 slli a5,a5,0x5
80002b40: 00d72023 sw a3,0(a4)
80002b44: 00b72223 sw a1,4(a4)
80002b48: 0207f793 andi a5,a5,32
80002b4c: 00870713 addi a4,a4,8
80002b50: 00f667b3 or a5,a2,a5
80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
80002b58: 00050413 mv s0,a0
80002b5c: 09000613 li a2,144
80002b60: 00000593 li a1,0
80002b64: 00010513 mv a0,sp
80002b68: 00003797 auipc a5,0x3
80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
80002b70: cecff0ef jal ra,8000205c <memset>
80002b74: 800007b7 lui a5,0x80000
80002b78: 00f40433 add s0,s0,a5
80002b7c: 00010513 mv a0,sp
80002b80: 08812223 sw s0,132(sp)
80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
80002b88: 09c12083 lw ra,156(sp)
80002b8c: 09812403 lw s0,152(sp)
80002b90: 0a010113 addi sp,sp,160
80002b94: 00008067 ret
80002b98: 042307b7 lui a5,0x4230
80002b9c: 00080637 lui a2,0x80
80002ba0: bbf78793 addi a5,a5,-1089 # 422fbbf <_start-0x7bdd0441>
80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
80002ba8: 800005b7 lui a1,0x80000
80002bac: 00c7f733 and a4,a5,a2
80002bb0: 0017f693 andi a3,a5,1
80002bb4: 00b70733 add a4,a4,a1
80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
80002bbc: 0007202f amoadd.w zero,zero,(a4)
80002bc0: 0017d793 srli a5,a5,0x1
80002bc4: 00c7f733 and a4,a5,a2
80002bc8: 0017f693 andi a3,a5,1
80002bcc: 00b70733 add a4,a4,a1
80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
80002bd4: 00072003 lw zero,0(a4)
80002bd8: 0017d793 srli a5,a5,0x1
80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
80002be0 <userstart>:
80002be0: 80000537 lui a0,0x80000
80002be4: 80000593 li a1,-2048
80002be8: 00000697 auipc a3,0x0
80002bec: 41868693 addi a3,a3,1048 # 80003000 <begin_signature>
80002bf0: 00a6a023 sw a0,0(a3)
80002bf4: 08b6a72f amoswap.w a4,a1,(a3)
80002bf8: 80000eb7 lui t4,0x80000
80002bfc: 00200193 li gp,2
80002c00: 03d71e63 bne a4,t4,80002c3c <fail>
80002c04 <test_3>:
80002c04: 0006a783 lw a5,0(a3)
80002c08: 80000e93 li t4,-2048
80002c0c: 00300193 li gp,3
80002c10: 03d79663 bne a5,t4,80002c3c <fail>
80002c14 <test_4>:
80002c14: 800005b7 lui a1,0x80000
80002c18: 08b6a72f amoswap.w a4,a1,(a3)
80002c1c: 80000e93 li t4,-2048
80002c20: 00400193 li gp,4
80002c24: 01d71c63 bne a4,t4,80002c3c <fail>
80002c28 <test_5>:
80002c28: 0006a783 lw a5,0(a3)
80002c2c: 80000eb7 lui t4,0x80000
80002c30: 00500193 li gp,5
80002c34: 01d79463 bne a5,t4,80002c3c <fail>
80002c38: 00301a63 bne zero,gp,80002c4c <pass>
80002c3c <fail>:
80002c3c: 00119513 slli a0,gp,0x1
80002c40: 00050063 beqz a0,80002c40 <fail+0x4>
80002c44: 00156513 ori a0,a0,1
80002c48: 00000073 ecall
80002c4c <pass>:
80002c4c: 00100513 li a0,1
80002c50: 00000073 ecall
80002c54: c0001073 unimp

BIN
Tests/isa/rv32ua-v-amoxor_w Normal file

Binary file not shown.

View File

@@ -0,0 +1,943 @@
rv32ua-v-amoxor_w: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 00c0006f j 8000000c <handle_reset>
80000004 <nmi_vector>:
80000004: 2780206f j 8000227c <wtf>
80000008 <trap_vector>:
80000008: 2740206f j 8000227c <wtf>
8000000c <handle_reset>:
8000000c: 00000297 auipc t0,0x0
80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
80000014: 30529073 csrw mtvec,t0
80000018: 00007117 auipc sp,0x7
8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
80000020: f14022f3 csrr t0,mhartid
80000024: 00c29293 slli t0,t0,0xc
80000028: 00510133 add sp,sp,t0
8000002c: 34011073 csrw mscratch,sp
80000030: 00003517 auipc a0,0x3
80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
80000038: 2090206f j 80002a40 <vm_boot>
8000003c <pop_tf>:
8000003c: 08452283 lw t0,132(a0)
80000040: 14129073 csrw sepc,t0
80000044: 00452083 lw ra,4(a0)
80000048: 00852103 lw sp,8(a0)
8000004c: 00c52183 lw gp,12(a0)
80000050: 01052203 lw tp,16(a0)
80000054: 01452283 lw t0,20(a0)
80000058: 01852303 lw t1,24(a0)
8000005c: 01c52383 lw t2,28(a0)
80000060: 02052403 lw s0,32(a0)
80000064: 02452483 lw s1,36(a0)
80000068: 02c52583 lw a1,44(a0)
8000006c: 03052603 lw a2,48(a0)
80000070: 03452683 lw a3,52(a0)
80000074: 03852703 lw a4,56(a0)
80000078: 03c52783 lw a5,60(a0)
8000007c: 04052803 lw a6,64(a0)
80000080: 04452883 lw a7,68(a0)
80000084: 04852903 lw s2,72(a0)
80000088: 04c52983 lw s3,76(a0)
8000008c: 05052a03 lw s4,80(a0)
80000090: 05452a83 lw s5,84(a0)
80000094: 05852b03 lw s6,88(a0)
80000098: 05c52b83 lw s7,92(a0)
8000009c: 06052c03 lw s8,96(a0)
800000a0: 06452c83 lw s9,100(a0)
800000a4: 06852d03 lw s10,104(a0)
800000a8: 06c52d83 lw s11,108(a0)
800000ac: 07052e03 lw t3,112(a0)
800000b0: 07452e83 lw t4,116(a0)
800000b4: 07852f03 lw t5,120(a0)
800000b8: 07c52f83 lw t6,124(a0)
800000bc: 02852503 lw a0,40(a0)
800000c0: 10200073 sret
800000c4 <trap_entry>:
800000c4: 14011173 csrrw sp,sscratch,sp
800000c8: 00112223 sw ra,4(sp)
800000cc: 00312623 sw gp,12(sp)
800000d0: 00412823 sw tp,16(sp)
800000d4: 00512a23 sw t0,20(sp)
800000d8: 00612c23 sw t1,24(sp)
800000dc: 00712e23 sw t2,28(sp)
800000e0: 02812023 sw s0,32(sp)
800000e4: 02912223 sw s1,36(sp)
800000e8: 02a12423 sw a0,40(sp)
800000ec: 02b12623 sw a1,44(sp)
800000f0: 02c12823 sw a2,48(sp)
800000f4: 02d12a23 sw a3,52(sp)
800000f8: 02e12c23 sw a4,56(sp)
800000fc: 02f12e23 sw a5,60(sp)
80000100: 05012023 sw a6,64(sp)
80000104: 05112223 sw a7,68(sp)
80000108: 05212423 sw s2,72(sp)
8000010c: 05312623 sw s3,76(sp)
80000110: 05412823 sw s4,80(sp)
80000114: 05512a23 sw s5,84(sp)
80000118: 05612c23 sw s6,88(sp)
8000011c: 05712e23 sw s7,92(sp)
80000120: 07812023 sw s8,96(sp)
80000124: 07912223 sw s9,100(sp)
80000128: 07a12423 sw s10,104(sp)
8000012c: 07b12623 sw s11,108(sp)
80000130: 07c12823 sw t3,112(sp)
80000134: 07d12a23 sw t4,116(sp)
80000138: 07e12c23 sw t5,120(sp)
8000013c: 07f12e23 sw t6,124(sp)
80000140: 140112f3 csrrw t0,sscratch,sp
80000144: 00512423 sw t0,8(sp)
80000148: 100022f3 csrr t0,sstatus
8000014c: 08512023 sw t0,128(sp)
80000150: 141022f3 csrr t0,sepc
80000154: 08512223 sw t0,132(sp)
80000158: 143022f3 csrr t0,sbadaddr
8000015c: 08512423 sw t0,136(sp)
80000160: 142022f3 csrr t0,scause
80000164: 08512623 sw t0,140(sp)
80000168: 00010513 mv a0,sp
8000016c: 50c0206f j 80002678 <handle_trap>
Disassembly of section .text:
80002000 <memcpy>:
80002000: 00c5e7b3 or a5,a1,a2
80002004: 00f567b3 or a5,a0,a5
80002008: 0037f793 andi a5,a5,3
8000200c: 00c506b3 add a3,a0,a2
80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
80002014: 00c58633 add a2,a1,a2
80002018: 00050793 mv a5,a0
8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
80002020: 00158593 addi a1,a1,1
80002024: fff5c703 lbu a4,-1(a1)
80002028: 00178793 addi a5,a5,1
8000202c: fee78fa3 sb a4,-1(a5)
80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
80002034: 00008067 ret
80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
8000203c: 00050793 mv a5,a0
80002040: 00458593 addi a1,a1,4
80002044: ffc5a703 lw a4,-4(a1)
80002048: 00478793 addi a5,a5,4
8000204c: fee7ae23 sw a4,-4(a5)
80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
80002054: 00008067 ret
80002058: 00008067 ret
8000205c <memset>:
8000205c: 00c567b3 or a5,a0,a2
80002060: 0037f793 andi a5,a5,3
80002064: 00c50633 add a2,a0,a2
80002068: 02078063 beqz a5,80002088 <memset+0x2c>
8000206c: 0ff5f593 andi a1,a1,255
80002070: 00050793 mv a5,a0
80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
80002078: 00178793 addi a5,a5,1
8000207c: feb78fa3 sb a1,-1(a5)
80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
80002084: 00008067 ret
80002088: 0ff5f593 andi a1,a1,255
8000208c: 00859793 slli a5,a1,0x8
80002090: 00b7e7b3 or a5,a5,a1
80002094: 01079593 slli a1,a5,0x10
80002098: 00f5e5b3 or a1,a1,a5
8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
800020a0: 00050793 mv a5,a0
800020a4: 00478793 addi a5,a5,4
800020a8: feb7ae23 sw a1,-4(a5)
800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
800020b0: 00008067 ret
800020b4: 00008067 ret
800020b8 <strlen>:
800020b8: 00054783 lbu a5,0(a0)
800020bc: 00050713 mv a4,a0
800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
800020c4: 00150513 addi a0,a0,1
800020c8: 00054783 lbu a5,0(a0)
800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
800020d0: 40e50533 sub a0,a0,a4
800020d4: 00008067 ret
800020d8: 00000513 li a0,0
800020dc: 00008067 ret
800020e0 <strcmp>:
800020e0: 00150513 addi a0,a0,1
800020e4: fff54783 lbu a5,-1(a0)
800020e8: 00158593 addi a1,a1,1
800020ec: fff5c703 lbu a4,-1(a1)
800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
800020f8: 40e78533 sub a0,a5,a4
800020fc: 00008067 ret
80002100: 00000793 li a5,0
80002104: ff5ff06f j 800020f8 <strcmp+0x18>
80002108 <memcmp>:
80002108: 00b567b3 or a5,a0,a1
8000210c: 0037f793 andi a5,a5,3
80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
80002114: ffc67693 andi a3,a2,-4
80002118: 00d506b3 add a3,a0,a3
8000211c: 00050813 mv a6,a0
80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
80002124: 00052703 lw a4,0(a0)
80002128: 0005a783 lw a5,0(a1)
8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
80002130: 0240006f j 80002154 <memcmp+0x4c>
80002134: 00052703 lw a4,0(a0)
80002138: 0005a783 lw a5,0(a1)
8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
80002140: 00450513 addi a0,a0,4
80002144: 00458593 addi a1,a1,4
80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
8000214c: 41050833 sub a6,a0,a6
80002150: 41060633 sub a2,a2,a6
80002154: 00c58633 add a2,a1,a2
80002158: 0140006f j 8000216c <memcmp+0x64>
8000215c: 00158593 addi a1,a1,1
80002160: fff54783 lbu a5,-1(a0)
80002164: fff5c703 lbu a4,-1(a1)
80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
8000216c: 00150513 addi a0,a0,1
80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
80002174: 00000513 li a0,0
80002178: 00008067 ret
8000217c: 40e78533 sub a0,a5,a4
80002180: 00008067 ret
80002184 <strcpy>:
80002184: 00050793 mv a5,a0
80002188: 00158593 addi a1,a1,1
8000218c: fff5c703 lbu a4,-1(a1)
80002190: 00178793 addi a5,a5,1
80002194: fee78fa3 sb a4,-1(a5)
80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
8000219c: 00008067 ret
800021a0 <atol>:
800021a0: 00054783 lbu a5,0(a0)
800021a4: 02000713 li a4,32
800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
800021ac: 00150513 addi a0,a0,1
800021b0: 00054783 lbu a5,0(a0)
800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
800021b8: fd578713 addi a4,a5,-43
800021bc: 0fd77713 andi a4,a4,253
800021c0: 04070263 beqz a4,80002204 <atol+0x64>
800021c4: 00054683 lbu a3,0(a0)
800021c8: 00050793 mv a5,a0
800021cc: 00000613 li a2,0
800021d0: 04068863 beqz a3,80002220 <atol+0x80>
800021d4: 00000513 li a0,0
800021d8: 00178793 addi a5,a5,1
800021dc: fd068593 addi a1,a3,-48
800021e0: 00251713 slli a4,a0,0x2
800021e4: 0007c683 lbu a3,0(a5)
800021e8: 00a70533 add a0,a4,a0
800021ec: 00151513 slli a0,a0,0x1
800021f0: 00a58533 add a0,a1,a0
800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
800021f8: 00060463 beqz a2,80002200 <atol+0x60>
800021fc: 40a00533 neg a0,a0
80002200: 00008067 ret
80002204: 00154683 lbu a3,1(a0)
80002208: fd378793 addi a5,a5,-45
8000220c: 0017b613 seqz a2,a5
80002210: 00150793 addi a5,a0,1
80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
80002218: 00000513 li a0,0
8000221c: fddff06f j 800021f8 <atol+0x58>
80002220: 00000513 li a0,0
80002224: 00008067 ret
80002228 <terminate>:
80002228: fffff697 auipc a3,0xfffff
8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
80002230: 0006a703 lw a4,0(a3)
80002234: 0046a783 lw a5,4(a3)
80002238: 00050813 mv a6,a0
8000223c: 41f55893 srai a7,a0,0x1f
80002240: 00f76733 or a4,a4,a5
80002244: 02070663 beqz a4,80002270 <terminate+0x48>
80002248: fffff617 auipc a2,0xfffff
8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
80002250: 00000713 li a4,0
80002254: 00e62023 sw a4,0(a2)
80002258: 00000793 li a5,0
8000225c: 00f62223 sw a5,4(a2)
80002260: 0006a703 lw a4,0(a3)
80002264: 0046a783 lw a5,4(a3)
80002268: 00f76733 or a4,a4,a5
8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
80002270: 0106a023 sw a6,0(a3)
80002274: 0116a223 sw a7,4(a3)
80002278: 0000006f j 80002278 <terminate+0x50>
8000227c <wtf>:
8000227c: ff010113 addi sp,sp,-16
80002280: 34900513 li a0,841
80002284: 00112623 sw ra,12(sp)
80002288: fa1ff0ef jal ra,80002228 <terminate>
8000228c <printhex>:
8000228c: fe010113 addi sp,sp,-32
80002290: 01b10793 addi a5,sp,27
80002294: 00b10e93 addi t4,sp,11
80002298: 00900e13 li t3,9
8000229c: 00f57693 andi a3,a0,15
800022a0: 01c59313 slli t1,a1,0x1c
800022a4: 00455513 srli a0,a0,0x4
800022a8: 05700613 li a2,87
800022ac: 0ff6f713 andi a4,a3,255
800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
800022b4: 03000613 li a2,48
800022b8: 00c70733 add a4,a4,a2
800022bc: 00e78023 sb a4,0(a5)
800022c0: fff78793 addi a5,a5,-1
800022c4: 00a36533 or a0,t1,a0
800022c8: 0045d593 srli a1,a1,0x4
800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
800022d0: 00c14583 lbu a1,12(sp)
800022d4: 00010e23 sb zero,28(sp)
800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
800022dc: 00c10513 addi a0,sp,12
800022e0: fffff697 auipc a3,0xfffff
800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
800022e8: fffff617 auipc a2,0xfffff
800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
800022f0: 0006a703 lw a4,0(a3)
800022f4: 0046a783 lw a5,4(a3)
800022f8: 00058813 mv a6,a1
800022fc: 00150513 addi a0,a0,1
80002300: 00f76733 or a4,a4,a5
80002304: 010108b7 lui a7,0x1010
80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
8000230c: 00000713 li a4,0
80002310: 00e62023 sw a4,0(a2)
80002314: 00000793 li a5,0
80002318: 00f62223 sw a5,4(a2)
8000231c: 0006a703 lw a4,0(a3)
80002320: 0046a783 lw a5,4(a3)
80002324: 00f76733 or a4,a4,a5
80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
8000232c: 00054583 lbu a1,0(a0)
80002330: 0106a023 sw a6,0(a3)
80002334: 0116a223 sw a7,4(a3)
80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
8000233c: 02010113 addi sp,sp,32
80002340: 00008067 ret
80002344 <handle_fault>:
80002344: ff010113 addi sp,sp,-16
80002348: fffff6b7 lui a3,0xfffff
8000234c: 00112623 sw ra,12(sp)
80002350: 00812423 sw s0,8(sp)
80002354: 00912223 sw s1,4(sp)
80002358: 00d50733 add a4,a0,a3
8000235c: 0003e7b7 lui a5,0x3e
80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
80002364: 00c55613 srli a2,a0,0xc
80002368: 40060e13 addi t3,a2,1024
8000236c: 00002317 auipc t1,0x2
80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
80002374: 002e1793 slli a5,t3,0x2
80002378: 00f307b3 add a5,t1,a5
8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
80002380: 00d57533 and a0,a0,a3
80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
80002388: 00004797 auipc a5,0x4
8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
80002390: 0007a583 lw a1,0(a5)
80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
80002398: 0045a783 lw a5,4(a1)
8000239c: 00004717 auipc a4,0x4
800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
800023a4: 00072703 lw a4,0(a4)
800023a8: 00004697 auipc a3,0x4
800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
800023b4: 0005a703 lw a4,0(a1)
800023b8: 002e1793 slli a5,t3,0x2
800023bc: 00f307b3 add a5,t1,a5
800023c0: 00c75713 srli a4,a4,0xc
800023c4: 00a71713 slli a4,a4,0xa
800023c8: 0df76e93 ori t4,a4,223
800023cc: 01f76693 ori a3,a4,31
800023d0: 01d7a023 sw t4,0(a5)
800023d4: 12050073 sfence.vma a0
800023d8: 00004717 auipc a4,0x4
800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
800023e0: 00361793 slli a5,a2,0x3
800023e4: 00f707b3 add a5,a4,a5
800023e8: 0007a703 lw a4,0(a5)
800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
800023f0: 0005a703 lw a4,0(a1)
800023f4: 00e7a023 sw a4,0(a5)
800023f8: 0045a703 lw a4,4(a1)
800023fc: 00e7a223 sw a4,4(a5)
80002400: 000407b7 lui a5,0x40
80002404: 1007a5f3 csrrs a1,sstatus,a5
80002408: ffc007b7 lui a5,0xffc00
8000240c: 00f507b3 add a5,a0,a5
80002410: 00001637 lui a2,0x1
80002414: 00050713 mv a4,a0
80002418: 00c78633 add a2,a5,a2
8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
80002420: 0047ae83 lw t4,4(a5)
80002424: 0087a883 lw a7,8(a5)
80002428: 00c7a803 lw a6,12(a5)
8000242c: 01e72023 sw t5,0(a4)
80002430: 01d72223 sw t4,4(a4)
80002434: 01172423 sw a7,8(a4)
80002438: 01072623 sw a6,12(a4)
8000243c: 01078793 addi a5,a5,16
80002440: 01070713 addi a4,a4,16
80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
80002448: 10059073 csrw sstatus,a1
8000244c: 002e1e13 slli t3,t3,0x2
80002450: 01c30333 add t1,t1,t3
80002454: 00d32023 sw a3,0(t1)
80002458: 12050073 sfence.vma a0
8000245c: 0000100f fence.i
80002460: 00c12083 lw ra,12(sp)
80002464: 00812403 lw s0,8(sp)
80002468: 00412483 lw s1,4(sp)
8000246c: 01010113 addi sp,sp,16
80002470: 00008067 ret
80002474: 04077693 andi a3,a4,64
80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
8000247c: 04076713 ori a4,a4,64
80002480: 00e7a023 sw a4,0(a5)
80002484: 12050073 sfence.vma a0
80002488: 00c12083 lw ra,12(sp)
8000248c: 00812403 lw s0,8(sp)
80002490: 00412483 lw s1,4(sp)
80002494: 01010113 addi sp,sp,16
80002498: 00008067 ret
8000249c: 08077693 andi a3,a4,128
800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
800024a4: 00f00693 li a3,15
800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
800024ac: 08076713 ori a4,a4,128
800024b0: 00e7a023 sw a4,0(a5)
800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
800024b8: 00004797 auipc a5,0x4
800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
800024c4: 04100513 li a0,65
800024c8: 00000597 auipc a1,0x0
800024cc: 7a058593 addi a1,a1,1952 # 80002c68 <pass+0xc>
800024d0: fffff697 auipc a3,0xfffff
800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
800024d8: fffff617 auipc a2,0xfffff
800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
800024e0: 0006a703 lw a4,0(a3)
800024e4: 0046a783 lw a5,4(a3)
800024e8: 00050313 mv t1,a0
800024ec: 00158593 addi a1,a1,1
800024f0: 00f76733 or a4,a4,a5
800024f4: 010103b7 lui t2,0x1010
800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
800024fc: 00000793 li a5,0
80002500: 00f62023 sw a5,0(a2)
80002504: 00000813 li a6,0
80002508: 01062223 sw a6,4(a2)
8000250c: 0006a703 lw a4,0(a3)
80002510: 0046a783 lw a5,4(a3)
80002514: 00f76733 or a4,a4,a5
80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
8000251c: 0005c503 lbu a0,0(a1)
80002520: 0066a023 sw t1,0(a3)
80002524: 0076a223 sw t2,4(a3)
80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
8000252c: 00300513 li a0,3
80002530: cf9ff0ef jal ra,80002228 <terminate>
80002534: 04100513 li a0,65
80002538: 00000597 auipc a1,0x0
8000253c: 7bc58593 addi a1,a1,1980 # 80002cf4 <pass+0x98>
80002540: fffff697 auipc a3,0xfffff
80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
80002548: fffff617 auipc a2,0xfffff
8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
80002550: 0006a703 lw a4,0(a3)
80002554: 0046a783 lw a5,4(a3)
80002558: 00050f13 mv t5,a0
8000255c: 00158593 addi a1,a1,1
80002560: 00f76733 or a4,a4,a5
80002564: 01010fb7 lui t6,0x1010
80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
8000256c: 00000793 li a5,0
80002570: 00f62023 sw a5,0(a2)
80002574: 00000813 li a6,0
80002578: 01062223 sw a6,4(a2)
8000257c: 0006a703 lw a4,0(a3)
80002580: 0046a783 lw a5,4(a3)
80002584: 00f76733 or a4,a4,a5
80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
8000258c: 0005c503 lbu a0,0(a1)
80002590: 01e6a023 sw t5,0(a3)
80002594: 01f6a223 sw t6,4(a3)
80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
800025a0: 04100513 li a0,65
800025a4: 00000597 auipc a1,0x0
800025a8: 76858593 addi a1,a1,1896 # 80002d0c <pass+0xb0>
800025ac: fffff697 auipc a3,0xfffff
800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
800025b4: fffff617 auipc a2,0xfffff
800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
800025bc: 0006a703 lw a4,0(a3)
800025c0: 0046a783 lw a5,4(a3)
800025c4: 00050813 mv a6,a0
800025c8: 00158593 addi a1,a1,1
800025cc: 00f76733 or a4,a4,a5
800025d0: 010108b7 lui a7,0x1010
800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
800025d8: 00000713 li a4,0
800025dc: 00e62023 sw a4,0(a2)
800025e0: 00000793 li a5,0
800025e4: 00f62223 sw a5,4(a2)
800025e8: 0006a703 lw a4,0(a3)
800025ec: 0046a783 lw a5,4(a3)
800025f0: 00f76733 or a4,a4,a5
800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
800025f8: 0005c503 lbu a0,0(a1)
800025fc: 0106a023 sw a6,0(a3)
80002600: 0116a223 sw a7,4(a3)
80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
8000260c: 04100793 li a5,65
80002610: 00000597 auipc a1,0x0
80002614: 69c58593 addi a1,a1,1692 # 80002cac <pass+0x50>
80002618: fffff697 auipc a3,0xfffff
8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
80002620: fffff617 auipc a2,0xfffff
80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
80002628: 0006a803 lw a6,0(a3)
8000262c: 0046a883 lw a7,4(a3)
80002630: 00078413 mv s0,a5
80002634: 00158593 addi a1,a1,1
80002638: 01186833 or a6,a6,a7
8000263c: 010104b7 lui s1,0x1010
80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
80002644: 00000793 li a5,0
80002648: 00f62023 sw a5,0(a2)
8000264c: 00000813 li a6,0
80002650: 01062223 sw a6,4(a2)
80002654: 0006a703 lw a4,0(a3)
80002658: 0046a783 lw a5,4(a3)
8000265c: 00f76733 or a4,a4,a5
80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
80002664: 0005c783 lbu a5,0(a1)
80002668: 0086a023 sw s0,0(a3)
8000266c: 0096a223 sw s1,4(a3)
80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
80002678 <handle_trap>:
80002678: 08c52583 lw a1,140(a0)
8000267c: fb010113 addi sp,sp,-80
80002680: 03412c23 sw s4,56(sp)
80002684: 04112623 sw ra,76(sp)
80002688: 04812423 sw s0,72(sp)
8000268c: 04912223 sw s1,68(sp)
80002690: 05212023 sw s2,64(sp)
80002694: 03312e23 sw s3,60(sp)
80002698: 03512a23 sw s5,52(sp)
8000269c: 03612823 sw s6,48(sp)
800026a0: 03712623 sw s7,44(sp)
800026a4: 03812423 sw s8,40(sp)
800026a8: 03912223 sw s9,36(sp)
800026ac: 03a12023 sw s10,32(sp)
800026b0: 01b12e23 sw s11,28(sp)
800026b4: 00800793 li a5,8
800026b8: 00050a13 mv s4,a0
800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
800026c0: 00200793 li a5,2
800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
800026c8: ff458793 addi a5,a1,-12
800026cc: 00100713 li a4,1
800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
800026d4: 00f00793 li a5,15
800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
800026dc: 088a2503 lw a0,136(s4)
800026e0: c65ff0ef jal ra,80002344 <handle_fault>
800026e4: 04812403 lw s0,72(sp)
800026e8: 04c12083 lw ra,76(sp)
800026ec: 04412483 lw s1,68(sp)
800026f0: 04012903 lw s2,64(sp)
800026f4: 03c12983 lw s3,60(sp)
800026f8: 03412a83 lw s5,52(sp)
800026fc: 03012b03 lw s6,48(sp)
80002700: 02c12b83 lw s7,44(sp)
80002704: 02812c03 lw s8,40(sp)
80002708: 02412c83 lw s9,36(sp)
8000270c: 02012d03 lw s10,32(sp)
80002710: 01c12d83 lw s11,28(sp)
80002714: 000a0513 mv a0,s4
80002718: 03812a03 lw s4,56(sp)
8000271c: 05010113 addi sp,sp,80
80002720: 91dfd06f j 8000003c <pop_tf>
80002724: 08452703 lw a4,132(a0)
80002728: 00377793 andi a5,a4,3
8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
80002734: 00301073 fssr zero
80002738: 00072703 lw a4,0(a4)
8000273c: 0007a783 lw a5,0(a5)
80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
80002744: 04100513 li a0,65
80002748: 00000597 auipc a1,0x0
8000274c: 68c58593 addi a1,a1,1676 # 80002dd4 <pass+0x178>
80002750: fffff697 auipc a3,0xfffff
80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
80002758: fffff617 auipc a2,0xfffff
8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
80002760: 0006a703 lw a4,0(a3)
80002764: 0046a783 lw a5,4(a3)
80002768: 00050813 mv a6,a0
8000276c: 00158593 addi a1,a1,1
80002770: 00f76733 or a4,a4,a5
80002774: 010108b7 lui a7,0x1010
80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
8000277c: 00000713 li a4,0
80002780: 00e62023 sw a4,0(a2)
80002784: 00000793 li a5,0
80002788: 00f62223 sw a5,4(a2)
8000278c: 0006a703 lw a4,0(a3)
80002790: 0046a783 lw a5,4(a3)
80002794: 00f76733 or a4,a4,a5
80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
8000279c: 0005c503 lbu a0,0(a1)
800027a0: 0106a023 sw a6,0(a3)
800027a4: 0116a223 sw a7,4(a3)
800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
800027ac: 00300513 li a0,3
800027b0: a79ff0ef jal ra,80002228 <terminate>
800027b4: 00100513 li a0,1
800027b8: a71ff0ef jal ra,80002228 <terminate>
800027bc: 00000597 auipc a1,0x0
800027c0: 5f458593 addi a1,a1,1524 # 80002db0 <pass+0x154>
800027c4: 04100613 li a2,65
800027c8: fffff697 auipc a3,0xfffff
800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
800027d0: fffff517 auipc a0,0xfffff
800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
800027d8: 0006a703 lw a4,0(a3)
800027dc: 0046a783 lw a5,4(a3)
800027e0: 00060e13 mv t3,a2
800027e4: 00158593 addi a1,a1,1
800027e8: 00f76733 or a4,a4,a5
800027ec: 01010eb7 lui t4,0x1010
800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
800027f4: 00000793 li a5,0
800027f8: 00f52023 sw a5,0(a0)
800027fc: 00000813 li a6,0
80002800: 01052223 sw a6,4(a0)
80002804: 0006a703 lw a4,0(a3)
80002808: 0046a783 lw a5,4(a3)
8000280c: 00f76733 or a4,a4,a5
80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
80002814: 0005c603 lbu a2,0(a1)
80002818: 01c6a023 sw t3,0(a3)
8000281c: 01d6a223 sw t4,4(a3)
80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
80002824: f89ff06f j 800027ac <handle_trap+0x134>
80002828: 02852783 lw a5,40(a0)
8000282c: 00001a37 lui s4,0x1
80002830: 00004b17 auipc s6,0x4
80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
80002838: 00f12223 sw a5,4(sp)
8000283c: 00001d17 auipc s10,0x1
80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
80002844: 00040cb7 lui s9,0x40
80002848: ffc00c37 lui s8,0xffc00
8000284c: 0003fab7 lui s5,0x3f
80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
80002854: 00f72223 sw a5,4(a4)
80002858: 00004717 auipc a4,0x4
8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
80002860: 000017b7 lui a5,0x1
80002864: 00fa0a33 add s4,s4,a5
80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
8000286c: 00ca5713 srli a4,s4,0xc
80002870: 00371b93 slli s7,a4,0x3
80002874: 017b0633 add a2,s6,s7
80002878: 00062603 lw a2,0(a2)
8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
80002880: 40070713 addi a4,a4,1024
80002884: 00271713 slli a4,a4,0x2
80002888: 00ed0733 add a4,s10,a4
8000288c: 00072703 lw a4,0(a4)
80002890: 04077613 andi a2,a4,64
80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
80002898: 00e12623 sw a4,12(sp)
8000289c: 100cadf3 csrrs s11,sstatus,s9
800028a0: 018a0833 add a6,s4,s8
800028a4: 00001637 lui a2,0x1
800028a8: 00080593 mv a1,a6
800028ac: 000a0513 mv a0,s4
800028b0: 01012423 sw a6,8(sp)
800028b4: 855ff0ef jal ra,80002108 <memcmp>
800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
800028bc: 00c12703 lw a4,12(sp)
800028c0: 00812803 lw a6,8(sp)
800028c4: 08077713 andi a4,a4,128
800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
800028cc: 00001637 lui a2,0x1
800028d0: 00080593 mv a1,a6
800028d4: 000a0513 mv a0,s4
800028d8: f28ff0ef jal ra,80002000 <memcpy>
800028dc: 017b07b3 add a5,s6,s7
800028e0: 100d9073 csrw sstatus,s11
800028e4: 00004717 auipc a4,0x4
800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
800028ec: 00072703 lw a4,0(a4)
800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
800028f8: 00004717 auipc a4,0x4
800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
80002900: 00004717 auipc a4,0x4
80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
8000290c: 04100593 li a1,65
80002910: 00000617 auipc a2,0x0
80002914: 4f060613 addi a2,a2,1264 # 80002e00 <pass+0x1a4>
80002918: ffffe697 auipc a3,0xffffe
8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
80002920: ffffe517 auipc a0,0xffffe
80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
80002928: 0006a703 lw a4,0(a3)
8000292c: 0046a783 lw a5,4(a3)
80002930: 00058313 mv t1,a1
80002934: 00160613 addi a2,a2,1
80002938: 00f76733 or a4,a4,a5
8000293c: 010103b7 lui t2,0x1010
80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
80002944: 00000793 li a5,0
80002948: 00f52023 sw a5,0(a0)
8000294c: 00000813 li a6,0
80002950: 01052223 sw a6,4(a0)
80002954: 0006a703 lw a4,0(a3)
80002958: 0046a783 lw a5,4(a3)
8000295c: 00f76733 or a4,a4,a5
80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
80002964: 00064583 lbu a1,0(a2)
80002968: 0066a023 sw t1,0(a3)
8000296c: 0076a223 sw t2,4(a3)
80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
80002974: e39ff06f j 800027ac <handle_trap+0x134>
80002978: 04100793 li a5,65
8000297c: 00000617 auipc a2,0x0
80002980: 40060613 addi a2,a2,1024 # 80002d7c <pass+0x120>
80002984: ffffe697 auipc a3,0xffffe
80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
8000298c: ffffe597 auipc a1,0xffffe
80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
80002994: 00078413 mv s0,a5
80002998: 00160613 addi a2,a2,1
8000299c: 010104b7 lui s1,0x1010
800029a0: 0006a703 lw a4,0(a3)
800029a4: 0046a783 lw a5,4(a3)
800029a8: 00f76733 or a4,a4,a5
800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
800029b0: 00000793 li a5,0
800029b4: 00000813 li a6,0
800029b8: 00f5a023 sw a5,0(a1)
800029bc: 0105a223 sw a6,4(a1)
800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
800029c4: 04100793 li a5,65
800029c8: 00000617 auipc a2,0x0
800029cc: 38060613 addi a2,a2,896 # 80002d48 <pass+0xec>
800029d0: ffffe697 auipc a3,0xffffe
800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
800029d8: ffffe597 auipc a1,0xffffe
800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
800029e0: 00078913 mv s2,a5
800029e4: 00160613 addi a2,a2,1
800029e8: 010109b7 lui s3,0x1010
800029ec: 0006a703 lw a4,0(a3)
800029f0: 0046a783 lw a5,4(a3)
800029f4: 00f76733 or a4,a4,a5
800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
800029fc: 00000793 li a5,0
80002a00: 00000813 li a6,0
80002a04: 00f5a023 sw a5,0(a1)
80002a08: 0105a223 sw a6,4(a1)
80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
80002a10: 00412503 lw a0,4(sp)
80002a14: 815ff0ef jal ra,80002228 <terminate>
80002a18: 00064783 lbu a5,0(a2)
80002a1c: 0086a023 sw s0,0(a3)
80002a20: 0096a223 sw s1,4(a3)
80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
80002a28: d85ff06f j 800027ac <handle_trap+0x134>
80002a2c: 00064783 lbu a5,0(a2)
80002a30: 0126a023 sw s2,0(a3)
80002a34: 0136a223 sw s3,4(a3)
80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
80002a40 <vm_boot>:
80002a40: f14027f3 csrr a5,mhartid
80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
80002a48: 00002797 auipc a5,0x2
80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
80002a50: 00c7d793 srli a5,a5,0xc
80002a54: 00a79793 slli a5,a5,0xa
80002a58: 0017e793 ori a5,a5,1
80002a5c: 00001697 auipc a3,0x1
80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
80002a64: 200007b7 lui a5,0x20000
80002a68: 00001717 auipc a4,0x1
80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
80002a74: f6010113 addi sp,sp,-160
80002a78: 00002697 auipc a3,0x2
80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
80002a80: 00c75793 srli a5,a4,0xc
80002a84: 80000737 lui a4,0x80000
80002a88: 08112e23 sw ra,156(sp)
80002a8c: 08812c23 sw s0,152(sp)
80002a90: 00e7e7b3 or a5,a5,a4
80002a94: 18079073 csrw satp,a5
80002a98: 01f00793 li a5,31
80002a9c: fff00713 li a4,-1
80002aa0: 00000297 auipc t0,0x0
80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
80002aa8: 305292f3 csrrw t0,mtvec,t0
80002aac: 3b071073 csrw pmpaddr0,a4
80002ab0: 3a079073 csrw pmpcfg0,a5
80002ab4: 7fbfd797 auipc a5,0x7fbfd
80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
80002abc: 10579073 csrw stvec,a5
80002ac0: 340027f3 csrr a5,mscratch
80002ac4: 7fc00837 lui a6,0x7fc00
80002ac8: 010787b3 add a5,a5,a6
80002acc: 14079073 csrw sscratch,a5
80002ad0: 0000b7b7 lui a5,0xb
80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
80002ad8: 30279073 csrw medeleg,a5
80002adc: 0001e7b7 lui a5,0x1e
80002ae0: 30079073 csrw mstatus,a5
80002ae4: 30405073 csrwi mie,0
80002ae8: 7fc03797 auipc a5,0x7fc03
80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
80002af0: 00004717 auipc a4,0x4
80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
80002af8: 7fc03797 auipc a5,0x7fc03
80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
80002b00: 00004717 auipc a4,0x4
80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
80002b08: 000808b7 lui a7,0x80
80002b0c: 00003717 auipc a4,0x3
80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
80002b14: 00003317 auipc t1,0x3
80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
80002b1c: 03500793 li a5,53
80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
80002b28: 0017d613 srli a2,a5,0x1
80002b2c: 011786b3 add a3,a5,a7
80002b30: 00f647b3 xor a5,a2,a5
80002b34: 010705b3 add a1,a4,a6
80002b38: 00c69693 slli a3,a3,0xc
80002b3c: 00579793 slli a5,a5,0x5
80002b40: 00d72023 sw a3,0(a4)
80002b44: 00b72223 sw a1,4(a4)
80002b48: 0207f793 andi a5,a5,32
80002b4c: 00870713 addi a4,a4,8
80002b50: 00f667b3 or a5,a2,a5
80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
80002b58: 00050413 mv s0,a0
80002b5c: 09000613 li a2,144
80002b60: 00000593 li a1,0
80002b64: 00010513 mv a0,sp
80002b68: 00003797 auipc a5,0x3
80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
80002b70: cecff0ef jal ra,8000205c <memset>
80002b74: 800007b7 lui a5,0x80000
80002b78: 00f40433 add s0,s0,a5
80002b7c: 00010513 mv a0,sp
80002b80: 08812223 sw s0,132(sp)
80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
80002b88: 09c12083 lw ra,156(sp)
80002b8c: 09812403 lw s0,152(sp)
80002b90: 0a010113 addi sp,sp,160
80002b94: 00008067 ret
80002b98: 0146a7b7 lui a5,0x146a
80002b9c: 00080637 lui a2,0x80
80002ba0: 03778793 addi a5,a5,55 # 146a037 <_start-0x7eb95fc9>
80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
80002ba8: 800005b7 lui a1,0x80000
80002bac: 00c7f733 and a4,a5,a2
80002bb0: 0017f693 andi a3,a5,1
80002bb4: 00b70733 add a4,a4,a1
80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
80002bbc: 0007202f amoadd.w zero,zero,(a4)
80002bc0: 0017d793 srli a5,a5,0x1
80002bc4: 00c7f733 and a4,a5,a2
80002bc8: 0017f693 andi a3,a5,1
80002bcc: 00b70733 add a4,a4,a1
80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
80002bd4: 00072003 lw zero,0(a4)
80002bd8: 0017d793 srli a5,a5,0x1
80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
80002be0 <userstart>:
80002be0: 80000537 lui a0,0x80000
80002be4: 80000593 li a1,-2048
80002be8: 00000697 auipc a3,0x0
80002bec: 41868693 addi a3,a3,1048 # 80003000 <begin_signature>
80002bf0: 00a6a023 sw a0,0(a3)
80002bf4: 20b6a72f amoxor.w a4,a1,(a3)
80002bf8: 80000eb7 lui t4,0x80000
80002bfc: 00200193 li gp,2
80002c00: 05d71663 bne a4,t4,80002c4c <fail>
80002c04 <test_3>:
80002c04: 0006a783 lw a5,0(a3)
80002c08: 80000eb7 lui t4,0x80000
80002c0c: 800e8e93 addi t4,t4,-2048 # 7ffff800 <_end+0xffff9408>
80002c10: 00300193 li gp,3
80002c14: 03d79c63 bne a5,t4,80002c4c <fail>
80002c18 <test_4>:
80002c18: c00005b7 lui a1,0xc0000
80002c1c: 00158593 addi a1,a1,1 # c0000001 <_end+0x3fff9c09>
80002c20: 20b6a72f amoxor.w a4,a1,(a3)
80002c24: 80000eb7 lui t4,0x80000
80002c28: 800e8e93 addi t4,t4,-2048 # 7ffff800 <_end+0xffff9408>
80002c2c: 00400193 li gp,4
80002c30: 01d71e63 bne a4,t4,80002c4c <fail>
80002c34 <test_5>:
80002c34: 0006a783 lw a5,0(a3)
80002c38: c0000eb7 lui t4,0xc0000
80002c3c: 801e8e93 addi t4,t4,-2047 # bffff801 <_end+0x3fff9409>
80002c40: 00500193 li gp,5
80002c44: 01d79463 bne a5,t4,80002c4c <fail>
80002c48: 00301a63 bne zero,gp,80002c5c <pass>
80002c4c <fail>:
80002c4c: 00119513 slli a0,gp,0x1
80002c50: 00050063 beqz a0,80002c50 <fail+0x4>
80002c54: 00156513 ori a0,a0,1
80002c58: 00000073 ecall
80002c5c <pass>:
80002c5c: 00100513 li a0,1
80002c60: 00000073 ecall
80002c64: c0001073 unimp

BIN
Tests/isa/rv32ua-v-lrsc Normal file

Binary file not shown.

View File

@@ -0,0 +1,979 @@
rv32ua-v-lrsc: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 00c0006f j 8000000c <handle_reset>
80000004 <nmi_vector>:
80000004: 2780206f j 8000227c <wtf>
80000008 <trap_vector>:
80000008: 2740206f j 8000227c <wtf>
8000000c <handle_reset>:
8000000c: 00000297 auipc t0,0x0
80000010: ffc28293 addi t0,t0,-4 # 80000008 <trap_vector>
80000014: 30529073 csrw mtvec,t0
80000018: 00007117 auipc sp,0x7
8000001c: 35010113 addi sp,sp,848 # 80007368 <_end+0xf70>
80000020: f14022f3 csrr t0,mhartid
80000024: 00c29293 slli t0,t0,0xc
80000028: 00510133 add sp,sp,t0
8000002c: 34011073 csrw mscratch,sp
80000030: 00003517 auipc a0,0x3
80000034: bb050513 addi a0,a0,-1104 # 80002be0 <userstart>
80000038: 2090206f j 80002a40 <vm_boot>
8000003c <pop_tf>:
8000003c: 08452283 lw t0,132(a0)
80000040: 14129073 csrw sepc,t0
80000044: 00452083 lw ra,4(a0)
80000048: 00852103 lw sp,8(a0)
8000004c: 00c52183 lw gp,12(a0)
80000050: 01052203 lw tp,16(a0)
80000054: 01452283 lw t0,20(a0)
80000058: 01852303 lw t1,24(a0)
8000005c: 01c52383 lw t2,28(a0)
80000060: 02052403 lw s0,32(a0)
80000064: 02452483 lw s1,36(a0)
80000068: 02c52583 lw a1,44(a0)
8000006c: 03052603 lw a2,48(a0)
80000070: 03452683 lw a3,52(a0)
80000074: 03852703 lw a4,56(a0)
80000078: 03c52783 lw a5,60(a0)
8000007c: 04052803 lw a6,64(a0)
80000080: 04452883 lw a7,68(a0)
80000084: 04852903 lw s2,72(a0)
80000088: 04c52983 lw s3,76(a0)
8000008c: 05052a03 lw s4,80(a0)
80000090: 05452a83 lw s5,84(a0)
80000094: 05852b03 lw s6,88(a0)
80000098: 05c52b83 lw s7,92(a0)
8000009c: 06052c03 lw s8,96(a0)
800000a0: 06452c83 lw s9,100(a0)
800000a4: 06852d03 lw s10,104(a0)
800000a8: 06c52d83 lw s11,108(a0)
800000ac: 07052e03 lw t3,112(a0)
800000b0: 07452e83 lw t4,116(a0)
800000b4: 07852f03 lw t5,120(a0)
800000b8: 07c52f83 lw t6,124(a0)
800000bc: 02852503 lw a0,40(a0)
800000c0: 10200073 sret
800000c4 <trap_entry>:
800000c4: 14011173 csrrw sp,sscratch,sp
800000c8: 00112223 sw ra,4(sp)
800000cc: 00312623 sw gp,12(sp)
800000d0: 00412823 sw tp,16(sp)
800000d4: 00512a23 sw t0,20(sp)
800000d8: 00612c23 sw t1,24(sp)
800000dc: 00712e23 sw t2,28(sp)
800000e0: 02812023 sw s0,32(sp)
800000e4: 02912223 sw s1,36(sp)
800000e8: 02a12423 sw a0,40(sp)
800000ec: 02b12623 sw a1,44(sp)
800000f0: 02c12823 sw a2,48(sp)
800000f4: 02d12a23 sw a3,52(sp)
800000f8: 02e12c23 sw a4,56(sp)
800000fc: 02f12e23 sw a5,60(sp)
80000100: 05012023 sw a6,64(sp)
80000104: 05112223 sw a7,68(sp)
80000108: 05212423 sw s2,72(sp)
8000010c: 05312623 sw s3,76(sp)
80000110: 05412823 sw s4,80(sp)
80000114: 05512a23 sw s5,84(sp)
80000118: 05612c23 sw s6,88(sp)
8000011c: 05712e23 sw s7,92(sp)
80000120: 07812023 sw s8,96(sp)
80000124: 07912223 sw s9,100(sp)
80000128: 07a12423 sw s10,104(sp)
8000012c: 07b12623 sw s11,108(sp)
80000130: 07c12823 sw t3,112(sp)
80000134: 07d12a23 sw t4,116(sp)
80000138: 07e12c23 sw t5,120(sp)
8000013c: 07f12e23 sw t6,124(sp)
80000140: 140112f3 csrrw t0,sscratch,sp
80000144: 00512423 sw t0,8(sp)
80000148: 100022f3 csrr t0,sstatus
8000014c: 08512023 sw t0,128(sp)
80000150: 141022f3 csrr t0,sepc
80000154: 08512223 sw t0,132(sp)
80000158: 143022f3 csrr t0,sbadaddr
8000015c: 08512423 sw t0,136(sp)
80000160: 142022f3 csrr t0,scause
80000164: 08512623 sw t0,140(sp)
80000168: 00010513 mv a0,sp
8000016c: 50c0206f j 80002678 <handle_trap>
Disassembly of section .text:
80002000 <memcpy>:
80002000: 00c5e7b3 or a5,a1,a2
80002004: 00f567b3 or a5,a0,a5
80002008: 0037f793 andi a5,a5,3
8000200c: 00c506b3 add a3,a0,a2
80002010: 02078463 beqz a5,80002038 <memcpy+0x38>
80002014: 00c58633 add a2,a1,a2
80002018: 00050793 mv a5,a0
8000201c: 02d57e63 bleu a3,a0,80002058 <memcpy+0x58>
80002020: 00158593 addi a1,a1,1
80002024: fff5c703 lbu a4,-1(a1)
80002028: 00178793 addi a5,a5,1
8000202c: fee78fa3 sb a4,-1(a5)
80002030: feb618e3 bne a2,a1,80002020 <memcpy+0x20>
80002034: 00008067 ret
80002038: fed57ee3 bleu a3,a0,80002034 <memcpy+0x34>
8000203c: 00050793 mv a5,a0
80002040: 00458593 addi a1,a1,4
80002044: ffc5a703 lw a4,-4(a1)
80002048: 00478793 addi a5,a5,4
8000204c: fee7ae23 sw a4,-4(a5)
80002050: fed7e8e3 bltu a5,a3,80002040 <memcpy+0x40>
80002054: 00008067 ret
80002058: 00008067 ret
8000205c <memset>:
8000205c: 00c567b3 or a5,a0,a2
80002060: 0037f793 andi a5,a5,3
80002064: 00c50633 add a2,a0,a2
80002068: 02078063 beqz a5,80002088 <memset+0x2c>
8000206c: 0ff5f593 andi a1,a1,255
80002070: 00050793 mv a5,a0
80002074: 04c57063 bleu a2,a0,800020b4 <memset+0x58>
80002078: 00178793 addi a5,a5,1
8000207c: feb78fa3 sb a1,-1(a5)
80002080: fef61ce3 bne a2,a5,80002078 <memset+0x1c>
80002084: 00008067 ret
80002088: 0ff5f593 andi a1,a1,255
8000208c: 00859793 slli a5,a1,0x8
80002090: 00b7e7b3 or a5,a5,a1
80002094: 01079593 slli a1,a5,0x10
80002098: 00f5e5b3 or a1,a1,a5
8000209c: fec574e3 bleu a2,a0,80002084 <memset+0x28>
800020a0: 00050793 mv a5,a0
800020a4: 00478793 addi a5,a5,4
800020a8: feb7ae23 sw a1,-4(a5)
800020ac: fec7ece3 bltu a5,a2,800020a4 <memset+0x48>
800020b0: 00008067 ret
800020b4: 00008067 ret
800020b8 <strlen>:
800020b8: 00054783 lbu a5,0(a0)
800020bc: 00050713 mv a4,a0
800020c0: 00078c63 beqz a5,800020d8 <strlen+0x20>
800020c4: 00150513 addi a0,a0,1
800020c8: 00054783 lbu a5,0(a0)
800020cc: fe079ce3 bnez a5,800020c4 <strlen+0xc>
800020d0: 40e50533 sub a0,a0,a4
800020d4: 00008067 ret
800020d8: 00000513 li a0,0
800020dc: 00008067 ret
800020e0 <strcmp>:
800020e0: 00150513 addi a0,a0,1
800020e4: fff54783 lbu a5,-1(a0)
800020e8: 00158593 addi a1,a1,1
800020ec: fff5c703 lbu a4,-1(a1)
800020f0: 00078863 beqz a5,80002100 <strcmp+0x20>
800020f4: fee786e3 beq a5,a4,800020e0 <strcmp>
800020f8: 40e78533 sub a0,a5,a4
800020fc: 00008067 ret
80002100: 00000793 li a5,0
80002104: ff5ff06f j 800020f8 <strcmp+0x18>
80002108 <memcmp>:
80002108: 00b567b3 or a5,a0,a1
8000210c: 0037f793 andi a5,a5,3
80002110: 04079263 bnez a5,80002154 <memcmp+0x4c>
80002114: ffc67693 andi a3,a2,-4
80002118: 00d506b3 add a3,a0,a3
8000211c: 00050813 mv a6,a0
80002120: 02d57a63 bleu a3,a0,80002154 <memcmp+0x4c>
80002124: 00052703 lw a4,0(a0)
80002128: 0005a783 lw a5,0(a1)
8000212c: 00f70a63 beq a4,a5,80002140 <memcmp+0x38>
80002130: 0240006f j 80002154 <memcmp+0x4c>
80002134: 00052703 lw a4,0(a0)
80002138: 0005a783 lw a5,0(a1)
8000213c: 00f71863 bne a4,a5,8000214c <memcmp+0x44>
80002140: 00450513 addi a0,a0,4
80002144: 00458593 addi a1,a1,4
80002148: fed566e3 bltu a0,a3,80002134 <memcmp+0x2c>
8000214c: 41050833 sub a6,a0,a6
80002150: 41060633 sub a2,a2,a6
80002154: 00c58633 add a2,a1,a2
80002158: 0140006f j 8000216c <memcmp+0x64>
8000215c: 00158593 addi a1,a1,1
80002160: fff54783 lbu a5,-1(a0)
80002164: fff5c703 lbu a4,-1(a1)
80002168: 00e79a63 bne a5,a4,8000217c <memcmp+0x74>
8000216c: 00150513 addi a0,a0,1
80002170: fec596e3 bne a1,a2,8000215c <memcmp+0x54>
80002174: 00000513 li a0,0
80002178: 00008067 ret
8000217c: 40e78533 sub a0,a5,a4
80002180: 00008067 ret
80002184 <strcpy>:
80002184: 00050793 mv a5,a0
80002188: 00158593 addi a1,a1,1
8000218c: fff5c703 lbu a4,-1(a1)
80002190: 00178793 addi a5,a5,1
80002194: fee78fa3 sb a4,-1(a5)
80002198: fe0718e3 bnez a4,80002188 <strcpy+0x4>
8000219c: 00008067 ret
800021a0 <atol>:
800021a0: 00054783 lbu a5,0(a0)
800021a4: 02000713 li a4,32
800021a8: 00e79863 bne a5,a4,800021b8 <atol+0x18>
800021ac: 00150513 addi a0,a0,1
800021b0: 00054783 lbu a5,0(a0)
800021b4: fee78ce3 beq a5,a4,800021ac <atol+0xc>
800021b8: fd578713 addi a4,a5,-43
800021bc: 0fd77713 andi a4,a4,253
800021c0: 04070263 beqz a4,80002204 <atol+0x64>
800021c4: 00054683 lbu a3,0(a0)
800021c8: 00050793 mv a5,a0
800021cc: 00000613 li a2,0
800021d0: 04068863 beqz a3,80002220 <atol+0x80>
800021d4: 00000513 li a0,0
800021d8: 00178793 addi a5,a5,1
800021dc: fd068593 addi a1,a3,-48
800021e0: 00251713 slli a4,a0,0x2
800021e4: 0007c683 lbu a3,0(a5)
800021e8: 00a70533 add a0,a4,a0
800021ec: 00151513 slli a0,a0,0x1
800021f0: 00a58533 add a0,a1,a0
800021f4: fe0692e3 bnez a3,800021d8 <atol+0x38>
800021f8: 00060463 beqz a2,80002200 <atol+0x60>
800021fc: 40a00533 neg a0,a0
80002200: 00008067 ret
80002204: 00154683 lbu a3,1(a0)
80002208: fd378793 addi a5,a5,-45
8000220c: 0017b613 seqz a2,a5
80002210: 00150793 addi a5,a0,1
80002214: fc0690e3 bnez a3,800021d4 <atol+0x34>
80002218: 00000513 li a0,0
8000221c: fddff06f j 800021f8 <atol+0x58>
80002220: 00000513 li a0,0
80002224: 00008067 ret
80002228 <terminate>:
80002228: fffff697 auipc a3,0xfffff
8000222c: dd868693 addi a3,a3,-552 # 80001000 <tohost>
80002230: 0006a703 lw a4,0(a3)
80002234: 0046a783 lw a5,4(a3)
80002238: 00050813 mv a6,a0
8000223c: 41f55893 srai a7,a0,0x1f
80002240: 00f76733 or a4,a4,a5
80002244: 02070663 beqz a4,80002270 <terminate+0x48>
80002248: fffff617 auipc a2,0xfffff
8000224c: df860613 addi a2,a2,-520 # 80001040 <fromhost>
80002250: 00000713 li a4,0
80002254: 00e62023 sw a4,0(a2)
80002258: 00000793 li a5,0
8000225c: 00f62223 sw a5,4(a2)
80002260: 0006a703 lw a4,0(a3)
80002264: 0046a783 lw a5,4(a3)
80002268: 00f76733 or a4,a4,a5
8000226c: fe0712e3 bnez a4,80002250 <terminate+0x28>
80002270: 0106a023 sw a6,0(a3)
80002274: 0116a223 sw a7,4(a3)
80002278: 0000006f j 80002278 <terminate+0x50>
8000227c <wtf>:
8000227c: ff010113 addi sp,sp,-16
80002280: 34900513 li a0,841
80002284: 00112623 sw ra,12(sp)
80002288: fa1ff0ef jal ra,80002228 <terminate>
8000228c <printhex>:
8000228c: fe010113 addi sp,sp,-32
80002290: 01b10793 addi a5,sp,27
80002294: 00b10e93 addi t4,sp,11
80002298: 00900e13 li t3,9
8000229c: 00f57693 andi a3,a0,15
800022a0: 01c59313 slli t1,a1,0x1c
800022a4: 00455513 srli a0,a0,0x4
800022a8: 05700613 li a2,87
800022ac: 0ff6f713 andi a4,a3,255
800022b0: 00de6463 bltu t3,a3,800022b8 <printhex+0x2c>
800022b4: 03000613 li a2,48
800022b8: 00c70733 add a4,a4,a2
800022bc: 00e78023 sb a4,0(a5)
800022c0: fff78793 addi a5,a5,-1
800022c4: 00a36533 or a0,t1,a0
800022c8: 0045d593 srli a1,a1,0x4
800022cc: fdd798e3 bne a5,t4,8000229c <printhex+0x10>
800022d0: 00c14583 lbu a1,12(sp)
800022d4: 00010e23 sb zero,28(sp)
800022d8: 06058263 beqz a1,8000233c <printhex+0xb0>
800022dc: 00c10513 addi a0,sp,12
800022e0: fffff697 auipc a3,0xfffff
800022e4: d2068693 addi a3,a3,-736 # 80001000 <tohost>
800022e8: fffff617 auipc a2,0xfffff
800022ec: d5860613 addi a2,a2,-680 # 80001040 <fromhost>
800022f0: 0006a703 lw a4,0(a3)
800022f4: 0046a783 lw a5,4(a3)
800022f8: 00058813 mv a6,a1
800022fc: 00150513 addi a0,a0,1
80002300: 00f76733 or a4,a4,a5
80002304: 010108b7 lui a7,0x1010
80002308: 02070263 beqz a4,8000232c <printhex+0xa0>
8000230c: 00000713 li a4,0
80002310: 00e62023 sw a4,0(a2)
80002314: 00000793 li a5,0
80002318: 00f62223 sw a5,4(a2)
8000231c: 0006a703 lw a4,0(a3)
80002320: 0046a783 lw a5,4(a3)
80002324: 00f76733 or a4,a4,a5
80002328: fe0712e3 bnez a4,8000230c <printhex+0x80>
8000232c: 00054583 lbu a1,0(a0)
80002330: 0106a023 sw a6,0(a3)
80002334: 0116a223 sw a7,4(a3)
80002338: fa059ce3 bnez a1,800022f0 <printhex+0x64>
8000233c: 02010113 addi sp,sp,32
80002340: 00008067 ret
80002344 <handle_fault>:
80002344: ff010113 addi sp,sp,-16
80002348: fffff6b7 lui a3,0xfffff
8000234c: 00112623 sw ra,12(sp)
80002350: 00812423 sw s0,8(sp)
80002354: 00912223 sw s1,4(sp)
80002358: 00d50733 add a4,a0,a3
8000235c: 0003e7b7 lui a5,0x3e
80002360: 16f77263 bleu a5,a4,800024c4 <handle_fault+0x180>
80002364: 00c55613 srli a2,a0,0xc
80002368: 40060e13 addi t3,a2,1024
8000236c: 00002317 auipc t1,0x2
80002370: c9430313 addi t1,t1,-876 # 80004000 <pt>
80002374: 002e1793 slli a5,t3,0x2
80002378: 00f307b3 add a5,t1,a5
8000237c: 0007a703 lw a4,0(a5) # 3e000 <_start-0x7ffc2000>
80002380: 00d57533 and a0,a0,a3
80002384: 0e071863 bnez a4,80002474 <handle_fault+0x130>
80002388: 00004797 auipc a5,0x4
8000238c: 06c78793 addi a5,a5,108 # 800063f4 <freelist_head>
80002390: 0007a583 lw a1,0(a5)
80002394: 1a058063 beqz a1,80002534 <handle_fault+0x1f0>
80002398: 0045a783 lw a5,4(a1)
8000239c: 00004717 auipc a4,0x4
800023a0: 05470713 addi a4,a4,84 # 800063f0 <freelist_tail>
800023a4: 00072703 lw a4,0(a4)
800023a8: 00004697 auipc a3,0x4
800023ac: 04f6a623 sw a5,76(a3) # 800063f4 <freelist_head>
800023b0: 10e78463 beq a5,a4,800024b8 <handle_fault+0x174>
800023b4: 0005a703 lw a4,0(a1)
800023b8: 002e1793 slli a5,t3,0x2
800023bc: 00f307b3 add a5,t1,a5
800023c0: 00c75713 srli a4,a4,0xc
800023c4: 00a71713 slli a4,a4,0xa
800023c8: 0df76e93 ori t4,a4,223
800023cc: 01f76693 ori a3,a4,31
800023d0: 01d7a023 sw t4,0(a5)
800023d4: 12050073 sfence.vma a0
800023d8: 00004717 auipc a4,0x4
800023dc: e2070713 addi a4,a4,-480 # 800061f8 <user_mapping>
800023e0: 00361793 slli a5,a2,0x3
800023e4: 00f707b3 add a5,a4,a5
800023e8: 0007a703 lw a4,0(a5)
800023ec: 1a071a63 bnez a4,800025a0 <handle_fault+0x25c>
800023f0: 0005a703 lw a4,0(a1)
800023f4: 00e7a023 sw a4,0(a5)
800023f8: 0045a703 lw a4,4(a1)
800023fc: 00e7a223 sw a4,4(a5)
80002400: 000407b7 lui a5,0x40
80002404: 1007a5f3 csrrs a1,sstatus,a5
80002408: ffc007b7 lui a5,0xffc00
8000240c: 00f507b3 add a5,a0,a5
80002410: 00001637 lui a2,0x1
80002414: 00050713 mv a4,a0
80002418: 00c78633 add a2,a5,a2
8000241c: 0007af03 lw t5,0(a5) # ffc00000 <_end+0x7fbf9c08>
80002420: 0047ae83 lw t4,4(a5)
80002424: 0087a883 lw a7,8(a5)
80002428: 00c7a803 lw a6,12(a5)
8000242c: 01e72023 sw t5,0(a4)
80002430: 01d72223 sw t4,4(a4)
80002434: 01172423 sw a7,8(a4)
80002438: 01072623 sw a6,12(a4)
8000243c: 01078793 addi a5,a5,16
80002440: 01070713 addi a4,a4,16
80002444: fcc79ce3 bne a5,a2,8000241c <handle_fault+0xd8>
80002448: 10059073 csrw sstatus,a1
8000244c: 002e1e13 slli t3,t3,0x2
80002450: 01c30333 add t1,t1,t3
80002454: 00d32023 sw a3,0(t1)
80002458: 12050073 sfence.vma a0
8000245c: 0000100f fence.i
80002460: 00c12083 lw ra,12(sp)
80002464: 00812403 lw s0,8(sp)
80002468: 00412483 lw s1,4(sp)
8000246c: 01010113 addi sp,sp,16
80002470: 00008067 ret
80002474: 04077693 andi a3,a4,64
80002478: 02069263 bnez a3,8000249c <handle_fault+0x158>
8000247c: 04076713 ori a4,a4,64
80002480: 00e7a023 sw a4,0(a5)
80002484: 12050073 sfence.vma a0
80002488: 00c12083 lw ra,12(sp)
8000248c: 00812403 lw s0,8(sp)
80002490: 00412483 lw s1,4(sp)
80002494: 01010113 addi sp,sp,16
80002498: 00008067 ret
8000249c: 08077693 andi a3,a4,128
800024a0: 16069663 bnez a3,8000260c <handle_fault+0x2c8>
800024a4: 00f00693 li a3,15
800024a8: 16d59263 bne a1,a3,8000260c <handle_fault+0x2c8>
800024ac: 08076713 ori a4,a4,128
800024b0: 00e7a023 sw a4,0(a5)
800024b4: fd1ff06f j 80002484 <handle_fault+0x140>
800024b8: 00004797 auipc a5,0x4
800024bc: f207ac23 sw zero,-200(a5) # 800063f0 <freelist_tail>
800024c0: ef5ff06f j 800023b4 <handle_fault+0x70>
800024c4: 04100513 li a0,65
800024c8: 00000597 auipc a1,0x0
800024cc: 7f858593 addi a1,a1,2040 # 80002cc0 <pass+0xc>
800024d0: fffff697 auipc a3,0xfffff
800024d4: b3068693 addi a3,a3,-1232 # 80001000 <tohost>
800024d8: fffff617 auipc a2,0xfffff
800024dc: b6860613 addi a2,a2,-1176 # 80001040 <fromhost>
800024e0: 0006a703 lw a4,0(a3)
800024e4: 0046a783 lw a5,4(a3)
800024e8: 00050313 mv t1,a0
800024ec: 00158593 addi a1,a1,1
800024f0: 00f76733 or a4,a4,a5
800024f4: 010103b7 lui t2,0x1010
800024f8: 02070263 beqz a4,8000251c <handle_fault+0x1d8>
800024fc: 00000793 li a5,0
80002500: 00f62023 sw a5,0(a2)
80002504: 00000813 li a6,0
80002508: 01062223 sw a6,4(a2)
8000250c: 0006a703 lw a4,0(a3)
80002510: 0046a783 lw a5,4(a3)
80002514: 00f76733 or a4,a4,a5
80002518: fe0712e3 bnez a4,800024fc <handle_fault+0x1b8>
8000251c: 0005c503 lbu a0,0(a1)
80002520: 0066a023 sw t1,0(a3)
80002524: 0076a223 sw t2,4(a3)
80002528: fa051ce3 bnez a0,800024e0 <handle_fault+0x19c>
8000252c: 00300513 li a0,3
80002530: cf9ff0ef jal ra,80002228 <terminate>
80002534: 04100513 li a0,65
80002538: 00001597 auipc a1,0x1
8000253c: 81458593 addi a1,a1,-2028 # 80002d4c <pass+0x98>
80002540: fffff697 auipc a3,0xfffff
80002544: ac068693 addi a3,a3,-1344 # 80001000 <tohost>
80002548: fffff617 auipc a2,0xfffff
8000254c: af860613 addi a2,a2,-1288 # 80001040 <fromhost>
80002550: 0006a703 lw a4,0(a3)
80002554: 0046a783 lw a5,4(a3)
80002558: 00050f13 mv t5,a0
8000255c: 00158593 addi a1,a1,1
80002560: 00f76733 or a4,a4,a5
80002564: 01010fb7 lui t6,0x1010
80002568: 02070263 beqz a4,8000258c <handle_fault+0x248>
8000256c: 00000793 li a5,0
80002570: 00f62023 sw a5,0(a2)
80002574: 00000813 li a6,0
80002578: 01062223 sw a6,4(a2)
8000257c: 0006a703 lw a4,0(a3)
80002580: 0046a783 lw a5,4(a3)
80002584: 00f76733 or a4,a4,a5
80002588: fe0712e3 bnez a4,8000256c <handle_fault+0x228>
8000258c: 0005c503 lbu a0,0(a1)
80002590: 01e6a023 sw t5,0(a3)
80002594: 01f6a223 sw t6,4(a3)
80002598: fa051ce3 bnez a0,80002550 <handle_fault+0x20c>
8000259c: f91ff06f j 8000252c <handle_fault+0x1e8>
800025a0: 04100513 li a0,65
800025a4: 00000597 auipc a1,0x0
800025a8: 7c058593 addi a1,a1,1984 # 80002d64 <pass+0xb0>
800025ac: fffff697 auipc a3,0xfffff
800025b0: a5468693 addi a3,a3,-1452 # 80001000 <tohost>
800025b4: fffff617 auipc a2,0xfffff
800025b8: a8c60613 addi a2,a2,-1396 # 80001040 <fromhost>
800025bc: 0006a703 lw a4,0(a3)
800025c0: 0046a783 lw a5,4(a3)
800025c4: 00050813 mv a6,a0
800025c8: 00158593 addi a1,a1,1
800025cc: 00f76733 or a4,a4,a5
800025d0: 010108b7 lui a7,0x1010
800025d4: 02070263 beqz a4,800025f8 <handle_fault+0x2b4>
800025d8: 00000713 li a4,0
800025dc: 00e62023 sw a4,0(a2)
800025e0: 00000793 li a5,0
800025e4: 00f62223 sw a5,4(a2)
800025e8: 0006a703 lw a4,0(a3)
800025ec: 0046a783 lw a5,4(a3)
800025f0: 00f76733 or a4,a4,a5
800025f4: fe0712e3 bnez a4,800025d8 <handle_fault+0x294>
800025f8: 0005c503 lbu a0,0(a1)
800025fc: 0106a023 sw a6,0(a3)
80002600: 0116a223 sw a7,4(a3)
80002604: fa051ce3 bnez a0,800025bc <handle_fault+0x278>
80002608: f25ff06f j 8000252c <handle_fault+0x1e8>
8000260c: 04100793 li a5,65
80002610: 00000597 auipc a1,0x0
80002614: 6f458593 addi a1,a1,1780 # 80002d04 <pass+0x50>
80002618: fffff697 auipc a3,0xfffff
8000261c: 9e868693 addi a3,a3,-1560 # 80001000 <tohost>
80002620: fffff617 auipc a2,0xfffff
80002624: a2060613 addi a2,a2,-1504 # 80001040 <fromhost>
80002628: 0006a803 lw a6,0(a3)
8000262c: 0046a883 lw a7,4(a3)
80002630: 00078413 mv s0,a5
80002634: 00158593 addi a1,a1,1
80002638: 01186833 or a6,a6,a7
8000263c: 010104b7 lui s1,0x1010
80002640: 02080263 beqz a6,80002664 <handle_fault+0x320>
80002644: 00000793 li a5,0
80002648: 00f62023 sw a5,0(a2)
8000264c: 00000813 li a6,0
80002650: 01062223 sw a6,4(a2)
80002654: 0006a703 lw a4,0(a3)
80002658: 0046a783 lw a5,4(a3)
8000265c: 00f76733 or a4,a4,a5
80002660: fe0712e3 bnez a4,80002644 <handle_fault+0x300>
80002664: 0005c783 lbu a5,0(a1)
80002668: 0086a023 sw s0,0(a3)
8000266c: 0096a223 sw s1,4(a3)
80002670: fa079ce3 bnez a5,80002628 <handle_fault+0x2e4>
80002674: eb9ff06f j 8000252c <handle_fault+0x1e8>
80002678 <handle_trap>:
80002678: 08c52583 lw a1,140(a0)
8000267c: fb010113 addi sp,sp,-80
80002680: 03412c23 sw s4,56(sp)
80002684: 04112623 sw ra,76(sp)
80002688: 04812423 sw s0,72(sp)
8000268c: 04912223 sw s1,68(sp)
80002690: 05212023 sw s2,64(sp)
80002694: 03312e23 sw s3,60(sp)
80002698: 03512a23 sw s5,52(sp)
8000269c: 03612823 sw s6,48(sp)
800026a0: 03712623 sw s7,44(sp)
800026a4: 03812423 sw s8,40(sp)
800026a8: 03912223 sw s9,36(sp)
800026ac: 03a12023 sw s10,32(sp)
800026b0: 01b12e23 sw s11,28(sp)
800026b4: 00800793 li a5,8
800026b8: 00050a13 mv s4,a0
800026bc: 16f58663 beq a1,a5,80002828 <handle_trap+0x1b0>
800026c0: 00200793 li a5,2
800026c4: 06f58063 beq a1,a5,80002724 <handle_trap+0xac>
800026c8: ff458793 addi a5,a1,-12
800026cc: 00100713 li a4,1
800026d0: 00f77663 bleu a5,a4,800026dc <handle_trap+0x64>
800026d4: 00f00793 li a5,15
800026d8: 22f59a63 bne a1,a5,8000290c <handle_trap+0x294>
800026dc: 088a2503 lw a0,136(s4)
800026e0: c65ff0ef jal ra,80002344 <handle_fault>
800026e4: 04812403 lw s0,72(sp)
800026e8: 04c12083 lw ra,76(sp)
800026ec: 04412483 lw s1,68(sp)
800026f0: 04012903 lw s2,64(sp)
800026f4: 03c12983 lw s3,60(sp)
800026f8: 03412a83 lw s5,52(sp)
800026fc: 03012b03 lw s6,48(sp)
80002700: 02c12b83 lw s7,44(sp)
80002704: 02812c03 lw s8,40(sp)
80002708: 02412c83 lw s9,36(sp)
8000270c: 02012d03 lw s10,32(sp)
80002710: 01c12d83 lw s11,28(sp)
80002714: 000a0513 mv a0,s4
80002718: 03812a03 lw s4,56(sp)
8000271c: 05010113 addi sp,sp,80
80002720: 91dfd06f j 8000003c <pop_tf>
80002724: 08452703 lw a4,132(a0)
80002728: 00377793 andi a5,a4,3
8000272c: 08079863 bnez a5,800027bc <handle_trap+0x144>
80002730: 008007ef jal a5,80002738 <handle_trap+0xc0>
80002734: 00301073 fssr zero
80002738: 00072703 lw a4,0(a4)
8000273c: 0007a783 lw a5,0(a5)
80002740: 06f70a63 beq a4,a5,800027b4 <handle_trap+0x13c>
80002744: 04100513 li a0,65
80002748: 00000597 auipc a1,0x0
8000274c: 6e458593 addi a1,a1,1764 # 80002e2c <pass+0x178>
80002750: fffff697 auipc a3,0xfffff
80002754: 8b068693 addi a3,a3,-1872 # 80001000 <tohost>
80002758: fffff617 auipc a2,0xfffff
8000275c: 8e860613 addi a2,a2,-1816 # 80001040 <fromhost>
80002760: 0006a703 lw a4,0(a3)
80002764: 0046a783 lw a5,4(a3)
80002768: 00050813 mv a6,a0
8000276c: 00158593 addi a1,a1,1
80002770: 00f76733 or a4,a4,a5
80002774: 010108b7 lui a7,0x1010
80002778: 02070263 beqz a4,8000279c <handle_trap+0x124>
8000277c: 00000713 li a4,0
80002780: 00e62023 sw a4,0(a2)
80002784: 00000793 li a5,0
80002788: 00f62223 sw a5,4(a2)
8000278c: 0006a703 lw a4,0(a3)
80002790: 0046a783 lw a5,4(a3)
80002794: 00f76733 or a4,a4,a5
80002798: fe0712e3 bnez a4,8000277c <handle_trap+0x104>
8000279c: 0005c503 lbu a0,0(a1)
800027a0: 0106a023 sw a6,0(a3)
800027a4: 0116a223 sw a7,4(a3)
800027a8: fa051ce3 bnez a0,80002760 <handle_trap+0xe8>
800027ac: 00300513 li a0,3
800027b0: a79ff0ef jal ra,80002228 <terminate>
800027b4: 00100513 li a0,1
800027b8: a71ff0ef jal ra,80002228 <terminate>
800027bc: 00000597 auipc a1,0x0
800027c0: 64c58593 addi a1,a1,1612 # 80002e08 <pass+0x154>
800027c4: 04100613 li a2,65
800027c8: fffff697 auipc a3,0xfffff
800027cc: 83868693 addi a3,a3,-1992 # 80001000 <tohost>
800027d0: fffff517 auipc a0,0xfffff
800027d4: 87050513 addi a0,a0,-1936 # 80001040 <fromhost>
800027d8: 0006a703 lw a4,0(a3)
800027dc: 0046a783 lw a5,4(a3)
800027e0: 00060e13 mv t3,a2
800027e4: 00158593 addi a1,a1,1
800027e8: 00f76733 or a4,a4,a5
800027ec: 01010eb7 lui t4,0x1010
800027f0: 02070263 beqz a4,80002814 <handle_trap+0x19c>
800027f4: 00000793 li a5,0
800027f8: 00f52023 sw a5,0(a0)
800027fc: 00000813 li a6,0
80002800: 01052223 sw a6,4(a0)
80002804: 0006a703 lw a4,0(a3)
80002808: 0046a783 lw a5,4(a3)
8000280c: 00f76733 or a4,a4,a5
80002810: fe0712e3 bnez a4,800027f4 <handle_trap+0x17c>
80002814: 0005c603 lbu a2,0(a1)
80002818: 01c6a023 sw t3,0(a3)
8000281c: 01d6a223 sw t4,4(a3)
80002820: fa061ce3 bnez a2,800027d8 <handle_trap+0x160>
80002824: f89ff06f j 800027ac <handle_trap+0x134>
80002828: 02852783 lw a5,40(a0)
8000282c: 00001a37 lui s4,0x1
80002830: 00004b17 auipc s6,0x4
80002834: 9c8b0b13 addi s6,s6,-1592 # 800061f8 <user_mapping>
80002838: 00f12223 sw a5,4(sp)
8000283c: 00001d17 auipc s10,0x1
80002840: 7c4d0d13 addi s10,s10,1988 # 80004000 <pt>
80002844: 00040cb7 lui s9,0x40
80002848: ffc00c37 lui s8,0xffc00
8000284c: 0003fab7 lui s5,0x3f
80002850: 01c0006f j 8000286c <handle_trap+0x1f4>
80002854: 00f72223 sw a5,4(a4)
80002858: 00004717 auipc a4,0x4
8000285c: b8f72c23 sw a5,-1128(a4) # 800063f0 <freelist_tail>
80002860: 000017b7 lui a5,0x1
80002864: 00fa0a33 add s4,s4,a5
80002868: 1b5a0463 beq s4,s5,80002a10 <handle_trap+0x398>
8000286c: 00ca5713 srli a4,s4,0xc
80002870: 00371b93 slli s7,a4,0x3
80002874: 017b0633 add a2,s6,s7
80002878: 00062603 lw a2,0(a2)
8000287c: fe0602e3 beqz a2,80002860 <handle_trap+0x1e8>
80002880: 40070713 addi a4,a4,1024
80002884: 00271713 slli a4,a4,0x2
80002888: 00ed0733 add a4,s10,a4
8000288c: 00072703 lw a4,0(a4)
80002890: 04077613 andi a2,a4,64
80002894: 12060863 beqz a2,800029c4 <handle_trap+0x34c>
80002898: 00e12623 sw a4,12(sp)
8000289c: 100cadf3 csrrs s11,sstatus,s9
800028a0: 018a0833 add a6,s4,s8
800028a4: 00001637 lui a2,0x1
800028a8: 00080593 mv a1,a6
800028ac: 000a0513 mv a0,s4
800028b0: 01012423 sw a6,8(sp)
800028b4: 855ff0ef jal ra,80002108 <memcmp>
800028b8: 02050263 beqz a0,800028dc <handle_trap+0x264>
800028bc: 00c12703 lw a4,12(sp)
800028c0: 00812803 lw a6,8(sp)
800028c4: 08077713 andi a4,a4,128
800028c8: 0a070863 beqz a4,80002978 <handle_trap+0x300>
800028cc: 00001637 lui a2,0x1
800028d0: 00080593 mv a1,a6
800028d4: 000a0513 mv a0,s4
800028d8: f28ff0ef jal ra,80002000 <memcpy>
800028dc: 017b07b3 add a5,s6,s7
800028e0: 100d9073 csrw sstatus,s11
800028e4: 00004717 auipc a4,0x4
800028e8: b0c70713 addi a4,a4,-1268 # 800063f0 <freelist_tail>
800028ec: 00072703 lw a4,0(a4)
800028f0: 0007a023 sw zero,0(a5) # 1000 <_start-0x7ffff000>
800028f4: f60710e3 bnez a4,80002854 <handle_trap+0x1dc>
800028f8: 00004717 auipc a4,0x4
800028fc: aef72c23 sw a5,-1288(a4) # 800063f0 <freelist_tail>
80002900: 00004717 auipc a4,0x4
80002904: aef72a23 sw a5,-1292(a4) # 800063f4 <freelist_head>
80002908: f59ff06f j 80002860 <handle_trap+0x1e8>
8000290c: 04100593 li a1,65
80002910: 00000617 auipc a2,0x0
80002914: 54860613 addi a2,a2,1352 # 80002e58 <pass+0x1a4>
80002918: ffffe697 auipc a3,0xffffe
8000291c: 6e868693 addi a3,a3,1768 # 80001000 <tohost>
80002920: ffffe517 auipc a0,0xffffe
80002924: 72050513 addi a0,a0,1824 # 80001040 <fromhost>
80002928: 0006a703 lw a4,0(a3)
8000292c: 0046a783 lw a5,4(a3)
80002930: 00058313 mv t1,a1
80002934: 00160613 addi a2,a2,1
80002938: 00f76733 or a4,a4,a5
8000293c: 010103b7 lui t2,0x1010
80002940: 02070263 beqz a4,80002964 <handle_trap+0x2ec>
80002944: 00000793 li a5,0
80002948: 00f52023 sw a5,0(a0)
8000294c: 00000813 li a6,0
80002950: 01052223 sw a6,4(a0)
80002954: 0006a703 lw a4,0(a3)
80002958: 0046a783 lw a5,4(a3)
8000295c: 00f76733 or a4,a4,a5
80002960: fe0712e3 bnez a4,80002944 <handle_trap+0x2cc>
80002964: 00064583 lbu a1,0(a2)
80002968: 0066a023 sw t1,0(a3)
8000296c: 0076a223 sw t2,4(a3)
80002970: fa059ce3 bnez a1,80002928 <handle_trap+0x2b0>
80002974: e39ff06f j 800027ac <handle_trap+0x134>
80002978: 04100793 li a5,65
8000297c: 00000617 auipc a2,0x0
80002980: 45860613 addi a2,a2,1112 # 80002dd4 <pass+0x120>
80002984: ffffe697 auipc a3,0xffffe
80002988: 67c68693 addi a3,a3,1660 # 80001000 <tohost>
8000298c: ffffe597 auipc a1,0xffffe
80002990: 6b458593 addi a1,a1,1716 # 80001040 <fromhost>
80002994: 00078413 mv s0,a5
80002998: 00160613 addi a2,a2,1
8000299c: 010104b7 lui s1,0x1010
800029a0: 0006a703 lw a4,0(a3)
800029a4: 0046a783 lw a5,4(a3)
800029a8: 00f76733 or a4,a4,a5
800029ac: 06070663 beqz a4,80002a18 <handle_trap+0x3a0>
800029b0: 00000793 li a5,0
800029b4: 00000813 li a6,0
800029b8: 00f5a023 sw a5,0(a1)
800029bc: 0105a223 sw a6,4(a1)
800029c0: fe1ff06f j 800029a0 <handle_trap+0x328>
800029c4: 04100793 li a5,65
800029c8: 00000617 auipc a2,0x0
800029cc: 3d860613 addi a2,a2,984 # 80002da0 <pass+0xec>
800029d0: ffffe697 auipc a3,0xffffe
800029d4: 63068693 addi a3,a3,1584 # 80001000 <tohost>
800029d8: ffffe597 auipc a1,0xffffe
800029dc: 66858593 addi a1,a1,1640 # 80001040 <fromhost>
800029e0: 00078913 mv s2,a5
800029e4: 00160613 addi a2,a2,1
800029e8: 010109b7 lui s3,0x1010
800029ec: 0006a703 lw a4,0(a3)
800029f0: 0046a783 lw a5,4(a3)
800029f4: 00f76733 or a4,a4,a5
800029f8: 02070a63 beqz a4,80002a2c <handle_trap+0x3b4>
800029fc: 00000793 li a5,0
80002a00: 00000813 li a6,0
80002a04: 00f5a023 sw a5,0(a1)
80002a08: 0105a223 sw a6,4(a1)
80002a0c: fe1ff06f j 800029ec <handle_trap+0x374>
80002a10: 00412503 lw a0,4(sp)
80002a14: 815ff0ef jal ra,80002228 <terminate>
80002a18: 00064783 lbu a5,0(a2)
80002a1c: 0086a023 sw s0,0(a3)
80002a20: 0096a223 sw s1,4(a3)
80002a24: f60798e3 bnez a5,80002994 <handle_trap+0x31c>
80002a28: d85ff06f j 800027ac <handle_trap+0x134>
80002a2c: 00064783 lbu a5,0(a2)
80002a30: 0126a023 sw s2,0(a3)
80002a34: 0136a223 sw s3,4(a3)
80002a38: fa0794e3 bnez a5,800029e0 <handle_trap+0x368>
80002a3c: d71ff06f j 800027ac <handle_trap+0x134>
80002a40 <vm_boot>:
80002a40: f14027f3 csrr a5,mhartid
80002a44: 14079a63 bnez a5,80002b98 <vm_boot+0x158>
80002a48: 00002797 auipc a5,0x2
80002a4c: 5b878793 addi a5,a5,1464 # 80005000 <pt+0x1000>
80002a50: 00c7d793 srli a5,a5,0xc
80002a54: 00a79793 slli a5,a5,0xa
80002a58: 0017e793 ori a5,a5,1
80002a5c: 00001697 auipc a3,0x1
80002a60: 5af6a223 sw a5,1444(a3) # 80004000 <pt>
80002a64: 200007b7 lui a5,0x20000
80002a68: 00001717 auipc a4,0x1
80002a6c: 59870713 addi a4,a4,1432 # 80004000 <pt>
80002a70: 0cf78793 addi a5,a5,207 # 200000cf <_start-0x5fffff31>
80002a74: f6010113 addi sp,sp,-160
80002a78: 00002697 auipc a3,0x2
80002a7c: 58f6a223 sw a5,1412(a3) # 80004ffc <pt+0xffc>
80002a80: 00c75793 srli a5,a4,0xc
80002a84: 80000737 lui a4,0x80000
80002a88: 08112e23 sw ra,156(sp)
80002a8c: 08812c23 sw s0,152(sp)
80002a90: 00e7e7b3 or a5,a5,a4
80002a94: 18079073 csrw satp,a5
80002a98: 01f00793 li a5,31
80002a9c: fff00713 li a4,-1
80002aa0: 00000297 auipc t0,0x0
80002aa4: 01428293 addi t0,t0,20 # 80002ab4 <vm_boot+0x74>
80002aa8: 305292f3 csrrw t0,mtvec,t0
80002aac: 3b071073 csrw pmpaddr0,a4
80002ab0: 3a079073 csrw pmpcfg0,a5
80002ab4: 7fbfd797 auipc a5,0x7fbfd
80002ab8: 61078793 addi a5,a5,1552 # ffc000c4 <_end+0x7fbf9ccc>
80002abc: 10579073 csrw stvec,a5
80002ac0: 340027f3 csrr a5,mscratch
80002ac4: 7fc00837 lui a6,0x7fc00
80002ac8: 010787b3 add a5,a5,a6
80002acc: 14079073 csrw sscratch,a5
80002ad0: 0000b7b7 lui a5,0xb
80002ad4: 10078793 addi a5,a5,256 # b100 <_start-0x7fff4f00>
80002ad8: 30279073 csrw medeleg,a5
80002adc: 0001e7b7 lui a5,0x1e
80002ae0: 30079073 csrw mstatus,a5
80002ae4: 30405073 csrwi mie,0
80002ae8: 7fc03797 auipc a5,0x7fc03
80002aec: 51878793 addi a5,a5,1304 # ffc06000 <_end+0x7fbffc08>
80002af0: 00004717 auipc a4,0x4
80002af4: 90f72223 sw a5,-1788(a4) # 800063f4 <freelist_head>
80002af8: 7fc03797 auipc a5,0x7fc03
80002afc: 6f878793 addi a5,a5,1784 # ffc061f0 <_end+0x7fbffdf8>
80002b00: 00004717 auipc a4,0x4
80002b04: 8ef72823 sw a5,-1808(a4) # 800063f0 <freelist_tail>
80002b08: 000808b7 lui a7,0x80
80002b0c: 00003717 auipc a4,0x3
80002b10: 4f470713 addi a4,a4,1268 # 80006000 <freelist_nodes>
80002b14: 00003317 auipc t1,0x3
80002b18: 6e430313 addi t1,t1,1764 # 800061f8 <user_mapping>
80002b1c: 00500793 li a5,5
80002b20: 03f88893 addi a7,a7,63 # 8003f <_start-0x7ff7ffc1>
80002b24: 00880813 addi a6,a6,8 # 7fc00008 <_start-0x3ffff8>
80002b28: 0017d613 srli a2,a5,0x1
80002b2c: 011786b3 add a3,a5,a7
80002b30: 00f647b3 xor a5,a2,a5
80002b34: 010705b3 add a1,a4,a6
80002b38: 00c69693 slli a3,a3,0xc
80002b3c: 00579793 slli a5,a5,0x5
80002b40: 00d72023 sw a3,0(a4)
80002b44: 00b72223 sw a1,4(a4)
80002b48: 0207f793 andi a5,a5,32
80002b4c: 00870713 addi a4,a4,8
80002b50: 00f667b3 or a5,a2,a5
80002b54: fce31ae3 bne t1,a4,80002b28 <vm_boot+0xe8>
80002b58: 00050413 mv s0,a0
80002b5c: 09000613 li a2,144
80002b60: 00000593 li a1,0
80002b64: 00010513 mv a0,sp
80002b68: 00003797 auipc a5,0x3
80002b6c: 6807a623 sw zero,1676(a5) # 800061f4 <freelist_nodes+0x1f4>
80002b70: cecff0ef jal ra,8000205c <memset>
80002b74: 800007b7 lui a5,0x80000
80002b78: 00f40433 add s0,s0,a5
80002b7c: 00010513 mv a0,sp
80002b80: 08812223 sw s0,132(sp)
80002b84: cb8fd0ef jal ra,8000003c <pop_tf>
80002b88: 09c12083 lw ra,156(sp)
80002b8c: 09812403 lw s0,152(sp)
80002b90: 0a010113 addi sp,sp,160
80002b94: 00008067 ret
80002b98: 01a297b7 lui a5,0x1a29
80002b9c: 00080637 lui a2,0x80
80002ba0: cbe78793 addi a5,a5,-834 # 1a28cbe <_start-0x7e5d7342>
80002ba4: ffc60613 addi a2,a2,-4 # 7fffc <_start-0x7ff80004>
80002ba8: 800005b7 lui a1,0x80000
80002bac: 00c7f733 and a4,a5,a2
80002bb0: 0017f693 andi a3,a5,1
80002bb4: 00b70733 add a4,a4,a1
80002bb8: 00068e63 beqz a3,80002bd4 <vm_boot+0x194>
80002bbc: 0007202f amoadd.w zero,zero,(a4)
80002bc0: 0017d793 srli a5,a5,0x1
80002bc4: 00c7f733 and a4,a5,a2
80002bc8: 0017f693 andi a3,a5,1
80002bcc: 00b70733 add a4,a4,a1
80002bd0: fe0696e3 bnez a3,80002bbc <vm_boot+0x17c>
80002bd4: 00072003 lw zero,0(a4)
80002bd8: 0017d793 srli a5,a5,0x1
80002bdc: fe9ff06f j 80002bc4 <vm_boot+0x184>
80002be0 <userstart>:
80002be0: 00000517 auipc a0,0x0
80002be4: 42050513 addi a0,a0,1056 # 80003000 <begin_signature>
80002be8: 00100593 li a1,1
80002bec: 00b5262f amoadd.w a2,a1,(a0)
80002bf0: 00100693 li a3,1
80002bf4: fed67ee3 bleu a3,a2,80002bf0 <userstart+0x10>
80002bf8: 00052583 lw a1,0(a0)
80002bfc: fed5eee3 bltu a1,a3,80002bf8 <userstart+0x18>
80002c00 <test_2>:
80002c00: 00000517 auipc a0,0x0
80002c04: 40850513 addi a0,a0,1032 # 80003008 <foo>
80002c08: 1805272f sc.w a4,zero,(a0)
80002c0c: 00100e93 li t4,1
80002c10: 00200193 li gp,2
80002c14: 09d71863 bne a4,t4,80002ca4 <fail>
80002c18 <test_3>:
80002c18: 00000517 auipc a0,0x0
80002c1c: 3f050513 addi a0,a0,1008 # 80003008 <foo>
80002c20: 40050593 addi a1,a0,1024
80002c24: 1005a5af lr.w a1,(a1)
80002c28: 18b5272f sc.w a4,a1,(a0)
80002c2c: 00100e93 li t4,1
80002c30: 00300193 li gp,3
80002c34: 07d71863 bne a4,t4,80002ca4 <fail>
80002c38: 00000517 auipc a0,0x0
80002c3c: 3d050513 addi a0,a0,976 # 80003008 <foo>
80002c40: 40000593 li a1,1024
80002c44: 00160613 addi a2,a2,1
80002c48: 1005272f lr.w a4,(a0)
80002c4c: 00c70733 add a4,a4,a2
80002c50: 18e5272f sc.w a4,a4,(a0)
80002c54: fe071ae3 bnez a4,80002c48 <test_3+0x30>
80002c58: fff58593 addi a1,a1,-1 # 7fffffff <_end+0xffff9c07>
80002c5c: fe0596e3 bnez a1,80002c48 <test_3+0x30>
80002c60: 00000517 auipc a0,0x0
80002c64: 3a450513 addi a0,a0,932 # 80003004 <barrier>
80002c68: 00100593 li a1,1
80002c6c: 00b5202f amoadd.w zero,a1,(a0)
80002c70: 00052583 lw a1,0(a0)
80002c74: fed5cee3 blt a1,a3,80002c70 <test_3+0x58>
80002c78: 0ff0000f fence
80002c7c <test_4>:
80002c7c: 00000517 auipc a0,0x0
80002c80: 38c52503 lw a0,908(a0) # 80003008 <foo>
80002c84: 00969593 slli a1,a3,0x9
80002c88: 40b50533 sub a0,a0,a1
80002c8c: fff68693 addi a3,a3,-1
80002c90: fe06dce3 bgez a3,80002c88 <test_4+0xc>
80002c94: 00000e93 li t4,0
80002c98: 00400193 li gp,4
80002c9c: 01d51463 bne a0,t4,80002ca4 <fail>
80002ca0: 00301a63 bne zero,gp,80002cb4 <pass>
80002ca4 <fail>:
80002ca4: 00119513 slli a0,gp,0x1
80002ca8: 00050063 beqz a0,80002ca8 <fail+0x4>
80002cac: 00156513 ori a0,a0,1
80002cb0: 00000073 ecall
80002cb4 <pass>:
80002cb4: 00100513 li a0,1
80002cb8: 00000073 ecall
80002cbc: c0001073 unimp
Disassembly of section .data:
80003000 <begin_signature>:
80003000: 0000 unimp
80003002: 0000 unimp
80003004 <barrier>:
80003004: 0000 unimp
80003006: 0000 unimp
80003008 <foo>:
80003008: 0000 unimp
8000300a: 0000 unimp

BIN
Tests/isa/rv32uc-p-rvc Normal file

Binary file not shown.

4904
Tests/isa/rv32uc-p-rvc.dump Normal file

File diff suppressed because it is too large Load Diff

BIN
Tests/isa/rv32uc-v-rvc Normal file

Binary file not shown.

6474
Tests/isa/rv32uc-v-rvc.dump Normal file

File diff suppressed because it is too large Load Diff

BIN
Tests/isa/rv32ud-p-fadd Normal file

Binary file not shown.

View File

@@ -0,0 +1,478 @@
rv32ud-p-fadd: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00002537 lui a0,0x2
800000ec: 30052073 csrs mstatus,a0
800000f0: 00305073 csrwi fcsr,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00200193 li gp,2
8000010c: 00002517 auipc a0,0x2
80000110: ef450513 addi a0,a0,-268 # 80002000 <test_2_data>
80000114: 00053007 fld ft0,0(a0)
80000118: 00853087 fld ft1,8(a0)
8000011c: 01053107 fld ft2,16(a0)
80000120: 01852683 lw a3,24(a0)
80000124: 01c52303 lw t1,28(a0)
80000128: 021071d3 fadd.d ft3,ft0,ft1
8000012c: 00353027 fsd ft3,0(a0)
80000130: 00452383 lw t2,4(a0)
80000134: 00052503 lw a0,0(a0)
80000138: 001015f3 fsflags a1,zero
8000013c: 00000613 li a2,0
80000140: 26d51a63 bne a0,a3,800003b4 <fail>
80000144: 26731863 bne t1,t2,800003b4 <fail>
80000148: 26c59663 bne a1,a2,800003b4 <fail>
8000014c <test_3>:
8000014c: 00300193 li gp,3
80000150: 00002517 auipc a0,0x2
80000154: ed050513 addi a0,a0,-304 # 80002020 <test_3_data>
80000158: 00053007 fld ft0,0(a0)
8000015c: 00853087 fld ft1,8(a0)
80000160: 01053107 fld ft2,16(a0)
80000164: 01852683 lw a3,24(a0)
80000168: 01c52303 lw t1,28(a0)
8000016c: 021071d3 fadd.d ft3,ft0,ft1
80000170: 00353027 fsd ft3,0(a0)
80000174: 00452383 lw t2,4(a0)
80000178: 00052503 lw a0,0(a0)
8000017c: 001015f3 fsflags a1,zero
80000180: 00100613 li a2,1
80000184: 22d51863 bne a0,a3,800003b4 <fail>
80000188: 22731663 bne t1,t2,800003b4 <fail>
8000018c: 22c59463 bne a1,a2,800003b4 <fail>
80000190 <test_4>:
80000190: 00400193 li gp,4
80000194: 00002517 auipc a0,0x2
80000198: eac50513 addi a0,a0,-340 # 80002040 <test_4_data>
8000019c: 00053007 fld ft0,0(a0)
800001a0: 00853087 fld ft1,8(a0)
800001a4: 01053107 fld ft2,16(a0)
800001a8: 01852683 lw a3,24(a0)
800001ac: 01c52303 lw t1,28(a0)
800001b0: 021071d3 fadd.d ft3,ft0,ft1
800001b4: 00353027 fsd ft3,0(a0)
800001b8: 00452383 lw t2,4(a0)
800001bc: 00052503 lw a0,0(a0)
800001c0: 001015f3 fsflags a1,zero
800001c4: 00100613 li a2,1
800001c8: 1ed51663 bne a0,a3,800003b4 <fail>
800001cc: 1e731463 bne t1,t2,800003b4 <fail>
800001d0: 1ec59263 bne a1,a2,800003b4 <fail>
800001d4 <test_5>:
800001d4: 00500193 li gp,5
800001d8: 00002517 auipc a0,0x2
800001dc: e8850513 addi a0,a0,-376 # 80002060 <test_5_data>
800001e0: 00053007 fld ft0,0(a0)
800001e4: 00853087 fld ft1,8(a0)
800001e8: 01053107 fld ft2,16(a0)
800001ec: 01852683 lw a3,24(a0)
800001f0: 01c52303 lw t1,28(a0)
800001f4: 0a1071d3 fsub.d ft3,ft0,ft1
800001f8: 00353027 fsd ft3,0(a0)
800001fc: 00452383 lw t2,4(a0)
80000200: 00052503 lw a0,0(a0)
80000204: 001015f3 fsflags a1,zero
80000208: 00000613 li a2,0
8000020c: 1ad51463 bne a0,a3,800003b4 <fail>
80000210: 1a731263 bne t1,t2,800003b4 <fail>
80000214: 1ac59063 bne a1,a2,800003b4 <fail>
80000218 <test_6>:
80000218: 00600193 li gp,6
8000021c: 00002517 auipc a0,0x2
80000220: e6450513 addi a0,a0,-412 # 80002080 <test_6_data>
80000224: 00053007 fld ft0,0(a0)
80000228: 00853087 fld ft1,8(a0)
8000022c: 01053107 fld ft2,16(a0)
80000230: 01852683 lw a3,24(a0)
80000234: 01c52303 lw t1,28(a0)
80000238: 0a1071d3 fsub.d ft3,ft0,ft1
8000023c: 00353027 fsd ft3,0(a0)
80000240: 00452383 lw t2,4(a0)
80000244: 00052503 lw a0,0(a0)
80000248: 001015f3 fsflags a1,zero
8000024c: 00100613 li a2,1
80000250: 16d51263 bne a0,a3,800003b4 <fail>
80000254: 16731063 bne t1,t2,800003b4 <fail>
80000258: 14c59e63 bne a1,a2,800003b4 <fail>
8000025c <test_7>:
8000025c: 00700193 li gp,7
80000260: 00002517 auipc a0,0x2
80000264: e4050513 addi a0,a0,-448 # 800020a0 <test_7_data>
80000268: 00053007 fld ft0,0(a0)
8000026c: 00853087 fld ft1,8(a0)
80000270: 01053107 fld ft2,16(a0)
80000274: 01852683 lw a3,24(a0)
80000278: 01c52303 lw t1,28(a0)
8000027c: 0a1071d3 fsub.d ft3,ft0,ft1
80000280: 00353027 fsd ft3,0(a0)
80000284: 00452383 lw t2,4(a0)
80000288: 00052503 lw a0,0(a0)
8000028c: 001015f3 fsflags a1,zero
80000290: 00100613 li a2,1
80000294: 12d51063 bne a0,a3,800003b4 <fail>
80000298: 10731e63 bne t1,t2,800003b4 <fail>
8000029c: 10c59c63 bne a1,a2,800003b4 <fail>
800002a0 <test_8>:
800002a0: 00800193 li gp,8
800002a4: 00002517 auipc a0,0x2
800002a8: e1c50513 addi a0,a0,-484 # 800020c0 <test_8_data>
800002ac: 00053007 fld ft0,0(a0)
800002b0: 00853087 fld ft1,8(a0)
800002b4: 01053107 fld ft2,16(a0)
800002b8: 01852683 lw a3,24(a0)
800002bc: 01c52303 lw t1,28(a0)
800002c0: 121071d3 fmul.d ft3,ft0,ft1
800002c4: 00353027 fsd ft3,0(a0)
800002c8: 00452383 lw t2,4(a0)
800002cc: 00052503 lw a0,0(a0)
800002d0: 001015f3 fsflags a1,zero
800002d4: 00000613 li a2,0
800002d8: 0cd51e63 bne a0,a3,800003b4 <fail>
800002dc: 0c731c63 bne t1,t2,800003b4 <fail>
800002e0: 0cc59a63 bne a1,a2,800003b4 <fail>
800002e4 <test_9>:
800002e4: 00900193 li gp,9
800002e8: 00002517 auipc a0,0x2
800002ec: df850513 addi a0,a0,-520 # 800020e0 <test_9_data>
800002f0: 00053007 fld ft0,0(a0)
800002f4: 00853087 fld ft1,8(a0)
800002f8: 01053107 fld ft2,16(a0)
800002fc: 01852683 lw a3,24(a0)
80000300: 01c52303 lw t1,28(a0)
80000304: 121071d3 fmul.d ft3,ft0,ft1
80000308: 00353027 fsd ft3,0(a0)
8000030c: 00452383 lw t2,4(a0)
80000310: 00052503 lw a0,0(a0)
80000314: 001015f3 fsflags a1,zero
80000318: 00100613 li a2,1
8000031c: 08d51c63 bne a0,a3,800003b4 <fail>
80000320: 08731a63 bne t1,t2,800003b4 <fail>
80000324: 08c59863 bne a1,a2,800003b4 <fail>
80000328 <test_10>:
80000328: 00a00193 li gp,10
8000032c: 00002517 auipc a0,0x2
80000330: dd450513 addi a0,a0,-556 # 80002100 <test_10_data>
80000334: 00053007 fld ft0,0(a0)
80000338: 00853087 fld ft1,8(a0)
8000033c: 01053107 fld ft2,16(a0)
80000340: 01852683 lw a3,24(a0)
80000344: 01c52303 lw t1,28(a0)
80000348: 121071d3 fmul.d ft3,ft0,ft1
8000034c: 00353027 fsd ft3,0(a0)
80000350: 00452383 lw t2,4(a0)
80000354: 00052503 lw a0,0(a0)
80000358: 001015f3 fsflags a1,zero
8000035c: 00100613 li a2,1
80000360: 04d51a63 bne a0,a3,800003b4 <fail>
80000364: 04731863 bne t1,t2,800003b4 <fail>
80000368: 04c59663 bne a1,a2,800003b4 <fail>
8000036c <test_11>:
8000036c: 00b00193 li gp,11
80000370: 00002517 auipc a0,0x2
80000374: db050513 addi a0,a0,-592 # 80002120 <test_11_data>
80000378: 00053007 fld ft0,0(a0)
8000037c: 00853087 fld ft1,8(a0)
80000380: 01053107 fld ft2,16(a0)
80000384: 01852683 lw a3,24(a0)
80000388: 01c52303 lw t1,28(a0)
8000038c: 0a1071d3 fsub.d ft3,ft0,ft1
80000390: 00353027 fsd ft3,0(a0)
80000394: 00452383 lw t2,4(a0)
80000398: 00052503 lw a0,0(a0)
8000039c: 001015f3 fsflags a1,zero
800003a0: 01000613 li a2,16
800003a4: 00d51863 bne a0,a3,800003b4 <fail>
800003a8: 00731663 bne t1,t2,800003b4 <fail>
800003ac: 00c59463 bne a1,a2,800003b4 <fail>
800003b0: 00301c63 bne zero,gp,800003c8 <pass>
800003b4 <fail>:
800003b4: 0ff0000f fence
800003b8: 00018063 beqz gp,800003b8 <fail+0x4>
800003bc: 00119193 slli gp,gp,0x1
800003c0: 0011e193 ori gp,gp,1
800003c4: 00000073 ecall
800003c8 <pass>:
800003c8: 0ff0000f fence
800003cc: 00100193 li gp,1
800003d0: 00000073 ecall
800003d4: c0001073 unimp
800003d8: 0000 unimp
800003da: 0000 unimp
800003dc: 0000 unimp
800003de: 0000 unimp
800003e0: 0000 unimp
800003e2: 0000 unimp
800003e4: 0000 unimp
800003e6: 0000 unimp
800003e8: 0000 unimp
800003ea: 0000 unimp
800003ec: 0000 unimp
800003ee: 0000 unimp
800003f0: 0000 unimp
800003f2: 0000 unimp
800003f4: 0000 unimp
800003f6: 0000 unimp
800003f8: 0000 unimp
800003fa: 0000 unimp
800003fc: 0000 unimp
800003fe: 0000 unimp
80000400: 0000 unimp
80000402: 0000 unimp
Disassembly of section .data:
80002000 <test_2_data>:
80002000: 0000 unimp
80002002: 0000 unimp
80002004: 0000 unimp
80002006: 4004 lw s1,0(s0)
80002008: 0000 unimp
8000200a: 0000 unimp
8000200c: 0000 unimp
8000200e: 3ff0 fld fa2,248(a5)
80002010: 0000 unimp
80002012: 0000 unimp
80002014: 0000 unimp
80002016: 0000 unimp
80002018: 0000 unimp
8000201a: 0000 unimp
8000201c: 0000 unimp
8000201e: 400c lw a1,0(s0)
80002020 <test_3_data>:
80002020: 6666 flw fa2,88(sp)
80002022: 6666 flw fa2,88(sp)
80002024: 4c66 lw s8,88(sp)
80002026: 999ac093 xori ra,s5,-1639
8000202a: 9999 andi a1,a1,-26
8000202c: 9999 andi a1,a1,-26
8000202e: 3ff1 jal 8000200a <test_2_data+0xa>
80002030: 0000 unimp
80002032: 0000 unimp
80002034: 0000 unimp
80002036: 0000 unimp
80002038: 0000 unimp
8000203a: 0000 unimp
8000203c: 4800 lw s0,16(s0)
8000203e: xori ra,gp,-689
80002040 <test_4_data>:
80002040: d4f1 beqz s1,8000200c <test_2_data+0xc>
80002042: 53c8 lw a0,36(a5)
80002044: 400921fb 0x400921fb
80002048: 8c3a mv s8,a4
8000204a: e230 fsw fa2,64(a2)
8000204c: 798e flw fs3,224(sp)
8000204e: 3e45 jal 80001bfe <fromhost+0xbbe>
80002050: 0000 unimp
80002052: 0000 unimp
80002054: 0000 unimp
80002056: 0000 unimp
80002058: 6ddf 5520 21fb 0x21fb55206ddf
8000205e: 4009 c.li zero,2
80002060 <test_5_data>:
80002060: 0000 unimp
80002062: 0000 unimp
80002064: 0000 unimp
80002066: 4004 lw s1,0(s0)
80002068: 0000 unimp
8000206a: 0000 unimp
8000206c: 0000 unimp
8000206e: 3ff0 fld fa2,248(a5)
80002070: 0000 unimp
80002072: 0000 unimp
80002074: 0000 unimp
80002076: 0000 unimp
80002078: 0000 unimp
8000207a: 0000 unimp
8000207c: 0000 unimp
8000207e: 3ff8 fld fa4,248(a5)
80002080 <test_6_data>:
80002080: 6666 flw fa2,88(sp)
80002082: 6666 flw fa2,88(sp)
80002084: 4c66 lw s8,88(sp)
80002086: 999ac093 xori ra,s5,-1639
8000208a: 9999 andi a1,a1,-26
8000208c: 9999 andi a1,a1,-26
8000208e: bff1 j 8000206a <test_5_data+0xa>
80002090: 0000 unimp
80002092: 0000 unimp
80002094: 0000 unimp
80002096: 0000 unimp
80002098: 0000 unimp
8000209a: 0000 unimp
8000209c: 4800 lw s0,16(s0)
8000209e: xori ra,gp,-689
800020a0 <test_7_data>:
800020a0: d4f1 beqz s1,8000206c <test_5_data+0xc>
800020a2: 53c8 lw a0,36(a5)
800020a4: 400921fb 0x400921fb
800020a8: 8c3a mv s8,a4
800020aa: e230 fsw fa2,64(a2)
800020ac: 798e flw fs3,224(sp)
800020ae: 3e45 jal 80001c5e <fromhost+0xc1e>
800020b0: 0000 unimp
800020b2: 0000 unimp
800020b4: 0000 unimp
800020b6: 0000 unimp
800020b8: 52713c03 0x52713c03
800020bc: 400921fb 0x400921fb
800020c0 <test_8_data>:
800020c0: 0000 unimp
800020c2: 0000 unimp
800020c4: 0000 unimp
800020c6: 4004 lw s1,0(s0)
800020c8: 0000 unimp
800020ca: 0000 unimp
800020cc: 0000 unimp
800020ce: 3ff0 fld fa2,248(a5)
800020d0: 0000 unimp
800020d2: 0000 unimp
800020d4: 0000 unimp
800020d6: 0000 unimp
800020d8: 0000 unimp
800020da: 0000 unimp
800020dc: 0000 unimp
800020de: 4004 lw s1,0(s0)
800020e0 <test_9_data>:
800020e0: 6666 flw fa2,88(sp)
800020e2: 6666 flw fa2,88(sp)
800020e4: 4c66 lw s8,88(sp)
800020e6: 999ac093 xori ra,s5,-1639
800020ea: 9999 andi a1,a1,-26
800020ec: 9999 andi a1,a1,-26
800020ee: bff1 j 800020ca <test_8_data+0xa>
800020f0: 0000 unimp
800020f2: 0000 unimp
800020f4: 0000 unimp
800020f6: 0000 unimp
800020f8: 0a3d addi s4,s4,15
800020fa: 3a70a3d7 0x3a70a3d7
800020fe: 4095 li ra,5
80002100 <test_10_data>:
80002100: d4f1 beqz s1,800020cc <test_8_data+0xc>
80002102: 53c8 lw a0,36(a5)
80002104: 400921fb 0x400921fb
80002108: 8c3a mv s8,a4
8000210a: e230 fsw fa2,64(a2)
8000210c: 798e flw fs3,224(sp)
8000210e: 3e45 jal 80001cbe <fromhost+0xc7e>
80002110: 0000 unimp
80002112: 0000 unimp
80002114: 0000 unimp
80002116: 0000 unimp
80002118: ff09 bnez a4,80002032 <test_3_data+0x12>
8000211a: a5c1 j 800027da <_end+0x69a>
8000211c: ddc5 beqz a1,800020d4 <test_8_data+0x14>
8000211e: 3e60 fld fs0,248(a2)
80002120 <test_11_data>:
80002120: 0000 unimp
80002122: 0000 unimp
80002124: 0000 unimp
80002126: 7ff0 flw fa2,124(a5)
80002128: 0000 unimp
8000212a: 0000 unimp
8000212c: 0000 unimp
8000212e: 7ff0 flw fa2,124(a5)
80002130: 0000 unimp
80002132: 0000 unimp
80002134: 0000 unimp
80002136: 0000 unimp
80002138: 0000 unimp
8000213a: 0000 unimp
8000213c: 0000 unimp
8000213e: 7ff8 flw fa4,124(a5)

BIN
Tests/isa/rv32ud-p-fclass Normal file

Binary file not shown.

View File

@@ -0,0 +1,277 @@
rv32ud-p-fclass: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00002537 lui a0,0x2
800000ec: 30052073 csrs mstatus,a0
800000f0: 00305073 csrwi fcsr,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00002517 auipc a0,0x2
8000010c: ef850513 addi a0,a0,-264 # 80002000 <test_2_data>
80000110: 00053507 fld fa0,0(a0)
80000114: e2051553 fclass.d a0,fa0
80000118: 00100e93 li t4,1
8000011c: 00200193 li gp,2
80000120: 11d51263 bne a0,t4,80000224 <fail>
80000124 <test_3>:
80000124: 00002517 auipc a0,0x2
80000128: ee450513 addi a0,a0,-284 # 80002008 <test_3_data>
8000012c: 00053507 fld fa0,0(a0)
80000130: e2051553 fclass.d a0,fa0
80000134: 00200e93 li t4,2
80000138: 00300193 li gp,3
8000013c: 0fd51463 bne a0,t4,80000224 <fail>
80000140 <test_4>:
80000140: 00002517 auipc a0,0x2
80000144: ed050513 addi a0,a0,-304 # 80002010 <test_4_data>
80000148: 00053507 fld fa0,0(a0)
8000014c: e2051553 fclass.d a0,fa0
80000150: 00400e93 li t4,4
80000154: 00400193 li gp,4
80000158: 0dd51663 bne a0,t4,80000224 <fail>
8000015c <test_5>:
8000015c: 00002517 auipc a0,0x2
80000160: ebc50513 addi a0,a0,-324 # 80002018 <test_5_data>
80000164: 00053507 fld fa0,0(a0)
80000168: e2051553 fclass.d a0,fa0
8000016c: 00800e93 li t4,8
80000170: 00500193 li gp,5
80000174: 0bd51863 bne a0,t4,80000224 <fail>
80000178 <test_6>:
80000178: 00002517 auipc a0,0x2
8000017c: ea850513 addi a0,a0,-344 # 80002020 <test_6_data>
80000180: 00053507 fld fa0,0(a0)
80000184: e2051553 fclass.d a0,fa0
80000188: 01000e93 li t4,16
8000018c: 00600193 li gp,6
80000190: 09d51a63 bne a0,t4,80000224 <fail>
80000194 <test_7>:
80000194: 00002517 auipc a0,0x2
80000198: e9450513 addi a0,a0,-364 # 80002028 <test_7_data>
8000019c: 00053507 fld fa0,0(a0)
800001a0: e2051553 fclass.d a0,fa0
800001a4: 02000e93 li t4,32
800001a8: 00700193 li gp,7
800001ac: 07d51c63 bne a0,t4,80000224 <fail>
800001b0 <test_8>:
800001b0: 00002517 auipc a0,0x2
800001b4: e8050513 addi a0,a0,-384 # 80002030 <test_8_data>
800001b8: 00053507 fld fa0,0(a0)
800001bc: e2051553 fclass.d a0,fa0
800001c0: 04000e93 li t4,64
800001c4: 00800193 li gp,8
800001c8: 05d51e63 bne a0,t4,80000224 <fail>
800001cc <test_9>:
800001cc: 00002517 auipc a0,0x2
800001d0: e6c50513 addi a0,a0,-404 # 80002038 <test_9_data>
800001d4: 00053507 fld fa0,0(a0)
800001d8: e2051553 fclass.d a0,fa0
800001dc: 08000e93 li t4,128
800001e0: 00900193 li gp,9
800001e4: 05d51063 bne a0,t4,80000224 <fail>
800001e8 <test_10>:
800001e8: 00002517 auipc a0,0x2
800001ec: e5850513 addi a0,a0,-424 # 80002040 <test_10_data>
800001f0: 00053507 fld fa0,0(a0)
800001f4: e2051553 fclass.d a0,fa0
800001f8: 10000e93 li t4,256
800001fc: 00a00193 li gp,10
80000200: 03d51263 bne a0,t4,80000224 <fail>
80000204 <test_11>:
80000204: 00002517 auipc a0,0x2
80000208: e4450513 addi a0,a0,-444 # 80002048 <test_11_data>
8000020c: 00053507 fld fa0,0(a0)
80000210: e2051553 fclass.d a0,fa0
80000214: 20000e93 li t4,512
80000218: 00b00193 li gp,11
8000021c: 01d51463 bne a0,t4,80000224 <fail>
80000220: 00301c63 bne zero,gp,80000238 <pass>
80000224 <fail>:
80000224: 0ff0000f fence
80000228: 00018063 beqz gp,80000228 <fail+0x4>
8000022c: 00119193 slli gp,gp,0x1
80000230: 0011e193 ori gp,gp,1
80000234: 00000073 ecall
80000238 <pass>:
80000238: 0ff0000f fence
8000023c: 00100193 li gp,1
80000240: 00000073 ecall
80000244: c0001073 unimp
80000248: 0000 unimp
8000024a: 0000 unimp
8000024c: 0000 unimp
8000024e: 0000 unimp
80000250: 0000 unimp
80000252: 0000 unimp
80000254: 0000 unimp
80000256: 0000 unimp
80000258: 0000 unimp
8000025a: 0000 unimp
8000025c: 0000 unimp
8000025e: 0000 unimp
80000260: 0000 unimp
80000262: 0000 unimp
80000264: 0000 unimp
80000266: 0000 unimp
80000268: 0000 unimp
8000026a: 0000 unimp
8000026c: 0000 unimp
8000026e: 0000 unimp
80000270: 0000 unimp
80000272: 0000 unimp
80000274: 0000 unimp
80000276: 0000 unimp
80000278: 0000 unimp
8000027a: 0000 unimp
8000027c: 0000 unimp
8000027e: 0000 unimp
80000280: 0000 unimp
80000282: 0000 unimp
Disassembly of section .data:
80002000 <test_2_data>:
80002000: 0000 unimp
80002002: 0000 unimp
80002004: 0000 unimp
80002006: fff0 fsw fa2,124(a5)
80002008 <test_3_data>:
80002008: 0000 unimp
8000200a: 0000 unimp
8000200c: 0000 unimp
8000200e: bff0 fsd fa2,248(a5)
80002010 <test_4_data>:
80002010: ffff 0xffff
80002012: ffff 0xffff
80002014: ffff 0xffff
80002016: 0x800f
80002018 <test_5_data>:
80002018: 0000 unimp
8000201a: 0000 unimp
8000201c: 0000 unimp
8000201e: 8000 0x8000
80002020 <test_6_data>:
80002020: 0000 unimp
80002022: 0000 unimp
80002024: 0000 unimp
80002026: 0000 unimp
80002028 <test_7_data>:
80002028: ffff 0xffff
8000202a: ffff 0xffff
8000202c: ffff 0xffff
8000202e: fence unknown,unknown
80002030 <test_8_data>:
80002030: 0000 unimp
80002032: 0000 unimp
80002034: 0000 unimp
80002036: 3ff0 fld fa2,248(a5)
80002038 <test_9_data>:
80002038: 0000 unimp
8000203a: 0000 unimp
8000203c: 0000 unimp
8000203e: 7ff0 flw fa2,124(a5)
80002040 <test_10_data>:
80002040: 0001 nop
80002042: 0000 unimp
80002044: 0000 unimp
80002046: 7ff0 flw fa2,124(a5)
80002048 <test_11_data>:
80002048: 0000 unimp
8000204a: 0000 unimp
8000204c: 0000 unimp
8000204e: 7ff8 flw fa4,124(a5)

BIN
Tests/isa/rv32ud-p-fcmp Normal file

Binary file not shown.

View File

@@ -0,0 +1,612 @@
rv32ud-p-fcmp: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00002537 lui a0,0x2
800000ec: 30052073 csrs mstatus,a0
800000f0: 00305073 csrwi fcsr,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00200193 li gp,2
8000010c: 00002517 auipc a0,0x2
80000110: ef450513 addi a0,a0,-268 # 80002000 <test_2_data>
80000114: 00053007 fld ft0,0(a0)
80000118: 00853087 fld ft1,8(a0)
8000011c: 01053107 fld ft2,16(a0)
80000120: 01852683 lw a3,24(a0)
80000124: 01c52303 lw t1,28(a0)
80000128: a2102553 feq.d a0,ft0,ft1
8000012c: 00000393 li t2,0
80000130: 001015f3 fsflags a1,zero
80000134: 00000613 li a2,0
80000138: 34d51c63 bne a0,a3,80000490 <fail>
8000013c: 34731a63 bne t1,t2,80000490 <fail>
80000140: 34c59863 bne a1,a2,80000490 <fail>
80000144 <test_3>:
80000144: 00300193 li gp,3
80000148: 00002517 auipc a0,0x2
8000014c: ed850513 addi a0,a0,-296 # 80002020 <test_3_data>
80000150: 00053007 fld ft0,0(a0)
80000154: 00853087 fld ft1,8(a0)
80000158: 01053107 fld ft2,16(a0)
8000015c: 01852683 lw a3,24(a0)
80000160: 01c52303 lw t1,28(a0)
80000164: a2100553 fle.d a0,ft0,ft1
80000168: 00000393 li t2,0
8000016c: 001015f3 fsflags a1,zero
80000170: 00000613 li a2,0
80000174: 30d51e63 bne a0,a3,80000490 <fail>
80000178: 30731c63 bne t1,t2,80000490 <fail>
8000017c: 30c59a63 bne a1,a2,80000490 <fail>
80000180 <test_4>:
80000180: 00400193 li gp,4
80000184: 00002517 auipc a0,0x2
80000188: ebc50513 addi a0,a0,-324 # 80002040 <test_4_data>
8000018c: 00053007 fld ft0,0(a0)
80000190: 00853087 fld ft1,8(a0)
80000194: 01053107 fld ft2,16(a0)
80000198: 01852683 lw a3,24(a0)
8000019c: 01c52303 lw t1,28(a0)
800001a0: a2101553 flt.d a0,ft0,ft1
800001a4: 00000393 li t2,0
800001a8: 001015f3 fsflags a1,zero
800001ac: 00000613 li a2,0
800001b0: 2ed51063 bne a0,a3,80000490 <fail>
800001b4: 2c731e63 bne t1,t2,80000490 <fail>
800001b8: 2cc59c63 bne a1,a2,80000490 <fail>
800001bc <test_5>:
800001bc: 00500193 li gp,5
800001c0: 00002517 auipc a0,0x2
800001c4: ea050513 addi a0,a0,-352 # 80002060 <test_5_data>
800001c8: 00053007 fld ft0,0(a0)
800001cc: 00853087 fld ft1,8(a0)
800001d0: 01053107 fld ft2,16(a0)
800001d4: 01852683 lw a3,24(a0)
800001d8: 01c52303 lw t1,28(a0)
800001dc: a2102553 feq.d a0,ft0,ft1
800001e0: 00000393 li t2,0
800001e4: 001015f3 fsflags a1,zero
800001e8: 00000613 li a2,0
800001ec: 2ad51263 bne a0,a3,80000490 <fail>
800001f0: 2a731063 bne t1,t2,80000490 <fail>
800001f4: 28c59e63 bne a1,a2,80000490 <fail>
800001f8 <test_6>:
800001f8: 00600193 li gp,6
800001fc: 00002517 auipc a0,0x2
80000200: e8450513 addi a0,a0,-380 # 80002080 <test_6_data>
80000204: 00053007 fld ft0,0(a0)
80000208: 00853087 fld ft1,8(a0)
8000020c: 01053107 fld ft2,16(a0)
80000210: 01852683 lw a3,24(a0)
80000214: 01c52303 lw t1,28(a0)
80000218: a2100553 fle.d a0,ft0,ft1
8000021c: 00000393 li t2,0
80000220: 001015f3 fsflags a1,zero
80000224: 00000613 li a2,0
80000228: 26d51463 bne a0,a3,80000490 <fail>
8000022c: 26731263 bne t1,t2,80000490 <fail>
80000230: 26c59063 bne a1,a2,80000490 <fail>
80000234 <test_7>:
80000234: 00700193 li gp,7
80000238: 00002517 auipc a0,0x2
8000023c: e6850513 addi a0,a0,-408 # 800020a0 <test_7_data>
80000240: 00053007 fld ft0,0(a0)
80000244: 00853087 fld ft1,8(a0)
80000248: 01053107 fld ft2,16(a0)
8000024c: 01852683 lw a3,24(a0)
80000250: 01c52303 lw t1,28(a0)
80000254: a2101553 flt.d a0,ft0,ft1
80000258: 00000393 li t2,0
8000025c: 001015f3 fsflags a1,zero
80000260: 00000613 li a2,0
80000264: 22d51663 bne a0,a3,80000490 <fail>
80000268: 22731463 bne t1,t2,80000490 <fail>
8000026c: 22c59263 bne a1,a2,80000490 <fail>
80000270 <test_8>:
80000270: 00800193 li gp,8
80000274: 00002517 auipc a0,0x2
80000278: e4c50513 addi a0,a0,-436 # 800020c0 <test_8_data>
8000027c: 00053007 fld ft0,0(a0)
80000280: 00853087 fld ft1,8(a0)
80000284: 01053107 fld ft2,16(a0)
80000288: 01852683 lw a3,24(a0)
8000028c: 01c52303 lw t1,28(a0)
80000290: a2102553 feq.d a0,ft0,ft1
80000294: 00000393 li t2,0
80000298: 001015f3 fsflags a1,zero
8000029c: 00000613 li a2,0
800002a0: 1ed51863 bne a0,a3,80000490 <fail>
800002a4: 1e731663 bne t1,t2,80000490 <fail>
800002a8: 1ec59463 bne a1,a2,80000490 <fail>
800002ac <test_9>:
800002ac: 00900193 li gp,9
800002b0: 00002517 auipc a0,0x2
800002b4: e3050513 addi a0,a0,-464 # 800020e0 <test_9_data>
800002b8: 00053007 fld ft0,0(a0)
800002bc: 00853087 fld ft1,8(a0)
800002c0: 01053107 fld ft2,16(a0)
800002c4: 01852683 lw a3,24(a0)
800002c8: 01c52303 lw t1,28(a0)
800002cc: a2102553 feq.d a0,ft0,ft1
800002d0: 00000393 li t2,0
800002d4: 001015f3 fsflags a1,zero
800002d8: 00000613 li a2,0
800002dc: 1ad51a63 bne a0,a3,80000490 <fail>
800002e0: 1a731863 bne t1,t2,80000490 <fail>
800002e4: 1ac59663 bne a1,a2,80000490 <fail>
800002e8 <test_10>:
800002e8: 00a00193 li gp,10
800002ec: 00002517 auipc a0,0x2
800002f0: e1450513 addi a0,a0,-492 # 80002100 <test_10_data>
800002f4: 00053007 fld ft0,0(a0)
800002f8: 00853087 fld ft1,8(a0)
800002fc: 01053107 fld ft2,16(a0)
80000300: 01852683 lw a3,24(a0)
80000304: 01c52303 lw t1,28(a0)
80000308: a2102553 feq.d a0,ft0,ft1
8000030c: 00000393 li t2,0
80000310: 001015f3 fsflags a1,zero
80000314: 01000613 li a2,16
80000318: 16d51c63 bne a0,a3,80000490 <fail>
8000031c: 16731a63 bne t1,t2,80000490 <fail>
80000320: 16c59863 bne a1,a2,80000490 <fail>
80000324 <test_11>:
80000324: 00b00193 li gp,11
80000328: 00002517 auipc a0,0x2
8000032c: df850513 addi a0,a0,-520 # 80002120 <test_11_data>
80000330: 00053007 fld ft0,0(a0)
80000334: 00853087 fld ft1,8(a0)
80000338: 01053107 fld ft2,16(a0)
8000033c: 01852683 lw a3,24(a0)
80000340: 01c52303 lw t1,28(a0)
80000344: a2101553 flt.d a0,ft0,ft1
80000348: 00000393 li t2,0
8000034c: 001015f3 fsflags a1,zero
80000350: 01000613 li a2,16
80000354: 12d51e63 bne a0,a3,80000490 <fail>
80000358: 12731c63 bne t1,t2,80000490 <fail>
8000035c: 12c59a63 bne a1,a2,80000490 <fail>
80000360 <test_12>:
80000360: 00c00193 li gp,12
80000364: 00002517 auipc a0,0x2
80000368: ddc50513 addi a0,a0,-548 # 80002140 <test_12_data>
8000036c: 00053007 fld ft0,0(a0)
80000370: 00853087 fld ft1,8(a0)
80000374: 01053107 fld ft2,16(a0)
80000378: 01852683 lw a3,24(a0)
8000037c: 01c52303 lw t1,28(a0)
80000380: a2101553 flt.d a0,ft0,ft1
80000384: 00000393 li t2,0
80000388: 001015f3 fsflags a1,zero
8000038c: 01000613 li a2,16
80000390: 10d51063 bne a0,a3,80000490 <fail>
80000394: 0e731e63 bne t1,t2,80000490 <fail>
80000398: 0ec59c63 bne a1,a2,80000490 <fail>
8000039c <test_13>:
8000039c: 00d00193 li gp,13
800003a0: 00002517 auipc a0,0x2
800003a4: dc050513 addi a0,a0,-576 # 80002160 <test_13_data>
800003a8: 00053007 fld ft0,0(a0)
800003ac: 00853087 fld ft1,8(a0)
800003b0: 01053107 fld ft2,16(a0)
800003b4: 01852683 lw a3,24(a0)
800003b8: 01c52303 lw t1,28(a0)
800003bc: a2101553 flt.d a0,ft0,ft1
800003c0: 00000393 li t2,0
800003c4: 001015f3 fsflags a1,zero
800003c8: 01000613 li a2,16
800003cc: 0cd51263 bne a0,a3,80000490 <fail>
800003d0: 0c731063 bne t1,t2,80000490 <fail>
800003d4: 0ac59e63 bne a1,a2,80000490 <fail>
800003d8 <test_14>:
800003d8: 00e00193 li gp,14
800003dc: 00002517 auipc a0,0x2
800003e0: da450513 addi a0,a0,-604 # 80002180 <test_14_data>
800003e4: 00053007 fld ft0,0(a0)
800003e8: 00853087 fld ft1,8(a0)
800003ec: 01053107 fld ft2,16(a0)
800003f0: 01852683 lw a3,24(a0)
800003f4: 01c52303 lw t1,28(a0)
800003f8: a2100553 fle.d a0,ft0,ft1
800003fc: 00000393 li t2,0
80000400: 001015f3 fsflags a1,zero
80000404: 01000613 li a2,16
80000408: 08d51463 bne a0,a3,80000490 <fail>
8000040c: 08731263 bne t1,t2,80000490 <fail>
80000410: 08c59063 bne a1,a2,80000490 <fail>
80000414 <test_15>:
80000414: 00f00193 li gp,15
80000418: 00002517 auipc a0,0x2
8000041c: d8850513 addi a0,a0,-632 # 800021a0 <test_15_data>
80000420: 00053007 fld ft0,0(a0)
80000424: 00853087 fld ft1,8(a0)
80000428: 01053107 fld ft2,16(a0)
8000042c: 01852683 lw a3,24(a0)
80000430: 01c52303 lw t1,28(a0)
80000434: a2100553 fle.d a0,ft0,ft1
80000438: 00000393 li t2,0
8000043c: 001015f3 fsflags a1,zero
80000440: 01000613 li a2,16
80000444: 04d51663 bne a0,a3,80000490 <fail>
80000448: 04731463 bne t1,t2,80000490 <fail>
8000044c: 04c59263 bne a1,a2,80000490 <fail>
80000450 <test_16>:
80000450: 01000193 li gp,16
80000454: 00002517 auipc a0,0x2
80000458: d6c50513 addi a0,a0,-660 # 800021c0 <test_16_data>
8000045c: 00053007 fld ft0,0(a0)
80000460: 00853087 fld ft1,8(a0)
80000464: 01053107 fld ft2,16(a0)
80000468: 01852683 lw a3,24(a0)
8000046c: 01c52303 lw t1,28(a0)
80000470: a2100553 fle.d a0,ft0,ft1
80000474: 00000393 li t2,0
80000478: 001015f3 fsflags a1,zero
8000047c: 01000613 li a2,16
80000480: 00d51863 bne a0,a3,80000490 <fail>
80000484: 00731663 bne t1,t2,80000490 <fail>
80000488: 00c59463 bne a1,a2,80000490 <fail>
8000048c: 00301c63 bne zero,gp,800004a4 <pass>
80000490 <fail>:
80000490: 0ff0000f fence
80000494: 00018063 beqz gp,80000494 <fail+0x4>
80000498: 00119193 slli gp,gp,0x1
8000049c: 0011e193 ori gp,gp,1
800004a0: 00000073 ecall
800004a4 <pass>:
800004a4: 0ff0000f fence
800004a8: 00100193 li gp,1
800004ac: 00000073 ecall
800004b0: c0001073 unimp
800004b4: 0000 unimp
800004b6: 0000 unimp
800004b8: 0000 unimp
800004ba: 0000 unimp
800004bc: 0000 unimp
800004be: 0000 unimp
800004c0: 0000 unimp
800004c2: 0000 unimp
Disassembly of section .data:
80002000 <test_2_data>:
80002000: 5c28f5c3 0x5c28f5c3
80002004: bff5c28f 0xbff5c28f
80002008: 5c28f5c3 0x5c28f5c3
8000200c: bff5c28f 0xbff5c28f
80002010: 0000 unimp
80002012: 0000 unimp
80002014: 0000 unimp
80002016: 0000 unimp
80002018: 0001 nop
8000201a: 0000 unimp
8000201c: 0000 unimp
8000201e: 0000 unimp
80002020 <test_3_data>:
80002020: 5c28f5c3 0x5c28f5c3
80002024: bff5c28f 0xbff5c28f
80002028: 5c28f5c3 0x5c28f5c3
8000202c: bff5c28f 0xbff5c28f
80002030: 0000 unimp
80002032: 0000 unimp
80002034: 0000 unimp
80002036: 0000 unimp
80002038: 0001 nop
8000203a: 0000 unimp
8000203c: 0000 unimp
8000203e: 0000 unimp
80002040 <test_4_data>:
80002040: 5c28f5c3 0x5c28f5c3
80002044: bff5c28f 0xbff5c28f
80002048: 5c28f5c3 0x5c28f5c3
8000204c: bff5c28f 0xbff5c28f
80002050: 0000 unimp
80002052: 0000 unimp
80002054: 0000 unimp
80002056: 0000 unimp
80002058: 0000 unimp
8000205a: 0000 unimp
8000205c: 0000 unimp
8000205e: 0000 unimp
80002060 <test_5_data>:
80002060: 51ec lw a1,100(a1)
80002062: 1eb8 addi a4,sp,888
80002064: eb85 bnez a5,80002094 <test_6_data+0x14>
80002066: bff5 j 80002062 <test_5_data+0x2>
80002068: 5c28f5c3 0x5c28f5c3
8000206c: bff5c28f 0xbff5c28f
80002070: 0000 unimp
80002072: 0000 unimp
80002074: 0000 unimp
80002076: 0000 unimp
80002078: 0000 unimp
8000207a: 0000 unimp
8000207c: 0000 unimp
8000207e: 0000 unimp
80002080 <test_6_data>:
80002080: 51ec lw a1,100(a1)
80002082: 1eb8 addi a4,sp,888
80002084: eb85 bnez a5,800020b4 <test_7_data+0x14>
80002086: bff5 j 80002082 <test_6_data+0x2>
80002088: 5c28f5c3 0x5c28f5c3
8000208c: bff5c28f 0xbff5c28f
80002090: 0000 unimp
80002092: 0000 unimp
80002094: 0000 unimp
80002096: 0000 unimp
80002098: 0001 nop
8000209a: 0000 unimp
8000209c: 0000 unimp
8000209e: 0000 unimp
800020a0 <test_7_data>:
800020a0: 51ec lw a1,100(a1)
800020a2: 1eb8 addi a4,sp,888
800020a4: eb85 bnez a5,800020d4 <test_8_data+0x14>
800020a6: bff5 j 800020a2 <test_7_data+0x2>
800020a8: 5c28f5c3 0x5c28f5c3
800020ac: bff5c28f 0xbff5c28f
800020b0: 0000 unimp
800020b2: 0000 unimp
800020b4: 0000 unimp
800020b6: 0000 unimp
800020b8: 0001 nop
800020ba: 0000 unimp
800020bc: 0000 unimp
800020be: 0000 unimp
800020c0 <test_8_data>:
800020c0: ffff 0xffff
800020c2: ffff 0xffff
800020c4: ffff 0xffff
800020c6: 7fff 0x7fff
800020c8: 0000 unimp
800020ca: 0000 unimp
800020cc: 0000 unimp
800020ce: 0000 unimp
800020d0: 0000 unimp
800020d2: 0000 unimp
800020d4: 0000 unimp
800020d6: 0000 unimp
800020d8: 0000 unimp
800020da: 0000 unimp
800020dc: 0000 unimp
800020de: 0000 unimp
800020e0 <test_9_data>:
800020e0: ffff 0xffff
800020e2: ffff 0xffff
800020e4: ffff 0xffff
800020e6: 7fff 0x7fff
800020e8: ffff 0xffff
800020ea: ffff 0xffff
800020ec: ffff 0xffff
800020ee: 7fff 0x7fff
800020f0: 0000 unimp
800020f2: 0000 unimp
800020f4: 0000 unimp
800020f6: 0000 unimp
800020f8: 0000 unimp
800020fa: 0000 unimp
800020fc: 0000 unimp
800020fe: 0000 unimp
80002100 <test_10_data>:
80002100: 0001 nop
80002102: 0000 unimp
80002104: 0000 unimp
80002106: 7ff0 flw fa2,124(a5)
80002108: 0000 unimp
8000210a: 0000 unimp
8000210c: 0000 unimp
8000210e: 0000 unimp
80002110: 0000 unimp
80002112: 0000 unimp
80002114: 0000 unimp
80002116: 0000 unimp
80002118: 0000 unimp
8000211a: 0000 unimp
8000211c: 0000 unimp
8000211e: 0000 unimp
80002120 <test_11_data>:
80002120: ffff 0xffff
80002122: ffff 0xffff
80002124: ffff 0xffff
80002126: 7fff 0x7fff
80002128: 0000 unimp
8000212a: 0000 unimp
8000212c: 0000 unimp
8000212e: 0000 unimp
80002130: 0000 unimp
80002132: 0000 unimp
80002134: 0000 unimp
80002136: 0000 unimp
80002138: 0000 unimp
8000213a: 0000 unimp
8000213c: 0000 unimp
8000213e: 0000 unimp
80002140 <test_12_data>:
80002140: ffff 0xffff
80002142: ffff 0xffff
80002144: ffff 0xffff
80002146: 7fff 0x7fff
80002148: ffff 0xffff
8000214a: ffff 0xffff
8000214c: ffff 0xffff
8000214e: 7fff 0x7fff
80002150: 0000 unimp
80002152: 0000 unimp
80002154: 0000 unimp
80002156: 0000 unimp
80002158: 0000 unimp
8000215a: 0000 unimp
8000215c: 0000 unimp
8000215e: 0000 unimp
80002160 <test_13_data>:
80002160: 0001 nop
80002162: 0000 unimp
80002164: 0000 unimp
80002166: 7ff0 flw fa2,124(a5)
80002168: 0000 unimp
8000216a: 0000 unimp
8000216c: 0000 unimp
8000216e: 0000 unimp
80002170: 0000 unimp
80002172: 0000 unimp
80002174: 0000 unimp
80002176: 0000 unimp
80002178: 0000 unimp
8000217a: 0000 unimp
8000217c: 0000 unimp
8000217e: 0000 unimp
80002180 <test_14_data>:
80002180: ffff 0xffff
80002182: ffff 0xffff
80002184: ffff 0xffff
80002186: 7fff 0x7fff
80002188: 0000 unimp
8000218a: 0000 unimp
8000218c: 0000 unimp
8000218e: 0000 unimp
80002190: 0000 unimp
80002192: 0000 unimp
80002194: 0000 unimp
80002196: 0000 unimp
80002198: 0000 unimp
8000219a: 0000 unimp
8000219c: 0000 unimp
8000219e: 0000 unimp
800021a0 <test_15_data>:
800021a0: ffff 0xffff
800021a2: ffff 0xffff
800021a4: ffff 0xffff
800021a6: 7fff 0x7fff
800021a8: ffff 0xffff
800021aa: ffff 0xffff
800021ac: ffff 0xffff
800021ae: 7fff 0x7fff
800021b0: 0000 unimp
800021b2: 0000 unimp
800021b4: 0000 unimp
800021b6: 0000 unimp
800021b8: 0000 unimp
800021ba: 0000 unimp
800021bc: 0000 unimp
800021be: 0000 unimp
800021c0 <test_16_data>:
800021c0: 0001 nop
800021c2: 0000 unimp
800021c4: 0000 unimp
800021c6: 7ff0 flw fa2,124(a5)
800021c8: 0000 unimp
800021ca: 0000 unimp
800021cc: 0000 unimp
800021ce: 0000 unimp
800021d0: 0000 unimp
800021d2: 0000 unimp
800021d4: 0000 unimp
800021d6: 0000 unimp
800021d8: 0000 unimp
800021da: 0000 unimp
800021dc: 0000 unimp
800021de: 0000 unimp

BIN
Tests/isa/rv32ud-p-fcvt Normal file

Binary file not shown.

View File

@@ -0,0 +1,286 @@
rv32ud-p-fcvt: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00002537 lui a0,0x2
800000ec: 30052073 csrs mstatus,a0
800000f0: 00305073 csrwi fcsr,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00200193 li gp,2
8000010c: 00002517 auipc a0,0x2
80000110: ef450513 addi a0,a0,-268 # 80002000 <test_2_data>
80000114: 00052683 lw a3,0(a0)
80000118: 00452703 lw a4,4(a0)
8000011c: 00200593 li a1,2
80000120: d2058053 fcvt.d.w ft0,a1
80000124: 00053027 fsd ft0,0(a0)
80000128: 00452583 lw a1,4(a0)
8000012c: 00052503 lw a0,0(a0)
80000130: 00101073 fsflags zero
80000134: 16d51263 bne a0,a3,80000298 <fail>
80000138: 16e59063 bne a1,a4,80000298 <fail>
8000013c <test_3>:
8000013c: 00300193 li gp,3
80000140: 00002517 auipc a0,0x2
80000144: ec850513 addi a0,a0,-312 # 80002008 <test_3_data>
80000148: 00052683 lw a3,0(a0)
8000014c: 00452703 lw a4,4(a0)
80000150: ffe00593 li a1,-2
80000154: d2058053 fcvt.d.w ft0,a1
80000158: 00053027 fsd ft0,0(a0)
8000015c: 00452583 lw a1,4(a0)
80000160: 00052503 lw a0,0(a0)
80000164: 00101073 fsflags zero
80000168: 12d51863 bne a0,a3,80000298 <fail>
8000016c: 12e59663 bne a1,a4,80000298 <fail>
80000170 <test_4>:
80000170: 00400193 li gp,4
80000174: 00002517 auipc a0,0x2
80000178: e9c50513 addi a0,a0,-356 # 80002010 <test_4_data>
8000017c: 00052683 lw a3,0(a0)
80000180: 00452703 lw a4,4(a0)
80000184: 00200593 li a1,2
80000188: d2158053 fcvt.d.wu ft0,a1
8000018c: 00053027 fsd ft0,0(a0)
80000190: 00452583 lw a1,4(a0)
80000194: 00052503 lw a0,0(a0)
80000198: 00101073 fsflags zero
8000019c: 0ed51e63 bne a0,a3,80000298 <fail>
800001a0: 0ee59c63 bne a1,a4,80000298 <fail>
800001a4 <test_5>:
800001a4: 00500193 li gp,5
800001a8: 00002517 auipc a0,0x2
800001ac: e7050513 addi a0,a0,-400 # 80002018 <test_5_data>
800001b0: 00052683 lw a3,0(a0)
800001b4: 00452703 lw a4,4(a0)
800001b8: ffe00593 li a1,-2
800001bc: d2158053 fcvt.d.wu ft0,a1
800001c0: 00053027 fsd ft0,0(a0)
800001c4: 00452583 lw a1,4(a0)
800001c8: 00052503 lw a0,0(a0)
800001cc: 00101073 fsflags zero
800001d0: 0cd51463 bne a0,a3,80000298 <fail>
800001d4: 0ce59263 bne a1,a4,80000298 <fail>
800001d8 <test_10>:
800001d8: 00a00193 li gp,10
800001dc: 00002517 auipc a0,0x2
800001e0: e4450513 addi a0,a0,-444 # 80002020 <test_10_data>
800001e4: 00053007 fld ft0,0(a0)
800001e8: 00853087 fld ft1,8(a0)
800001ec: 01053107 fld ft2,16(a0)
800001f0: 01852683 lw a3,24(a0)
800001f4: 01c52303 lw t1,28(a0)
800001f8: 401071d3 fcvt.s.d ft3,ft0
800001fc: 420181d3 fcvt.d.s ft3,ft3
80000200: 00353027 fsd ft3,0(a0)
80000204: 00452383 lw t2,4(a0)
80000208: 00052503 lw a0,0(a0)
8000020c: 001015f3 fsflags a1,zero
80000210: 00000613 li a2,0
80000214: 08d51263 bne a0,a3,80000298 <fail>
80000218: 08731063 bne t1,t2,80000298 <fail>
8000021c: 06c59e63 bne a1,a2,80000298 <fail>
80000220 <test_11>:
80000220: 00b00193 li gp,11
80000224: 00002517 auipc a0,0x2
80000228: e1c50513 addi a0,a0,-484 # 80002040 <test_11_data>
8000022c: 00052007 flw ft0,0(a0)
80000230: 00452087 flw ft1,4(a0)
80000234: 00852107 flw ft2,8(a0)
80000238: 00c52683 lw a3,12(a0)
8000023c: 420001d3 fcvt.d.s ft3,ft0
80000240: 4011f1d3 fcvt.s.d ft3,ft3
80000244: e0018553 fmv.x.w a0,ft3
80000248: 001015f3 fsflags a1,zero
8000024c: 00000613 li a2,0
80000250: 04d51463 bne a0,a3,80000298 <fail>
80000254: 04c59263 bne a1,a2,80000298 <fail>
80000258 <test_12>:
80000258: 00002597 auipc a1,0x2
8000025c: e0858593 addi a1,a1,-504 # 80002060 <begin_signature>
80000260: 0005b107 fld ft2,0(a1)
80000264: 40117153 fcvt.s.d ft2,ft2
80000268: 42010153 fcvt.d.s ft2,ft2
8000026c: 0025b027 fsd ft2,0(a1)
80000270: 0005a503 lw a0,0(a1)
80000274: 0045a583 lw a1,4(a1)
80000278: 00002f97 auipc t6,0x2
8000027c: dd8f8f93 addi t6,t6,-552 # 80002050 <test_12_data>
80000280: 000fae83 lw t4,0(t6)
80000284: 004faf83 lw t6,4(t6)
80000288: 00c00193 li gp,12
8000028c: 01d51663 bne a0,t4,80000298 <fail>
80000290: 01f59463 bne a1,t6,80000298 <fail>
80000294: 00301c63 bne zero,gp,800002ac <pass>
80000298 <fail>:
80000298: 0ff0000f fence
8000029c: 00018063 beqz gp,8000029c <fail+0x4>
800002a0: 00119193 slli gp,gp,0x1
800002a4: 0011e193 ori gp,gp,1
800002a8: 00000073 ecall
800002ac <pass>:
800002ac: 0ff0000f fence
800002b0: 00100193 li gp,1
800002b4: 00000073 ecall
800002b8: c0001073 unimp
800002bc: 0000 unimp
800002be: 0000 unimp
800002c0: 0000 unimp
800002c2: 0000 unimp
Disassembly of section .data:
80002000 <test_2_data>:
80002000: 0000 unimp
80002002: 0000 unimp
80002004: 0000 unimp
80002006: 4000 lw s0,0(s0)
80002008 <test_3_data>:
80002008: 0000 unimp
8000200a: 0000 unimp
8000200c: 0000 unimp
8000200e: c000 sw s0,0(s0)
80002010 <test_4_data>:
80002010: 0000 unimp
80002012: 0000 unimp
80002014: 0000 unimp
80002016: 4000 lw s0,0(s0)
80002018 <test_5_data>:
80002018: 0000 unimp
8000201a: ffc0 fsw fs0,60(a5)
8000201c: ffff 0xffff
8000201e: jal gp,8000601e <_end+0x3fae>
80002020 <test_10_data>:
80002020: 0000 unimp
80002022: 0000 unimp
80002024: 0000 unimp
80002026: bff8 fsd fa4,248(a5)
80002028: 0000 unimp
8000202a: 0000 unimp
8000202c: 0000 unimp
8000202e: 0000 unimp
80002030: 0000 unimp
80002032: 0000 unimp
80002034: 0000 unimp
80002036: 0000 unimp
80002038: 0000 unimp
8000203a: 0000 unimp
8000203c: 0000 unimp
8000203e: bff8 fsd fa4,248(a5)
80002040 <test_11_data>:
80002040: 0000 unimp
80002042: bfc0 fsd fs0,184(a5)
80002044: 0000 unimp
80002046: 0000 unimp
80002048: 0000 unimp
8000204a: 0000 unimp
8000204c: 0000 unimp
8000204e: bfc0 fsd fs0,184(a5)
80002050 <test_12_data>:
80002050: 0000 unimp
80002052: 0000 unimp
80002054: 0000 unimp
80002056: 7ff8 flw fa4,124(a5)
80002058: 0000 unimp
8000205a: 0000 unimp
8000205c: 0000 unimp
8000205e: 0000 unimp
80002060 <begin_signature>:
80002060: 8004 0x8004
80002062: ffff 0xffff
80002064: ffff 0xffff
80002066: 7ffc flw fa5,124(a5)
80002068: 0000 unimp
8000206a: 0000 unimp
8000206c: 0000 unimp
8000206e: 0000 unimp

BIN
Tests/isa/rv32ud-p-fcvt_w Normal file

Binary file not shown.

View File

@@ -0,0 +1,604 @@
rv32ud-p-fcvt_w: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00002537 lui a0,0x2
800000ec: 30052073 csrs mstatus,a0
800000f0: 00305073 csrwi fcsr,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00200193 li gp,2
8000010c: 00002517 auipc a0,0x2
80000110: ef450513 addi a0,a0,-268 # 80002000 <test_2_data>
80000114: 00052007 flw ft0,0(a0)
80000118: 00452087 flw ft1,4(a0)
8000011c: 00852107 flw ft2,8(a0)
80000120: 00c52683 lw a3,12(a0)
80000124: c0001553 fcvt.w.s a0,ft0,rtz
80000128: 001015f3 fsflags a1,zero
8000012c: 00100613 li a2,1
80000130: 3cd51463 bne a0,a3,800004f8 <fail>
80000134: 3cc59263 bne a1,a2,800004f8 <fail>
80000138 <test_3>:
80000138: 00300193 li gp,3
8000013c: 00002517 auipc a0,0x2
80000140: ed450513 addi a0,a0,-300 # 80002010 <test_3_data>
80000144: 00052007 flw ft0,0(a0)
80000148: 00452087 flw ft1,4(a0)
8000014c: 00852107 flw ft2,8(a0)
80000150: 00c52683 lw a3,12(a0)
80000154: c0001553 fcvt.w.s a0,ft0,rtz
80000158: 001015f3 fsflags a1,zero
8000015c: 00000613 li a2,0
80000160: 38d51c63 bne a0,a3,800004f8 <fail>
80000164: 38c59a63 bne a1,a2,800004f8 <fail>
80000168 <test_4>:
80000168: 00400193 li gp,4
8000016c: 00002517 auipc a0,0x2
80000170: eb450513 addi a0,a0,-332 # 80002020 <test_4_data>
80000174: 00052007 flw ft0,0(a0)
80000178: 00452087 flw ft1,4(a0)
8000017c: 00852107 flw ft2,8(a0)
80000180: 00c52683 lw a3,12(a0)
80000184: c0001553 fcvt.w.s a0,ft0,rtz
80000188: 001015f3 fsflags a1,zero
8000018c: 00100613 li a2,1
80000190: 36d51463 bne a0,a3,800004f8 <fail>
80000194: 36c59263 bne a1,a2,800004f8 <fail>
80000198 <test_5>:
80000198: 00500193 li gp,5
8000019c: 00002517 auipc a0,0x2
800001a0: e9450513 addi a0,a0,-364 # 80002030 <test_5_data>
800001a4: 00052007 flw ft0,0(a0)
800001a8: 00452087 flw ft1,4(a0)
800001ac: 00852107 flw ft2,8(a0)
800001b0: 00c52683 lw a3,12(a0)
800001b4: c0001553 fcvt.w.s a0,ft0,rtz
800001b8: 001015f3 fsflags a1,zero
800001bc: 00100613 li a2,1
800001c0: 32d51c63 bne a0,a3,800004f8 <fail>
800001c4: 32c59a63 bne a1,a2,800004f8 <fail>
800001c8 <test_6>:
800001c8: 00600193 li gp,6
800001cc: 00002517 auipc a0,0x2
800001d0: e7450513 addi a0,a0,-396 # 80002040 <test_6_data>
800001d4: 00052007 flw ft0,0(a0)
800001d8: 00452087 flw ft1,4(a0)
800001dc: 00852107 flw ft2,8(a0)
800001e0: 00c52683 lw a3,12(a0)
800001e4: c0001553 fcvt.w.s a0,ft0,rtz
800001e8: 001015f3 fsflags a1,zero
800001ec: 00000613 li a2,0
800001f0: 30d51463 bne a0,a3,800004f8 <fail>
800001f4: 30c59263 bne a1,a2,800004f8 <fail>
800001f8 <test_7>:
800001f8: 00700193 li gp,7
800001fc: 00002517 auipc a0,0x2
80000200: e5450513 addi a0,a0,-428 # 80002050 <test_7_data>
80000204: 00052007 flw ft0,0(a0)
80000208: 00452087 flw ft1,4(a0)
8000020c: 00852107 flw ft2,8(a0)
80000210: 00c52683 lw a3,12(a0)
80000214: c0001553 fcvt.w.s a0,ft0,rtz
80000218: 001015f3 fsflags a1,zero
8000021c: 00100613 li a2,1
80000220: 2cd51c63 bne a0,a3,800004f8 <fail>
80000224: 2cc59a63 bne a1,a2,800004f8 <fail>
80000228 <test_8>:
80000228: 00800193 li gp,8
8000022c: 00002517 auipc a0,0x2
80000230: e3450513 addi a0,a0,-460 # 80002060 <test_8_data>
80000234: 00052007 flw ft0,0(a0)
80000238: 00452087 flw ft1,4(a0)
8000023c: 00852107 flw ft2,8(a0)
80000240: 00c52683 lw a3,12(a0)
80000244: c0001553 fcvt.w.s a0,ft0,rtz
80000248: 001015f3 fsflags a1,zero
8000024c: 01000613 li a2,16
80000250: 2ad51463 bne a0,a3,800004f8 <fail>
80000254: 2ac59263 bne a1,a2,800004f8 <fail>
80000258 <test_9>:
80000258: 00900193 li gp,9
8000025c: 00002517 auipc a0,0x2
80000260: e1450513 addi a0,a0,-492 # 80002070 <test_9_data>
80000264: 00052007 flw ft0,0(a0)
80000268: 00452087 flw ft1,4(a0)
8000026c: 00852107 flw ft2,8(a0)
80000270: 00c52683 lw a3,12(a0)
80000274: c0001553 fcvt.w.s a0,ft0,rtz
80000278: 001015f3 fsflags a1,zero
8000027c: 01000613 li a2,16
80000280: 26d51c63 bne a0,a3,800004f8 <fail>
80000284: 26c59a63 bne a1,a2,800004f8 <fail>
80000288 <test_12>:
80000288: 00c00193 li gp,12
8000028c: 00002517 auipc a0,0x2
80000290: df450513 addi a0,a0,-524 # 80002080 <test_12_data>
80000294: 00052007 flw ft0,0(a0)
80000298: 00452087 flw ft1,4(a0)
8000029c: 00852107 flw ft2,8(a0)
800002a0: 00c52683 lw a3,12(a0)
800002a4: c0101553 fcvt.wu.s a0,ft0,rtz
800002a8: 001015f3 fsflags a1,zero
800002ac: 01000613 li a2,16
800002b0: 24d51463 bne a0,a3,800004f8 <fail>
800002b4: 24c59263 bne a1,a2,800004f8 <fail>
800002b8 <test_13>:
800002b8: 00d00193 li gp,13
800002bc: 00002517 auipc a0,0x2
800002c0: dd450513 addi a0,a0,-556 # 80002090 <test_13_data>
800002c4: 00052007 flw ft0,0(a0)
800002c8: 00452087 flw ft1,4(a0)
800002cc: 00852107 flw ft2,8(a0)
800002d0: 00c52683 lw a3,12(a0)
800002d4: c0101553 fcvt.wu.s a0,ft0,rtz
800002d8: 001015f3 fsflags a1,zero
800002dc: 01000613 li a2,16
800002e0: 20d51c63 bne a0,a3,800004f8 <fail>
800002e4: 20c59a63 bne a1,a2,800004f8 <fail>
800002e8 <test_14>:
800002e8: 00e00193 li gp,14
800002ec: 00002517 auipc a0,0x2
800002f0: db450513 addi a0,a0,-588 # 800020a0 <test_14_data>
800002f4: 00052007 flw ft0,0(a0)
800002f8: 00452087 flw ft1,4(a0)
800002fc: 00852107 flw ft2,8(a0)
80000300: 00c52683 lw a3,12(a0)
80000304: c0101553 fcvt.wu.s a0,ft0,rtz
80000308: 001015f3 fsflags a1,zero
8000030c: 00100613 li a2,1
80000310: 1ed51463 bne a0,a3,800004f8 <fail>
80000314: 1ec59263 bne a1,a2,800004f8 <fail>
80000318 <test_15>:
80000318: 00f00193 li gp,15
8000031c: 00002517 auipc a0,0x2
80000320: d9450513 addi a0,a0,-620 # 800020b0 <test_15_data>
80000324: 00052007 flw ft0,0(a0)
80000328: 00452087 flw ft1,4(a0)
8000032c: 00852107 flw ft2,8(a0)
80000330: 00c52683 lw a3,12(a0)
80000334: c0101553 fcvt.wu.s a0,ft0,rtz
80000338: 001015f3 fsflags a1,zero
8000033c: 00100613 li a2,1
80000340: 1ad51c63 bne a0,a3,800004f8 <fail>
80000344: 1ac59a63 bne a1,a2,800004f8 <fail>
80000348 <test_16>:
80000348: 01000193 li gp,16
8000034c: 00002517 auipc a0,0x2
80000350: d7450513 addi a0,a0,-652 # 800020c0 <test_16_data>
80000354: 00052007 flw ft0,0(a0)
80000358: 00452087 flw ft1,4(a0)
8000035c: 00852107 flw ft2,8(a0)
80000360: 00c52683 lw a3,12(a0)
80000364: c0101553 fcvt.wu.s a0,ft0,rtz
80000368: 001015f3 fsflags a1,zero
8000036c: 00000613 li a2,0
80000370: 18d51463 bne a0,a3,800004f8 <fail>
80000374: 18c59263 bne a1,a2,800004f8 <fail>
80000378 <test_17>:
80000378: 01100193 li gp,17
8000037c: 00002517 auipc a0,0x2
80000380: d5450513 addi a0,a0,-684 # 800020d0 <test_17_data>
80000384: 00052007 flw ft0,0(a0)
80000388: 00452087 flw ft1,4(a0)
8000038c: 00852107 flw ft2,8(a0)
80000390: 00c52683 lw a3,12(a0)
80000394: c0101553 fcvt.wu.s a0,ft0,rtz
80000398: 001015f3 fsflags a1,zero
8000039c: 00100613 li a2,1
800003a0: 14d51c63 bne a0,a3,800004f8 <fail>
800003a4: 14c59a63 bne a1,a2,800004f8 <fail>
800003a8 <test_18>:
800003a8: 01200193 li gp,18
800003ac: 00002517 auipc a0,0x2
800003b0: d3450513 addi a0,a0,-716 # 800020e0 <test_18_data>
800003b4: 00052007 flw ft0,0(a0)
800003b8: 00452087 flw ft1,4(a0)
800003bc: 00852107 flw ft2,8(a0)
800003c0: 00c52683 lw a3,12(a0)
800003c4: c0101553 fcvt.wu.s a0,ft0,rtz
800003c8: 001015f3 fsflags a1,zero
800003cc: 01000613 li a2,16
800003d0: 12d51463 bne a0,a3,800004f8 <fail>
800003d4: 12c59263 bne a1,a2,800004f8 <fail>
800003d8 <test_19>:
800003d8: 01300193 li gp,19
800003dc: 00002517 auipc a0,0x2
800003e0: d1450513 addi a0,a0,-748 # 800020f0 <test_19_data>
800003e4: 00052007 flw ft0,0(a0)
800003e8: 00452087 flw ft1,4(a0)
800003ec: 00852107 flw ft2,8(a0)
800003f0: 00c52683 lw a3,12(a0)
800003f4: c0101553 fcvt.wu.s a0,ft0,rtz
800003f8: 001015f3 fsflags a1,zero
800003fc: 00000613 li a2,0
80000400: 0ed51c63 bne a0,a3,800004f8 <fail>
80000404: 0ec59a63 bne a1,a2,800004f8 <fail>
80000408 <test_42>:
80000408: 00002097 auipc ra,0x2
8000040c: cf808093 addi ra,ra,-776 # 80002100 <begin_signature>
80000410: 0000a087 flw ft1,0(ra)
80000414: c000f0d3 fcvt.w.s ra,ft1
80000418: 80000eb7 lui t4,0x80000
8000041c: fffe8e93 addi t4,t4,-1 # 7fffffff <_end+0xffffdecf>
80000420: 02a00193 li gp,42
80000424: 0dd09a63 bne ra,t4,800004f8 <fail>
80000428 <test_44>:
80000428: 00002097 auipc ra,0x2
8000042c: cd808093 addi ra,ra,-808 # 80002100 <begin_signature>
80000430: 0080a087 flw ft1,8(ra)
80000434: c000f0d3 fcvt.w.s ra,ft1
80000438: 80000eb7 lui t4,0x80000
8000043c: 02c00193 li gp,44
80000440: 0bd09c63 bne ra,t4,800004f8 <fail>
80000444 <test_52>:
80000444: 00002097 auipc ra,0x2
80000448: cbc08093 addi ra,ra,-836 # 80002100 <begin_signature>
8000044c: 0040a087 flw ft1,4(ra)
80000450: c000f0d3 fcvt.w.s ra,ft1
80000454: 80000eb7 lui t4,0x80000
80000458: fffe8e93 addi t4,t4,-1 # 7fffffff <_end+0xffffdecf>
8000045c: 03400193 li gp,52
80000460: 09d09c63 bne ra,t4,800004f8 <fail>
80000464 <test_54>:
80000464: 00002097 auipc ra,0x2
80000468: c9c08093 addi ra,ra,-868 # 80002100 <begin_signature>
8000046c: 00c0a087 flw ft1,12(ra)
80000470: c000f0d3 fcvt.w.s ra,ft1
80000474: 80000eb7 lui t4,0x80000
80000478: fffe8e93 addi t4,t4,-1 # 7fffffff <_end+0xffffdecf>
8000047c: 03600193 li gp,54
80000480: 07d09c63 bne ra,t4,800004f8 <fail>
80000484 <test_62>:
80000484: 00002097 auipc ra,0x2
80000488: c7c08093 addi ra,ra,-900 # 80002100 <begin_signature>
8000048c: 0000a087 flw ft1,0(ra)
80000490: c010f0d3 fcvt.wu.s ra,ft1
80000494: fff00e93 li t4,-1
80000498: 03e00193 li gp,62
8000049c: 05d09e63 bne ra,t4,800004f8 <fail>
800004a0 <test_63>:
800004a0: 00002097 auipc ra,0x2
800004a4: c6008093 addi ra,ra,-928 # 80002100 <begin_signature>
800004a8: 0040a087 flw ft1,4(ra)
800004ac: c010f0d3 fcvt.wu.s ra,ft1
800004b0: fff00e93 li t4,-1
800004b4: 03f00193 li gp,63
800004b8: 05d09063 bne ra,t4,800004f8 <fail>
800004bc <test_64>:
800004bc: 00002097 auipc ra,0x2
800004c0: c4408093 addi ra,ra,-956 # 80002100 <begin_signature>
800004c4: 0080a087 flw ft1,8(ra)
800004c8: c010f0d3 fcvt.wu.s ra,ft1
800004cc: 00000e93 li t4,0
800004d0: 04000193 li gp,64
800004d4: 03d09263 bne ra,t4,800004f8 <fail>
800004d8 <test_65>:
800004d8: 00002097 auipc ra,0x2
800004dc: c2808093 addi ra,ra,-984 # 80002100 <begin_signature>
800004e0: 00c0a087 flw ft1,12(ra)
800004e4: c010f0d3 fcvt.wu.s ra,ft1
800004e8: fff00e93 li t4,-1
800004ec: 04100193 li gp,65
800004f0: 01d09463 bne ra,t4,800004f8 <fail>
800004f4: 00301c63 bne zero,gp,8000050c <pass>
800004f8 <fail>:
800004f8: 0ff0000f fence
800004fc: 00018063 beqz gp,800004fc <fail+0x4>
80000500: 00119193 slli gp,gp,0x1
80000504: 0011e193 ori gp,gp,1
80000508: 00000073 ecall
8000050c <pass>:
8000050c: 0ff0000f fence
80000510: 00100193 li gp,1
80000514: 00000073 ecall
80000518: c0001073 unimp
8000051c: 0000 unimp
8000051e: 0000 unimp
80000520: 0000 unimp
80000522: 0000 unimp
80000524: 0000 unimp
80000526: 0000 unimp
80000528: 0000 unimp
8000052a: 0000 unimp
8000052c: 0000 unimp
8000052e: 0000 unimp
80000530: 0000 unimp
80000532: 0000 unimp
80000534: 0000 unimp
80000536: 0000 unimp
80000538: 0000 unimp
8000053a: 0000 unimp
8000053c: 0000 unimp
8000053e: 0000 unimp
80000540: 0000 unimp
80000542: 0000 unimp
Disassembly of section .data:
80002000 <test_2_data>:
80002000: cccd beqz s1,800020ba <test_15_data+0xa>
80002002: bf8c fsd fa1,56(a5)
80002004: 0000 unimp
80002006: 0000 unimp
80002008: 0000 unimp
8000200a: 0000 unimp
8000200c: ffff 0xffff
8000200e: ffff 0xffff
80002010 <test_3_data>:
80002010: 0000 unimp
80002012: bf80 fsd fs0,56(a5)
80002014: 0000 unimp
80002016: 0000 unimp
80002018: 0000 unimp
8000201a: 0000 unimp
8000201c: ffff 0xffff
8000201e: ffff 0xffff
80002020 <test_4_data>:
80002020: 6666 flw fa2,88(sp)
80002022: bf66 fsd fs9,440(sp)
80002024: 0000 unimp
80002026: 0000 unimp
80002028: 0000 unimp
8000202a: 0000 unimp
8000202c: 0000 unimp
8000202e: 0000 unimp
80002030 <test_5_data>:
80002030: 6666 flw fa2,88(sp)
80002032: 3f66 fld ft10,120(sp)
80002034: 0000 unimp
80002036: 0000 unimp
80002038: 0000 unimp
8000203a: 0000 unimp
8000203c: 0000 unimp
8000203e: 0000 unimp
80002040 <test_6_data>:
80002040: 0000 unimp
80002042: 3f80 fld fs0,56(a5)
80002044: 0000 unimp
80002046: 0000 unimp
80002048: 0000 unimp
8000204a: 0000 unimp
8000204c: 0001 nop
8000204e: 0000 unimp
80002050 <test_7_data>:
80002050: cccd beqz s1,8000210a <begin_signature+0xa>
80002052: 3f8c fld fa1,56(a5)
80002054: 0000 unimp
80002056: 0000 unimp
80002058: 0000 unimp
8000205a: 0000 unimp
8000205c: 0001 nop
8000205e: 0000 unimp
80002060 <test_8_data>:
80002060: d05e sw s7,32(sp)
80002062: cf32 sw a2,156(sp)
80002064: 0000 unimp
80002066: 0000 unimp
80002068: 0000 unimp
8000206a: 0000 unimp
8000206c: 0000 unimp
8000206e: 8000 0x8000
80002070 <test_9_data>:
80002070: d05e sw s7,32(sp)
80002072: 4f32 lw t5,12(sp)
80002074: 0000 unimp
80002076: 0000 unimp
80002078: 0000 unimp
8000207a: 0000 unimp
8000207c: ffff 0xffff
8000207e: 7fff 0x7fff
80002080 <test_12_data>:
80002080: 0000 unimp
80002082: c040 sw s0,4(s0)
80002084: 0000 unimp
80002086: 0000 unimp
80002088: 0000 unimp
8000208a: 0000 unimp
8000208c: 0000 unimp
8000208e: 0000 unimp
80002090 <test_13_data>:
80002090: 0000 unimp
80002092: bf80 fsd fs0,56(a5)
80002094: 0000 unimp
80002096: 0000 unimp
80002098: 0000 unimp
8000209a: 0000 unimp
8000209c: 0000 unimp
8000209e: 0000 unimp
800020a0 <test_14_data>:
800020a0: 6666 flw fa2,88(sp)
800020a2: bf66 fsd fs9,440(sp)
800020a4: 0000 unimp
800020a6: 0000 unimp
800020a8: 0000 unimp
800020aa: 0000 unimp
800020ac: 0000 unimp
800020ae: 0000 unimp
800020b0 <test_15_data>:
800020b0: 6666 flw fa2,88(sp)
800020b2: 3f66 fld ft10,120(sp)
800020b4: 0000 unimp
800020b6: 0000 unimp
800020b8: 0000 unimp
800020ba: 0000 unimp
800020bc: 0000 unimp
800020be: 0000 unimp
800020c0 <test_16_data>:
800020c0: 0000 unimp
800020c2: 3f80 fld fs0,56(a5)
800020c4: 0000 unimp
800020c6: 0000 unimp
800020c8: 0000 unimp
800020ca: 0000 unimp
800020cc: 0001 nop
800020ce: 0000 unimp
800020d0 <test_17_data>:
800020d0: cccd beqz s1,8000218a <_end+0x5a>
800020d2: 3f8c fld fa1,56(a5)
800020d4: 0000 unimp
800020d6: 0000 unimp
800020d8: 0000 unimp
800020da: 0000 unimp
800020dc: 0001 nop
800020de: 0000 unimp
800020e0 <test_18_data>:
800020e0: d05e sw s7,32(sp)
800020e2: cf32 sw a2,156(sp)
800020e4: 0000 unimp
800020e6: 0000 unimp
800020e8: 0000 unimp
800020ea: 0000 unimp
800020ec: 0000 unimp
800020ee: 0000 unimp
800020f0 <test_19_data>:
800020f0: d05e sw s7,32(sp)
800020f2: 4f32 lw t5,12(sp)
800020f4: 0000 unimp
800020f6: 0000 unimp
800020f8: 0000 unimp
800020fa: 0000 unimp
800020fc: 5e00 lw s0,56(a2)
800020fe: b2d0 fsd fa2,160(a3)
80002100 <begin_signature>:
80002100: ffff 0xffff
80002102: ffff 0xffff
80002104: ffff 0xffff
80002106: 7fff 0x7fff
80002108: 0000 unimp
8000210a: ff80 fsw fs0,56(a5)
8000210c: 0000 unimp
8000210e: 7f80 flw fs0,56(a5)
80002110 <tdat_d>:
80002110: ffff 0xffff
80002112: ffff 0xffff
80002114: ffff 0xffff
80002116: ffff 0xffff
80002118: ffff 0xffff
8000211a: ffff 0xffff
8000211c: ffff 0xffff
8000211e: 7fff 0x7fff
80002120: 0000 unimp
80002122: 0000 unimp
80002124: 0000 unimp
80002126: fff0 fsw fa2,124(a5)
80002128: 0000 unimp
8000212a: 0000 unimp
8000212c: 0000 unimp
8000212e: 7ff0 flw fa2,124(a5)

BIN
Tests/isa/rv32ud-p-fdiv Normal file

Binary file not shown.

View File

@@ -0,0 +1,407 @@
rv32ud-p-fdiv: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00002537 lui a0,0x2
800000ec: 30052073 csrs mstatus,a0
800000f0: 00305073 csrwi fcsr,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00200193 li gp,2
8000010c: 00002517 auipc a0,0x2
80000110: ef450513 addi a0,a0,-268 # 80002000 <test_2_data>
80000114: 00053007 fld ft0,0(a0)
80000118: 00853087 fld ft1,8(a0)
8000011c: 01053107 fld ft2,16(a0)
80000120: 01852683 lw a3,24(a0)
80000124: 01c52303 lw t1,28(a0)
80000128: 1a1071d3 fdiv.d ft3,ft0,ft1
8000012c: 00353027 fsd ft3,0(a0)
80000130: 00452383 lw t2,4(a0)
80000134: 00052503 lw a0,0(a0)
80000138: 001015f3 fsflags a1,zero
8000013c: 00100613 li a2,1
80000140: 1ed51663 bne a0,a3,8000032c <fail>
80000144: 1e731463 bne t1,t2,8000032c <fail>
80000148: 1ec59263 bne a1,a2,8000032c <fail>
8000014c <test_3>:
8000014c: 00300193 li gp,3
80000150: 00002517 auipc a0,0x2
80000154: ed050513 addi a0,a0,-304 # 80002020 <test_3_data>
80000158: 00053007 fld ft0,0(a0)
8000015c: 00853087 fld ft1,8(a0)
80000160: 01053107 fld ft2,16(a0)
80000164: 01852683 lw a3,24(a0)
80000168: 01c52303 lw t1,28(a0)
8000016c: 1a1071d3 fdiv.d ft3,ft0,ft1
80000170: 00353027 fsd ft3,0(a0)
80000174: 00452383 lw t2,4(a0)
80000178: 00052503 lw a0,0(a0)
8000017c: 001015f3 fsflags a1,zero
80000180: 00100613 li a2,1
80000184: 1ad51463 bne a0,a3,8000032c <fail>
80000188: 1a731263 bne t1,t2,8000032c <fail>
8000018c: 1ac59063 bne a1,a2,8000032c <fail>
80000190 <test_4>:
80000190: 00400193 li gp,4
80000194: 00002517 auipc a0,0x2
80000198: eac50513 addi a0,a0,-340 # 80002040 <test_4_data>
8000019c: 00053007 fld ft0,0(a0)
800001a0: 00853087 fld ft1,8(a0)
800001a4: 01053107 fld ft2,16(a0)
800001a8: 01852683 lw a3,24(a0)
800001ac: 01c52303 lw t1,28(a0)
800001b0: 1a1071d3 fdiv.d ft3,ft0,ft1
800001b4: 00353027 fsd ft3,0(a0)
800001b8: 00452383 lw t2,4(a0)
800001bc: 00052503 lw a0,0(a0)
800001c0: 001015f3 fsflags a1,zero
800001c4: 00000613 li a2,0
800001c8: 16d51263 bne a0,a3,8000032c <fail>
800001cc: 16731063 bne t1,t2,8000032c <fail>
800001d0: 14c59e63 bne a1,a2,8000032c <fail>
800001d4 <test_5>:
800001d4: 00500193 li gp,5
800001d8: 00002517 auipc a0,0x2
800001dc: e8850513 addi a0,a0,-376 # 80002060 <test_5_data>
800001e0: 00053007 fld ft0,0(a0)
800001e4: 00853087 fld ft1,8(a0)
800001e8: 01053107 fld ft2,16(a0)
800001ec: 01852683 lw a3,24(a0)
800001f0: 01c52303 lw t1,28(a0)
800001f4: 5a0071d3 fsqrt.d ft3,ft0
800001f8: 00353027 fsd ft3,0(a0)
800001fc: 00452383 lw t2,4(a0)
80000200: 00052503 lw a0,0(a0)
80000204: 001015f3 fsflags a1,zero
80000208: 00100613 li a2,1
8000020c: 12d51063 bne a0,a3,8000032c <fail>
80000210: 10731e63 bne t1,t2,8000032c <fail>
80000214: 10c59c63 bne a1,a2,8000032c <fail>
80000218 <test_6>:
80000218: 00600193 li gp,6
8000021c: 00002517 auipc a0,0x2
80000220: e6450513 addi a0,a0,-412 # 80002080 <test_6_data>
80000224: 00053007 fld ft0,0(a0)
80000228: 00853087 fld ft1,8(a0)
8000022c: 01053107 fld ft2,16(a0)
80000230: 01852683 lw a3,24(a0)
80000234: 01c52303 lw t1,28(a0)
80000238: 5a0071d3 fsqrt.d ft3,ft0
8000023c: 00353027 fsd ft3,0(a0)
80000240: 00452383 lw t2,4(a0)
80000244: 00052503 lw a0,0(a0)
80000248: 001015f3 fsflags a1,zero
8000024c: 00000613 li a2,0
80000250: 0cd51e63 bne a0,a3,8000032c <fail>
80000254: 0c731c63 bne t1,t2,8000032c <fail>
80000258: 0cc59a63 bne a1,a2,8000032c <fail>
8000025c <test_16>:
8000025c: 01000193 li gp,16
80000260: 00002517 auipc a0,0x2
80000264: e4050513 addi a0,a0,-448 # 800020a0 <test_16_data>
80000268: 00053007 fld ft0,0(a0)
8000026c: 00853087 fld ft1,8(a0)
80000270: 01053107 fld ft2,16(a0)
80000274: 01852683 lw a3,24(a0)
80000278: 01c52303 lw t1,28(a0)
8000027c: 5a0071d3 fsqrt.d ft3,ft0
80000280: 00353027 fsd ft3,0(a0)
80000284: 00452383 lw t2,4(a0)
80000288: 00052503 lw a0,0(a0)
8000028c: 001015f3 fsflags a1,zero
80000290: 01000613 li a2,16
80000294: 08d51c63 bne a0,a3,8000032c <fail>
80000298: 08731a63 bne t1,t2,8000032c <fail>
8000029c: 08c59863 bne a1,a2,8000032c <fail>
800002a0 <test_7>:
800002a0: 00700193 li gp,7
800002a4: 00002517 auipc a0,0x2
800002a8: e1c50513 addi a0,a0,-484 # 800020c0 <test_7_data>
800002ac: 00053007 fld ft0,0(a0)
800002b0: 00853087 fld ft1,8(a0)
800002b4: 01053107 fld ft2,16(a0)
800002b8: 01852683 lw a3,24(a0)
800002bc: 01c52303 lw t1,28(a0)
800002c0: 5a0071d3 fsqrt.d ft3,ft0
800002c4: 00353027 fsd ft3,0(a0)
800002c8: 00452383 lw t2,4(a0)
800002cc: 00052503 lw a0,0(a0)
800002d0: 001015f3 fsflags a1,zero
800002d4: 00100613 li a2,1
800002d8: 04d51a63 bne a0,a3,8000032c <fail>
800002dc: 04731863 bne t1,t2,8000032c <fail>
800002e0: 04c59663 bne a1,a2,8000032c <fail>
800002e4 <test_8>:
800002e4: 00800193 li gp,8
800002e8: 00002517 auipc a0,0x2
800002ec: df850513 addi a0,a0,-520 # 800020e0 <test_8_data>
800002f0: 00053007 fld ft0,0(a0)
800002f4: 00853087 fld ft1,8(a0)
800002f8: 01053107 fld ft2,16(a0)
800002fc: 01852683 lw a3,24(a0)
80000300: 01c52303 lw t1,28(a0)
80000304: 5a0071d3 fsqrt.d ft3,ft0
80000308: 00353027 fsd ft3,0(a0)
8000030c: 00452383 lw t2,4(a0)
80000310: 00052503 lw a0,0(a0)
80000314: 001015f3 fsflags a1,zero
80000318: 00100613 li a2,1
8000031c: 00d51863 bne a0,a3,8000032c <fail>
80000320: 00731663 bne t1,t2,8000032c <fail>
80000324: 00c59463 bne a1,a2,8000032c <fail>
80000328: 00301c63 bne zero,gp,80000340 <pass>
8000032c <fail>:
8000032c: 0ff0000f fence
80000330: 00018063 beqz gp,80000330 <fail+0x4>
80000334: 00119193 slli gp,gp,0x1
80000338: 0011e193 ori gp,gp,1
8000033c: 00000073 ecall
80000340 <pass>:
80000340: 0ff0000f fence
80000344: 00100193 li gp,1
80000348: 00000073 ecall
8000034c: c0001073 unimp
80000350: 0000 unimp
80000352: 0000 unimp
80000354: 0000 unimp
80000356: 0000 unimp
80000358: 0000 unimp
8000035a: 0000 unimp
8000035c: 0000 unimp
8000035e: 0000 unimp
80000360: 0000 unimp
80000362: 0000 unimp
80000364: 0000 unimp
80000366: 0000 unimp
80000368: 0000 unimp
8000036a: 0000 unimp
8000036c: 0000 unimp
8000036e: 0000 unimp
80000370: 0000 unimp
80000372: 0000 unimp
80000374: 0000 unimp
80000376: 0000 unimp
80000378: 0000 unimp
8000037a: 0000 unimp
8000037c: 0000 unimp
8000037e: 0000 unimp
80000380: 0000 unimp
80000382: 0000 unimp
Disassembly of section .data:
80002000 <test_2_data>:
80002000: d4f1 beqz s1,80001fcc <fromhost+0xf8c>
80002002: 53c8 lw a0,36(a5)
80002004: 400921fb 0x400921fb
80002008: b0dd j 800018ee <fromhost+0x8ae>
8000200a: 89f1 andi a1,a1,28
8000200c: bf0a fsd ft2,440(sp)
8000200e: 4005 c.li zero,1
80002010: 0000 unimp
80002012: 0000 unimp
80002014: 0000 unimp
80002016: 0000 unimp
80002018: 83ec 0x83ec
8000201a: 7ddbf6c3 0x7ddbf6c3
8000201e: 3ff2 fld ft11,312(sp)
80002020 <test_3_data>:
80002020: 0000 unimp
80002022: 0000 unimp
80002024: 4800 lw s0,16(s0)
80002026: 6666c093 xori ra,a3,1638
8000202a: 6666 flw fa2,88(sp)
8000202c: 4c66 lw s8,88(sp)
8000202e: 00004093 xori ra,zero,0
80002032: 0000 unimp
80002034: 0000 unimp
80002036: 0000 unimp
80002038: 29a5 jal 800024b0 <_end+0x3b0>
8000203a: 3e19 jal 80001b50 <fromhost+0xb10>
8000203c: f8b4 fsw fa3,112(s1)
8000203e: jal t6,7ff1dd8c <_start-0xe2274>
80002040 <test_4_data>:
80002040: d4f1 beqz s1,8000200c <test_2_data+0xc>
80002042: 53c8 lw a0,36(a5)
80002044: 400921fb 0x400921fb
80002048: 0000 unimp
8000204a: 0000 unimp
8000204c: 0000 unimp
8000204e: 3ff0 fld fa2,248(a5)
80002050: 0000 unimp
80002052: 0000 unimp
80002054: 0000 unimp
80002056: 0000 unimp
80002058: d4f1 beqz s1,80002024 <test_3_data+0x4>
8000205a: 53c8 lw a0,36(a5)
8000205c: 400921fb 0x400921fb
80002060 <test_5_data>:
80002060: d4f1 beqz s1,8000202c <test_3_data+0xc>
80002062: 53c8 lw a0,36(a5)
80002064: 400921fb 0x400921fb
80002068: 0000 unimp
8000206a: 0000 unimp
8000206c: 0000 unimp
8000206e: 0000 unimp
80002070: 0000 unimp
80002072: 0000 unimp
80002074: 0000 unimp
80002076: 0000 unimp
80002078: 916f587b 0x916f587b
8000207c: 5bf8 lw a4,116(a5)
8000207e: 3ffc fld fa5,248(a5)
80002080 <test_6_data>:
80002080: 0000 unimp
80002082: 0000 unimp
80002084: 8800 0x8800
80002086: 000040c3 fmadd.s ft1,ft0,ft0,ft0,rmm
8000208a: 0000 unimp
8000208c: 0000 unimp
8000208e: 0000 unimp
80002090: 0000 unimp
80002092: 0000 unimp
80002094: 0000 unimp
80002096: 0000 unimp
80002098: 0000 unimp
8000209a: 0000 unimp
8000209c: 0000 unimp
8000209e: 4059 c.li zero,22
800020a0 <test_16_data>:
800020a0: 0000 unimp
800020a2: 0000 unimp
800020a4: 0000 unimp
800020a6: bff0 fsd fa2,248(a5)
800020a8: 0000 unimp
800020aa: 0000 unimp
800020ac: 0000 unimp
800020ae: 0000 unimp
800020b0: 0000 unimp
800020b2: 0000 unimp
800020b4: 0000 unimp
800020b6: 0000 unimp
800020b8: 0000 unimp
800020ba: 0000 unimp
800020bc: 0000 unimp
800020be: 7ff8 flw fa4,124(a5)
800020c0 <test_7_data>:
800020c0: 0000 unimp
800020c2: 0000 unimp
800020c4: 6000 flw fs0,0(s0)
800020c6: 4065 c.li zero,25
800020c8: 0000 unimp
800020ca: 0000 unimp
800020cc: 0000 unimp
800020ce: 0000 unimp
800020d0: 0000 unimp
800020d2: 0000 unimp
800020d4: 0000 unimp
800020d6: 0000 unimp
800020d8: 74f5 lui s1,0xffffd
800020da: ce96 sw t0,92(sp)
800020dc: 2744 fld fs1,136(a4)
800020de: 402a 0x402a
800020e0 <test_8_data>:
800020e0: a105 j 80002500 <_end+0x400>
800020e2: c70a sw sp,140(sp)
800020e4: 94df 3e85 0000 0x3e8594df
800020ea: 0000 unimp
800020ec: 0000 unimp
800020ee: 0000 unimp
800020f0: 0000 unimp
800020f2: 0000 unimp
800020f4: 0000 unimp
800020f6: 0000 unimp
800020f8: 7f99 lui t6,0xfffe6
800020fa: 4789c0e3 blt s3,s8,80002d5a <_end+0xc5a>
800020fe: 3f3a fld ft10,424(sp)

BIN
Tests/isa/rv32ud-p-fmadd Normal file

Binary file not shown.

View File

@@ -0,0 +1,555 @@
rv32ud-p-fmadd: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00002537 lui a0,0x2
800000ec: 30052073 csrs mstatus,a0
800000f0: 00305073 csrwi fcsr,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00200193 li gp,2
8000010c: 00002517 auipc a0,0x2
80000110: ef450513 addi a0,a0,-268 # 80002000 <test_2_data>
80000114: 00053007 fld ft0,0(a0)
80000118: 00853087 fld ft1,8(a0)
8000011c: 01053107 fld ft2,16(a0)
80000120: 01852683 lw a3,24(a0)
80000124: 01c52303 lw t1,28(a0)
80000128: 121071c3 fmadd.d ft3,ft0,ft1,ft2
8000012c: 00353027 fsd ft3,0(a0)
80000130: 00452383 lw t2,4(a0)
80000134: 00052503 lw a0,0(a0)
80000138: 001015f3 fsflags a1,zero
8000013c: 00000613 li a2,0
80000140: 2ed51e63 bne a0,a3,8000043c <fail>
80000144: 2e731c63 bne t1,t2,8000043c <fail>
80000148: 2ec59a63 bne a1,a2,8000043c <fail>
8000014c <test_3>:
8000014c: 00300193 li gp,3
80000150: 00002517 auipc a0,0x2
80000154: ed050513 addi a0,a0,-304 # 80002020 <test_3_data>
80000158: 00053007 fld ft0,0(a0)
8000015c: 00853087 fld ft1,8(a0)
80000160: 01053107 fld ft2,16(a0)
80000164: 01852683 lw a3,24(a0)
80000168: 01c52303 lw t1,28(a0)
8000016c: 121071c3 fmadd.d ft3,ft0,ft1,ft2
80000170: 00353027 fsd ft3,0(a0)
80000174: 00452383 lw t2,4(a0)
80000178: 00052503 lw a0,0(a0)
8000017c: 001015f3 fsflags a1,zero
80000180: 00100613 li a2,1
80000184: 2ad51c63 bne a0,a3,8000043c <fail>
80000188: 2a731a63 bne t1,t2,8000043c <fail>
8000018c: 2ac59863 bne a1,a2,8000043c <fail>
80000190 <test_4>:
80000190: 00400193 li gp,4
80000194: 00002517 auipc a0,0x2
80000198: eac50513 addi a0,a0,-340 # 80002040 <test_4_data>
8000019c: 00053007 fld ft0,0(a0)
800001a0: 00853087 fld ft1,8(a0)
800001a4: 01053107 fld ft2,16(a0)
800001a8: 01852683 lw a3,24(a0)
800001ac: 01c52303 lw t1,28(a0)
800001b0: 121071c3 fmadd.d ft3,ft0,ft1,ft2
800001b4: 00353027 fsd ft3,0(a0)
800001b8: 00452383 lw t2,4(a0)
800001bc: 00052503 lw a0,0(a0)
800001c0: 001015f3 fsflags a1,zero
800001c4: 00000613 li a2,0
800001c8: 26d51a63 bne a0,a3,8000043c <fail>
800001cc: 26731863 bne t1,t2,8000043c <fail>
800001d0: 26c59663 bne a1,a2,8000043c <fail>
800001d4 <test_5>:
800001d4: 00500193 li gp,5
800001d8: 00002517 auipc a0,0x2
800001dc: e8850513 addi a0,a0,-376 # 80002060 <test_5_data>
800001e0: 00053007 fld ft0,0(a0)
800001e4: 00853087 fld ft1,8(a0)
800001e8: 01053107 fld ft2,16(a0)
800001ec: 01852683 lw a3,24(a0)
800001f0: 01c52303 lw t1,28(a0)
800001f4: 121071cf fnmadd.d ft3,ft0,ft1,ft2
800001f8: 00353027 fsd ft3,0(a0)
800001fc: 00452383 lw t2,4(a0)
80000200: 00052503 lw a0,0(a0)
80000204: 001015f3 fsflags a1,zero
80000208: 00000613 li a2,0
8000020c: 22d51863 bne a0,a3,8000043c <fail>
80000210: 22731663 bne t1,t2,8000043c <fail>
80000214: 22c59463 bne a1,a2,8000043c <fail>
80000218 <test_6>:
80000218: 00600193 li gp,6
8000021c: 00002517 auipc a0,0x2
80000220: e6450513 addi a0,a0,-412 # 80002080 <test_6_data>
80000224: 00053007 fld ft0,0(a0)
80000228: 00853087 fld ft1,8(a0)
8000022c: 01053107 fld ft2,16(a0)
80000230: 01852683 lw a3,24(a0)
80000234: 01c52303 lw t1,28(a0)
80000238: 121071cf fnmadd.d ft3,ft0,ft1,ft2
8000023c: 00353027 fsd ft3,0(a0)
80000240: 00452383 lw t2,4(a0)
80000244: 00052503 lw a0,0(a0)
80000248: 001015f3 fsflags a1,zero
8000024c: 00100613 li a2,1
80000250: 1ed51663 bne a0,a3,8000043c <fail>
80000254: 1e731463 bne t1,t2,8000043c <fail>
80000258: 1ec59263 bne a1,a2,8000043c <fail>
8000025c <test_7>:
8000025c: 00700193 li gp,7
80000260: 00002517 auipc a0,0x2
80000264: e4050513 addi a0,a0,-448 # 800020a0 <test_7_data>
80000268: 00053007 fld ft0,0(a0)
8000026c: 00853087 fld ft1,8(a0)
80000270: 01053107 fld ft2,16(a0)
80000274: 01852683 lw a3,24(a0)
80000278: 01c52303 lw t1,28(a0)
8000027c: 121071cf fnmadd.d ft3,ft0,ft1,ft2
80000280: 00353027 fsd ft3,0(a0)
80000284: 00452383 lw t2,4(a0)
80000288: 00052503 lw a0,0(a0)
8000028c: 001015f3 fsflags a1,zero
80000290: 00000613 li a2,0
80000294: 1ad51463 bne a0,a3,8000043c <fail>
80000298: 1a731263 bne t1,t2,8000043c <fail>
8000029c: 1ac59063 bne a1,a2,8000043c <fail>
800002a0 <test_8>:
800002a0: 00800193 li gp,8
800002a4: 00002517 auipc a0,0x2
800002a8: e1c50513 addi a0,a0,-484 # 800020c0 <test_8_data>
800002ac: 00053007 fld ft0,0(a0)
800002b0: 00853087 fld ft1,8(a0)
800002b4: 01053107 fld ft2,16(a0)
800002b8: 01852683 lw a3,24(a0)
800002bc: 01c52303 lw t1,28(a0)
800002c0: 121071c7 fmsub.d ft3,ft0,ft1,ft2
800002c4: 00353027 fsd ft3,0(a0)
800002c8: 00452383 lw t2,4(a0)
800002cc: 00052503 lw a0,0(a0)
800002d0: 001015f3 fsflags a1,zero
800002d4: 00000613 li a2,0
800002d8: 16d51263 bne a0,a3,8000043c <fail>
800002dc: 16731063 bne t1,t2,8000043c <fail>
800002e0: 14c59e63 bne a1,a2,8000043c <fail>
800002e4 <test_9>:
800002e4: 00900193 li gp,9
800002e8: 00002517 auipc a0,0x2
800002ec: df850513 addi a0,a0,-520 # 800020e0 <test_9_data>
800002f0: 00053007 fld ft0,0(a0)
800002f4: 00853087 fld ft1,8(a0)
800002f8: 01053107 fld ft2,16(a0)
800002fc: 01852683 lw a3,24(a0)
80000300: 01c52303 lw t1,28(a0)
80000304: 121071c7 fmsub.d ft3,ft0,ft1,ft2
80000308: 00353027 fsd ft3,0(a0)
8000030c: 00452383 lw t2,4(a0)
80000310: 00052503 lw a0,0(a0)
80000314: 001015f3 fsflags a1,zero
80000318: 00100613 li a2,1
8000031c: 12d51063 bne a0,a3,8000043c <fail>
80000320: 10731e63 bne t1,t2,8000043c <fail>
80000324: 10c59c63 bne a1,a2,8000043c <fail>
80000328 <test_10>:
80000328: 00a00193 li gp,10
8000032c: 00002517 auipc a0,0x2
80000330: dd450513 addi a0,a0,-556 # 80002100 <test_10_data>
80000334: 00053007 fld ft0,0(a0)
80000338: 00853087 fld ft1,8(a0)
8000033c: 01053107 fld ft2,16(a0)
80000340: 01852683 lw a3,24(a0)
80000344: 01c52303 lw t1,28(a0)
80000348: 121071c7 fmsub.d ft3,ft0,ft1,ft2
8000034c: 00353027 fsd ft3,0(a0)
80000350: 00452383 lw t2,4(a0)
80000354: 00052503 lw a0,0(a0)
80000358: 001015f3 fsflags a1,zero
8000035c: 00000613 li a2,0
80000360: 0cd51e63 bne a0,a3,8000043c <fail>
80000364: 0c731c63 bne t1,t2,8000043c <fail>
80000368: 0cc59a63 bne a1,a2,8000043c <fail>
8000036c <test_11>:
8000036c: 00b00193 li gp,11
80000370: 00002517 auipc a0,0x2
80000374: db050513 addi a0,a0,-592 # 80002120 <test_11_data>
80000378: 00053007 fld ft0,0(a0)
8000037c: 00853087 fld ft1,8(a0)
80000380: 01053107 fld ft2,16(a0)
80000384: 01852683 lw a3,24(a0)
80000388: 01c52303 lw t1,28(a0)
8000038c: 121071cb fnmsub.d ft3,ft0,ft1,ft2
80000390: 00353027 fsd ft3,0(a0)
80000394: 00452383 lw t2,4(a0)
80000398: 00052503 lw a0,0(a0)
8000039c: 001015f3 fsflags a1,zero
800003a0: 00000613 li a2,0
800003a4: 08d51c63 bne a0,a3,8000043c <fail>
800003a8: 08731a63 bne t1,t2,8000043c <fail>
800003ac: 08c59863 bne a1,a2,8000043c <fail>
800003b0 <test_12>:
800003b0: 00c00193 li gp,12
800003b4: 00002517 auipc a0,0x2
800003b8: d8c50513 addi a0,a0,-628 # 80002140 <test_12_data>
800003bc: 00053007 fld ft0,0(a0)
800003c0: 00853087 fld ft1,8(a0)
800003c4: 01053107 fld ft2,16(a0)
800003c8: 01852683 lw a3,24(a0)
800003cc: 01c52303 lw t1,28(a0)
800003d0: 121071cb fnmsub.d ft3,ft0,ft1,ft2
800003d4: 00353027 fsd ft3,0(a0)
800003d8: 00452383 lw t2,4(a0)
800003dc: 00052503 lw a0,0(a0)
800003e0: 001015f3 fsflags a1,zero
800003e4: 00100613 li a2,1
800003e8: 04d51a63 bne a0,a3,8000043c <fail>
800003ec: 04731863 bne t1,t2,8000043c <fail>
800003f0: 04c59663 bne a1,a2,8000043c <fail>
800003f4 <test_13>:
800003f4: 00d00193 li gp,13
800003f8: 00002517 auipc a0,0x2
800003fc: d6850513 addi a0,a0,-664 # 80002160 <test_13_data>
80000400: 00053007 fld ft0,0(a0)
80000404: 00853087 fld ft1,8(a0)
80000408: 01053107 fld ft2,16(a0)
8000040c: 01852683 lw a3,24(a0)
80000410: 01c52303 lw t1,28(a0)
80000414: 121071cb fnmsub.d ft3,ft0,ft1,ft2
80000418: 00353027 fsd ft3,0(a0)
8000041c: 00452383 lw t2,4(a0)
80000420: 00052503 lw a0,0(a0)
80000424: 001015f3 fsflags a1,zero
80000428: 00000613 li a2,0
8000042c: 00d51863 bne a0,a3,8000043c <fail>
80000430: 00731663 bne t1,t2,8000043c <fail>
80000434: 00c59463 bne a1,a2,8000043c <fail>
80000438: 00301c63 bne zero,gp,80000450 <pass>
8000043c <fail>:
8000043c: 0ff0000f fence
80000440: 00018063 beqz gp,80000440 <fail+0x4>
80000444: 00119193 slli gp,gp,0x1
80000448: 0011e193 ori gp,gp,1
8000044c: 00000073 ecall
80000450 <pass>:
80000450: 0ff0000f fence
80000454: 00100193 li gp,1
80000458: 00000073 ecall
8000045c: c0001073 unimp
80000460: 0000 unimp
80000462: 0000 unimp
80000464: 0000 unimp
80000466: 0000 unimp
80000468: 0000 unimp
8000046a: 0000 unimp
8000046c: 0000 unimp
8000046e: 0000 unimp
80000470: 0000 unimp
80000472: 0000 unimp
80000474: 0000 unimp
80000476: 0000 unimp
80000478: 0000 unimp
8000047a: 0000 unimp
8000047c: 0000 unimp
8000047e: 0000 unimp
80000480: 0000 unimp
80000482: 0000 unimp
Disassembly of section .data:
80002000 <test_2_data>:
80002000: 0000 unimp
80002002: 0000 unimp
80002004: 0000 unimp
80002006: 3ff0 fld fa2,248(a5)
80002008: 0000 unimp
8000200a: 0000 unimp
8000200c: 0000 unimp
8000200e: 4004 lw s1,0(s0)
80002010: 0000 unimp
80002012: 0000 unimp
80002014: 0000 unimp
80002016: 3ff0 fld fa2,248(a5)
80002018: 0000 unimp
8000201a: 0000 unimp
8000201c: 0000 unimp
8000201e: 400c lw a1,0(s0)
80002020 <test_3_data>:
80002020: 0000 unimp
80002022: 0000 unimp
80002024: 0000 unimp
80002026: bff0 fsd fa2,248(a5)
80002028: 6666 flw fa2,88(sp)
8000202a: 6666 flw fa2,88(sp)
8000202c: 4c66 lw s8,88(sp)
8000202e: 999ac093 xori ra,s5,-1639
80002032: 9999 andi a1,a1,-26
80002034: 9999 andi a1,a1,-26
80002036: 3ff1 jal 80002012 <test_2_data+0x12>
80002038: cccc sw a1,28(s1)
8000203a: cccc sw a1,28(s1)
8000203c: 50cc lw a1,36(s1)
8000203e: xori ra,zero,0
80002040 <test_4_data>:
80002040: 0000 unimp
80002042: 0000 unimp
80002044: 0000 unimp
80002046: 4000 lw s0,0(s0)
80002048: 0000 unimp
8000204a: 0000 unimp
8000204c: 0000 unimp
8000204e: c014 sw a3,0(s0)
80002050: 0000 unimp
80002052: 0000 unimp
80002054: 0000 unimp
80002056: c000 sw s0,0(s0)
80002058: 0000 unimp
8000205a: 0000 unimp
8000205c: 0000 unimp
8000205e: c028 sw a0,64(s0)
80002060 <test_5_data>:
80002060: 0000 unimp
80002062: 0000 unimp
80002064: 0000 unimp
80002066: 3ff0 fld fa2,248(a5)
80002068: 0000 unimp
8000206a: 0000 unimp
8000206c: 0000 unimp
8000206e: 4004 lw s1,0(s0)
80002070: 0000 unimp
80002072: 0000 unimp
80002074: 0000 unimp
80002076: 3ff0 fld fa2,248(a5)
80002078: 0000 unimp
8000207a: 0000 unimp
8000207c: 0000 unimp
8000207e: c00c sw a1,0(s0)
80002080 <test_6_data>:
80002080: 0000 unimp
80002082: 0000 unimp
80002084: 0000 unimp
80002086: bff0 fsd fa2,248(a5)
80002088: 6666 flw fa2,88(sp)
8000208a: 6666 flw fa2,88(sp)
8000208c: 4c66 lw s8,88(sp)
8000208e: 999ac093 xori ra,s5,-1639
80002092: 9999 andi a1,a1,-26
80002094: 9999 andi a1,a1,-26
80002096: 3ff1 jal 80002072 <test_5_data+0x12>
80002098: cccc sw a1,28(s1)
8000209a: cccc sw a1,28(s1)
8000209c: 50cc lw a1,36(s1)
8000209e: xori ra,ra,0
800020a0 <test_7_data>:
800020a0: 0000 unimp
800020a2: 0000 unimp
800020a4: 0000 unimp
800020a6: 4000 lw s0,0(s0)
800020a8: 0000 unimp
800020aa: 0000 unimp
800020ac: 0000 unimp
800020ae: c014 sw a3,0(s0)
800020b0: 0000 unimp
800020b2: 0000 unimp
800020b4: 0000 unimp
800020b6: c000 sw s0,0(s0)
800020b8: 0000 unimp
800020ba: 0000 unimp
800020bc: 0000 unimp
800020be: 4028 lw a0,64(s0)
800020c0 <test_8_data>:
800020c0: 0000 unimp
800020c2: 0000 unimp
800020c4: 0000 unimp
800020c6: 3ff0 fld fa2,248(a5)
800020c8: 0000 unimp
800020ca: 0000 unimp
800020cc: 0000 unimp
800020ce: 4004 lw s1,0(s0)
800020d0: 0000 unimp
800020d2: 0000 unimp
800020d4: 0000 unimp
800020d6: 3ff0 fld fa2,248(a5)
800020d8: 0000 unimp
800020da: 0000 unimp
800020dc: 0000 unimp
800020de: 3ff8 fld fa4,248(a5)
800020e0 <test_9_data>:
800020e0: 0000 unimp
800020e2: 0000 unimp
800020e4: 0000 unimp
800020e6: bff0 fsd fa2,248(a5)
800020e8: 6666 flw fa2,88(sp)
800020ea: 6666 flw fa2,88(sp)
800020ec: 4c66 lw s8,88(sp)
800020ee: 999ac093 xori ra,s5,-1639
800020f2: 9999 andi a1,a1,-26
800020f4: 9999 andi a1,a1,-26
800020f6: 3ff1 jal 800020d2 <test_8_data+0x12>
800020f8: 0000 unimp
800020fa: 0000 unimp
800020fc: 4800 lw s0,16(s0)
800020fe: xori ra,zero,0
80002100 <test_10_data>:
80002100: 0000 unimp
80002102: 0000 unimp
80002104: 0000 unimp
80002106: 4000 lw s0,0(s0)
80002108: 0000 unimp
8000210a: 0000 unimp
8000210c: 0000 unimp
8000210e: c014 sw a3,0(s0)
80002110: 0000 unimp
80002112: 0000 unimp
80002114: 0000 unimp
80002116: c000 sw s0,0(s0)
80002118: 0000 unimp
8000211a: 0000 unimp
8000211c: 0000 unimp
8000211e: c020 sw s0,64(s0)
80002120 <test_11_data>:
80002120: 0000 unimp
80002122: 0000 unimp
80002124: 0000 unimp
80002126: 3ff0 fld fa2,248(a5)
80002128: 0000 unimp
8000212a: 0000 unimp
8000212c: 0000 unimp
8000212e: 4004 lw s1,0(s0)
80002130: 0000 unimp
80002132: 0000 unimp
80002134: 0000 unimp
80002136: 3ff0 fld fa2,248(a5)
80002138: 0000 unimp
8000213a: 0000 unimp
8000213c: 0000 unimp
8000213e: bff8 fsd fa4,248(a5)
80002140 <test_12_data>:
80002140: 0000 unimp
80002142: 0000 unimp
80002144: 0000 unimp
80002146: bff0 fsd fa2,248(a5)
80002148: 6666 flw fa2,88(sp)
8000214a: 6666 flw fa2,88(sp)
8000214c: 4c66 lw s8,88(sp)
8000214e: 999ac093 xori ra,s5,-1639
80002152: 9999 andi a1,a1,-26
80002154: 9999 andi a1,a1,-26
80002156: 3ff1 jal 80002132 <test_11_data+0x12>
80002158: 0000 unimp
8000215a: 0000 unimp
8000215c: 4800 lw s0,16(s0)
8000215e: xori ra,ra,0
80002160 <test_13_data>:
80002160: 0000 unimp
80002162: 0000 unimp
80002164: 0000 unimp
80002166: 4000 lw s0,0(s0)
80002168: 0000 unimp
8000216a: 0000 unimp
8000216c: 0000 unimp
8000216e: c014 sw a3,0(s0)
80002170: 0000 unimp
80002172: 0000 unimp
80002174: 0000 unimp
80002176: c000 sw s0,0(s0)
80002178: 0000 unimp
8000217a: 0000 unimp
8000217c: 0000 unimp
8000217e: 4020 lw s0,64(s0)

BIN
Tests/isa/rv32ud-p-fmin Normal file

Binary file not shown.

View File

@@ -0,0 +1,760 @@
rv32ud-p-fmin: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00002537 lui a0,0x2
800000ec: 30052073 csrs mstatus,a0
800000f0: 00305073 csrwi fcsr,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <test_2>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108 <test_2>:
80000108: 00200193 li gp,2
8000010c: 00002517 auipc a0,0x2
80000110: ef450513 addi a0,a0,-268 # 80002000 <test_2_data>
80000114: 00053007 fld ft0,0(a0)
80000118: 00853087 fld ft1,8(a0)
8000011c: 01053107 fld ft2,16(a0)
80000120: 01852683 lw a3,24(a0)
80000124: 01c52303 lw t1,28(a0)
80000128: 2a1001d3 fmin.d ft3,ft0,ft1
8000012c: 00353027 fsd ft3,0(a0)
80000130: 00452383 lw t2,4(a0)
80000134: 00052503 lw a0,0(a0)
80000138: 001015f3 fsflags a1,zero
8000013c: 00000613 li a2,0
80000140: 48d51a63 bne a0,a3,800005d4 <fail>
80000144: 48731863 bne t1,t2,800005d4 <fail>
80000148: 48c59663 bne a1,a2,800005d4 <fail>
8000014c <test_3>:
8000014c: 00300193 li gp,3
80000150: 00002517 auipc a0,0x2
80000154: ed050513 addi a0,a0,-304 # 80002020 <test_3_data>
80000158: 00053007 fld ft0,0(a0)
8000015c: 00853087 fld ft1,8(a0)
80000160: 01053107 fld ft2,16(a0)
80000164: 01852683 lw a3,24(a0)
80000168: 01c52303 lw t1,28(a0)
8000016c: 2a1001d3 fmin.d ft3,ft0,ft1
80000170: 00353027 fsd ft3,0(a0)
80000174: 00452383 lw t2,4(a0)
80000178: 00052503 lw a0,0(a0)
8000017c: 001015f3 fsflags a1,zero
80000180: 00000613 li a2,0
80000184: 44d51863 bne a0,a3,800005d4 <fail>
80000188: 44731663 bne t1,t2,800005d4 <fail>
8000018c: 44c59463 bne a1,a2,800005d4 <fail>
80000190 <test_4>:
80000190: 00400193 li gp,4
80000194: 00002517 auipc a0,0x2
80000198: eac50513 addi a0,a0,-340 # 80002040 <test_4_data>
8000019c: 00053007 fld ft0,0(a0)
800001a0: 00853087 fld ft1,8(a0)
800001a4: 01053107 fld ft2,16(a0)
800001a8: 01852683 lw a3,24(a0)
800001ac: 01c52303 lw t1,28(a0)
800001b0: 2a1001d3 fmin.d ft3,ft0,ft1
800001b4: 00353027 fsd ft3,0(a0)
800001b8: 00452383 lw t2,4(a0)
800001bc: 00052503 lw a0,0(a0)
800001c0: 001015f3 fsflags a1,zero
800001c4: 00000613 li a2,0
800001c8: 40d51663 bne a0,a3,800005d4 <fail>
800001cc: 40731463 bne t1,t2,800005d4 <fail>
800001d0: 40c59263 bne a1,a2,800005d4 <fail>
800001d4 <test_5>:
800001d4: 00500193 li gp,5
800001d8: 00002517 auipc a0,0x2
800001dc: e8850513 addi a0,a0,-376 # 80002060 <test_5_data>
800001e0: 00053007 fld ft0,0(a0)
800001e4: 00853087 fld ft1,8(a0)
800001e8: 01053107 fld ft2,16(a0)
800001ec: 01852683 lw a3,24(a0)
800001f0: 01c52303 lw t1,28(a0)
800001f4: 2a1001d3 fmin.d ft3,ft0,ft1
800001f8: 00353027 fsd ft3,0(a0)
800001fc: 00452383 lw t2,4(a0)
80000200: 00052503 lw a0,0(a0)
80000204: 001015f3 fsflags a1,zero
80000208: 00000613 li a2,0
8000020c: 3cd51463 bne a0,a3,800005d4 <fail>
80000210: 3c731263 bne t1,t2,800005d4 <fail>
80000214: 3cc59063 bne a1,a2,800005d4 <fail>
80000218 <test_6>:
80000218: 00600193 li gp,6
8000021c: 00002517 auipc a0,0x2
80000220: e6450513 addi a0,a0,-412 # 80002080 <test_6_data>
80000224: 00053007 fld ft0,0(a0)
80000228: 00853087 fld ft1,8(a0)
8000022c: 01053107 fld ft2,16(a0)
80000230: 01852683 lw a3,24(a0)
80000234: 01c52303 lw t1,28(a0)
80000238: 2a1001d3 fmin.d ft3,ft0,ft1
8000023c: 00353027 fsd ft3,0(a0)
80000240: 00452383 lw t2,4(a0)
80000244: 00052503 lw a0,0(a0)
80000248: 001015f3 fsflags a1,zero
8000024c: 00000613 li a2,0
80000250: 38d51263 bne a0,a3,800005d4 <fail>
80000254: 38731063 bne t1,t2,800005d4 <fail>
80000258: 36c59e63 bne a1,a2,800005d4 <fail>
8000025c <test_7>:
8000025c: 00700193 li gp,7
80000260: 00002517 auipc a0,0x2
80000264: e4050513 addi a0,a0,-448 # 800020a0 <test_7_data>
80000268: 00053007 fld ft0,0(a0)
8000026c: 00853087 fld ft1,8(a0)
80000270: 01053107 fld ft2,16(a0)
80000274: 01852683 lw a3,24(a0)
80000278: 01c52303 lw t1,28(a0)
8000027c: 2a1001d3 fmin.d ft3,ft0,ft1
80000280: 00353027 fsd ft3,0(a0)
80000284: 00452383 lw t2,4(a0)
80000288: 00052503 lw a0,0(a0)
8000028c: 001015f3 fsflags a1,zero
80000290: 00000613 li a2,0
80000294: 34d51063 bne a0,a3,800005d4 <fail>
80000298: 32731e63 bne t1,t2,800005d4 <fail>
8000029c: 32c59c63 bne a1,a2,800005d4 <fail>
800002a0 <test_12>:
800002a0: 00c00193 li gp,12
800002a4: 00002517 auipc a0,0x2
800002a8: e1c50513 addi a0,a0,-484 # 800020c0 <test_12_data>
800002ac: 00053007 fld ft0,0(a0)
800002b0: 00853087 fld ft1,8(a0)
800002b4: 01053107 fld ft2,16(a0)
800002b8: 01852683 lw a3,24(a0)
800002bc: 01c52303 lw t1,28(a0)
800002c0: 2a1011d3 fmax.d ft3,ft0,ft1
800002c4: 00353027 fsd ft3,0(a0)
800002c8: 00452383 lw t2,4(a0)
800002cc: 00052503 lw a0,0(a0)
800002d0: 001015f3 fsflags a1,zero
800002d4: 00000613 li a2,0
800002d8: 2ed51e63 bne a0,a3,800005d4 <fail>
800002dc: 2e731c63 bne t1,t2,800005d4 <fail>
800002e0: 2ec59a63 bne a1,a2,800005d4 <fail>
800002e4 <test_13>:
800002e4: 00d00193 li gp,13
800002e8: 00002517 auipc a0,0x2
800002ec: df850513 addi a0,a0,-520 # 800020e0 <test_13_data>
800002f0: 00053007 fld ft0,0(a0)
800002f4: 00853087 fld ft1,8(a0)
800002f8: 01053107 fld ft2,16(a0)
800002fc: 01852683 lw a3,24(a0)
80000300: 01c52303 lw t1,28(a0)
80000304: 2a1011d3 fmax.d ft3,ft0,ft1
80000308: 00353027 fsd ft3,0(a0)
8000030c: 00452383 lw t2,4(a0)
80000310: 00052503 lw a0,0(a0)
80000314: 001015f3 fsflags a1,zero
80000318: 00000613 li a2,0
8000031c: 2ad51c63 bne a0,a3,800005d4 <fail>
80000320: 2a731a63 bne t1,t2,800005d4 <fail>
80000324: 2ac59863 bne a1,a2,800005d4 <fail>
80000328 <test_14>:
80000328: 00e00193 li gp,14
8000032c: 00002517 auipc a0,0x2
80000330: dd450513 addi a0,a0,-556 # 80002100 <test_14_data>
80000334: 00053007 fld ft0,0(a0)
80000338: 00853087 fld ft1,8(a0)
8000033c: 01053107 fld ft2,16(a0)
80000340: 01852683 lw a3,24(a0)
80000344: 01c52303 lw t1,28(a0)
80000348: 2a1011d3 fmax.d ft3,ft0,ft1
8000034c: 00353027 fsd ft3,0(a0)
80000350: 00452383 lw t2,4(a0)
80000354: 00052503 lw a0,0(a0)
80000358: 001015f3 fsflags a1,zero
8000035c: 00000613 li a2,0
80000360: 26d51a63 bne a0,a3,800005d4 <fail>
80000364: 26731863 bne t1,t2,800005d4 <fail>
80000368: 26c59663 bne a1,a2,800005d4 <fail>
8000036c <test_15>:
8000036c: 00f00193 li gp,15
80000370: 00002517 auipc a0,0x2
80000374: db050513 addi a0,a0,-592 # 80002120 <test_15_data>
80000378: 00053007 fld ft0,0(a0)
8000037c: 00853087 fld ft1,8(a0)
80000380: 01053107 fld ft2,16(a0)
80000384: 01852683 lw a3,24(a0)
80000388: 01c52303 lw t1,28(a0)
8000038c: 2a1011d3 fmax.d ft3,ft0,ft1
80000390: 00353027 fsd ft3,0(a0)
80000394: 00452383 lw t2,4(a0)
80000398: 00052503 lw a0,0(a0)
8000039c: 001015f3 fsflags a1,zero
800003a0: 00000613 li a2,0
800003a4: 22d51863 bne a0,a3,800005d4 <fail>
800003a8: 22731663 bne t1,t2,800005d4 <fail>
800003ac: 22c59463 bne a1,a2,800005d4 <fail>
800003b0 <test_16>:
800003b0: 01000193 li gp,16
800003b4: 00002517 auipc a0,0x2
800003b8: d8c50513 addi a0,a0,-628 # 80002140 <test_16_data>
800003bc: 00053007 fld ft0,0(a0)
800003c0: 00853087 fld ft1,8(a0)
800003c4: 01053107 fld ft2,16(a0)
800003c8: 01852683 lw a3,24(a0)
800003cc: 01c52303 lw t1,28(a0)
800003d0: 2a1011d3 fmax.d ft3,ft0,ft1
800003d4: 00353027 fsd ft3,0(a0)
800003d8: 00452383 lw t2,4(a0)
800003dc: 00052503 lw a0,0(a0)
800003e0: 001015f3 fsflags a1,zero
800003e4: 00000613 li a2,0
800003e8: 1ed51663 bne a0,a3,800005d4 <fail>
800003ec: 1e731463 bne t1,t2,800005d4 <fail>
800003f0: 1ec59263 bne a1,a2,800005d4 <fail>
800003f4 <test_17>:
800003f4: 01100193 li gp,17
800003f8: 00002517 auipc a0,0x2
800003fc: d6850513 addi a0,a0,-664 # 80002160 <test_17_data>
80000400: 00053007 fld ft0,0(a0)
80000404: 00853087 fld ft1,8(a0)
80000408: 01053107 fld ft2,16(a0)
8000040c: 01852683 lw a3,24(a0)
80000410: 01c52303 lw t1,28(a0)
80000414: 2a1011d3 fmax.d ft3,ft0,ft1
80000418: 00353027 fsd ft3,0(a0)
8000041c: 00452383 lw t2,4(a0)
80000420: 00052503 lw a0,0(a0)
80000424: 001015f3 fsflags a1,zero
80000428: 00000613 li a2,0
8000042c: 1ad51463 bne a0,a3,800005d4 <fail>
80000430: 1a731263 bne t1,t2,800005d4 <fail>
80000434: 1ac59063 bne a1,a2,800005d4 <fail>
80000438 <test_20>:
80000438: 01400193 li gp,20
8000043c: 00002517 auipc a0,0x2
80000440: d4450513 addi a0,a0,-700 # 80002180 <test_20_data>
80000444: 00053007 fld ft0,0(a0)
80000448: 00853087 fld ft1,8(a0)
8000044c: 01053107 fld ft2,16(a0)
80000450: 01852683 lw a3,24(a0)
80000454: 01c52303 lw t1,28(a0)
80000458: 2a1011d3 fmax.d ft3,ft0,ft1
8000045c: 00353027 fsd ft3,0(a0)
80000460: 00452383 lw t2,4(a0)
80000464: 00052503 lw a0,0(a0)
80000468: 001015f3 fsflags a1,zero
8000046c: 01000613 li a2,16
80000470: 16d51263 bne a0,a3,800005d4 <fail>
80000474: 16731063 bne t1,t2,800005d4 <fail>
80000478: 14c59e63 bne a1,a2,800005d4 <fail>
8000047c <test_21>:
8000047c: 01500193 li gp,21
80000480: 00002517 auipc a0,0x2
80000484: d2050513 addi a0,a0,-736 # 800021a0 <test_21_data>
80000488: 00053007 fld ft0,0(a0)
8000048c: 00853087 fld ft1,8(a0)
80000490: 01053107 fld ft2,16(a0)
80000494: 01852683 lw a3,24(a0)
80000498: 01c52303 lw t1,28(a0)
8000049c: 2a1011d3 fmax.d ft3,ft0,ft1
800004a0: 00353027 fsd ft3,0(a0)
800004a4: 00452383 lw t2,4(a0)
800004a8: 00052503 lw a0,0(a0)
800004ac: 001015f3 fsflags a1,zero
800004b0: 00000613 li a2,0
800004b4: 12d51063 bne a0,a3,800005d4 <fail>
800004b8: 10731e63 bne t1,t2,800005d4 <fail>
800004bc: 10c59c63 bne a1,a2,800005d4 <fail>
800004c0 <test_30>:
800004c0: 01e00193 li gp,30
800004c4: 00002517 auipc a0,0x2
800004c8: cfc50513 addi a0,a0,-772 # 800021c0 <test_30_data>
800004cc: 00053007 fld ft0,0(a0)
800004d0: 00853087 fld ft1,8(a0)
800004d4: 01053107 fld ft2,16(a0)
800004d8: 01852683 lw a3,24(a0)
800004dc: 01c52303 lw t1,28(a0)
800004e0: 2a1001d3 fmin.d ft3,ft0,ft1
800004e4: 00353027 fsd ft3,0(a0)
800004e8: 00452383 lw t2,4(a0)
800004ec: 00052503 lw a0,0(a0)
800004f0: 001015f3 fsflags a1,zero
800004f4: 00000613 li a2,0
800004f8: 0cd51e63 bne a0,a3,800005d4 <fail>
800004fc: 0c731c63 bne t1,t2,800005d4 <fail>
80000500: 0cc59a63 bne a1,a2,800005d4 <fail>
80000504 <test_31>:
80000504: 01f00193 li gp,31
80000508: 00002517 auipc a0,0x2
8000050c: cd850513 addi a0,a0,-808 # 800021e0 <test_31_data>
80000510: 00053007 fld ft0,0(a0)
80000514: 00853087 fld ft1,8(a0)
80000518: 01053107 fld ft2,16(a0)
8000051c: 01852683 lw a3,24(a0)
80000520: 01c52303 lw t1,28(a0)
80000524: 2a1001d3 fmin.d ft3,ft0,ft1
80000528: 00353027 fsd ft3,0(a0)
8000052c: 00452383 lw t2,4(a0)
80000530: 00052503 lw a0,0(a0)
80000534: 001015f3 fsflags a1,zero
80000538: 00000613 li a2,0
8000053c: 08d51c63 bne a0,a3,800005d4 <fail>
80000540: 08731a63 bne t1,t2,800005d4 <fail>
80000544: 08c59863 bne a1,a2,800005d4 <fail>
80000548 <test_32>:
80000548: 02000193 li gp,32
8000054c: 00002517 auipc a0,0x2
80000550: cb450513 addi a0,a0,-844 # 80002200 <test_32_data>
80000554: 00053007 fld ft0,0(a0)
80000558: 00853087 fld ft1,8(a0)
8000055c: 01053107 fld ft2,16(a0)
80000560: 01852683 lw a3,24(a0)
80000564: 01c52303 lw t1,28(a0)
80000568: 2a1011d3 fmax.d ft3,ft0,ft1
8000056c: 00353027 fsd ft3,0(a0)
80000570: 00452383 lw t2,4(a0)
80000574: 00052503 lw a0,0(a0)
80000578: 001015f3 fsflags a1,zero
8000057c: 00000613 li a2,0
80000580: 04d51a63 bne a0,a3,800005d4 <fail>
80000584: 04731863 bne t1,t2,800005d4 <fail>
80000588: 04c59663 bne a1,a2,800005d4 <fail>
8000058c <test_33>:
8000058c: 02100193 li gp,33
80000590: 00002517 auipc a0,0x2
80000594: c9050513 addi a0,a0,-880 # 80002220 <test_33_data>
80000598: 00053007 fld ft0,0(a0)
8000059c: 00853087 fld ft1,8(a0)
800005a0: 01053107 fld ft2,16(a0)
800005a4: 01852683 lw a3,24(a0)
800005a8: 01c52303 lw t1,28(a0)
800005ac: 2a1011d3 fmax.d ft3,ft0,ft1
800005b0: 00353027 fsd ft3,0(a0)
800005b4: 00452383 lw t2,4(a0)
800005b8: 00052503 lw a0,0(a0)
800005bc: 001015f3 fsflags a1,zero
800005c0: 00000613 li a2,0
800005c4: 00d51863 bne a0,a3,800005d4 <fail>
800005c8: 00731663 bne t1,t2,800005d4 <fail>
800005cc: 00c59463 bne a1,a2,800005d4 <fail>
800005d0: 00301c63 bne zero,gp,800005e8 <pass>
800005d4 <fail>:
800005d4: 0ff0000f fence
800005d8: 00018063 beqz gp,800005d8 <fail+0x4>
800005dc: 00119193 slli gp,gp,0x1
800005e0: 0011e193 ori gp,gp,1
800005e4: 00000073 ecall
800005e8 <pass>:
800005e8: 0ff0000f fence
800005ec: 00100193 li gp,1
800005f0: 00000073 ecall
800005f4: c0001073 unimp
800005f8: 0000 unimp
800005fa: 0000 unimp
800005fc: 0000 unimp
800005fe: 0000 unimp
80000600: 0000 unimp
80000602: 0000 unimp
Disassembly of section .data:
80002000 <test_2_data>:
80002000: 0000 unimp
80002002: 0000 unimp
80002004: 0000 unimp
80002006: 4004 lw s1,0(s0)
80002008: 0000 unimp
8000200a: 0000 unimp
8000200c: 0000 unimp
8000200e: 3ff0 fld fa2,248(a5)
80002010: 0000 unimp
80002012: 0000 unimp
80002014: 0000 unimp
80002016: 0000 unimp
80002018: 0000 unimp
8000201a: 0000 unimp
8000201c: 0000 unimp
8000201e: 3ff0 fld fa2,248(a5)
80002020 <test_3_data>:
80002020: 6666 flw fa2,88(sp)
80002022: 6666 flw fa2,88(sp)
80002024: 4c66 lw s8,88(sp)
80002026: 999ac093 xori ra,s5,-1639
8000202a: 9999 andi a1,a1,-26
8000202c: 9999 andi a1,a1,-26
8000202e: 3ff1 jal 8000200a <test_2_data+0xa>
80002030: 0000 unimp
80002032: 0000 unimp
80002034: 0000 unimp
80002036: 0000 unimp
80002038: 6666 flw fa2,88(sp)
8000203a: 6666 flw fa2,88(sp)
8000203c: 4c66 lw s8,88(sp)
8000203e: xori ra,s5,-1639
80002040 <test_4_data>:
80002040: 999a add s3,s3,t1
80002042: 9999 andi a1,a1,-26
80002044: 9999 andi a1,a1,-26
80002046: 3ff1 jal 80002022 <test_3_data+0x2>
80002048: 6666 flw fa2,88(sp)
8000204a: 6666 flw fa2,88(sp)
8000204c: 4c66 lw s8,88(sp)
8000204e: 0000c093 xori ra,ra,0
80002052: 0000 unimp
80002054: 0000 unimp
80002056: 0000 unimp
80002058: 6666 flw fa2,88(sp)
8000205a: 6666 flw fa2,88(sp)
8000205c: 4c66 lw s8,88(sp)
8000205e: not ra,t6
80002060 <test_5_data>:
80002060: ffff 0xffff
80002062: ffff 0xffff
80002064: ffff 0xffff
80002066: 7fff 0x7fff
80002068: 6666 flw fa2,88(sp)
8000206a: 6666 flw fa2,88(sp)
8000206c: 4c66 lw s8,88(sp)
8000206e: 0000c093 xori ra,ra,0
80002072: 0000 unimp
80002074: 0000 unimp
80002076: 0000 unimp
80002078: 6666 flw fa2,88(sp)
8000207a: 6666 flw fa2,88(sp)
8000207c: 4c66 lw s8,88(sp)
8000207e: xori ra,gp,-689
80002080 <test_6_data>:
80002080: d4f1 beqz s1,8000204c <test_4_data+0xc>
80002082: 53c8 lw a0,36(a5)
80002084: 400921fb 0x400921fb
80002088: 8c3a mv s8,a4
8000208a: e230 fsw fa2,64(a2)
8000208c: 798e flw fs3,224(sp)
8000208e: 3e45 jal 80001c3e <fromhost+0xbfe>
80002090: 0000 unimp
80002092: 0000 unimp
80002094: 0000 unimp
80002096: 0000 unimp
80002098: 8c3a mv s8,a4
8000209a: e230 fsw fa2,64(a2)
8000209c: 798e flw fs3,224(sp)
8000209e: 3e45 jal 80001c4e <fromhost+0xc0e>
800020a0 <test_7_data>:
800020a0: 0000 unimp
800020a2: 0000 unimp
800020a4: 0000 unimp
800020a6: bff0 fsd fa2,248(a5)
800020a8: 0000 unimp
800020aa: 0000 unimp
800020ac: 0000 unimp
800020ae: c000 sw s0,0(s0)
800020b0: 0000 unimp
800020b2: 0000 unimp
800020b4: 0000 unimp
800020b6: 0000 unimp
800020b8: 0000 unimp
800020ba: 0000 unimp
800020bc: 0000 unimp
800020be: c000 sw s0,0(s0)
800020c0 <test_12_data>:
800020c0: 0000 unimp
800020c2: 0000 unimp
800020c4: 0000 unimp
800020c6: 4004 lw s1,0(s0)
800020c8: 0000 unimp
800020ca: 0000 unimp
800020cc: 0000 unimp
800020ce: 3ff0 fld fa2,248(a5)
800020d0: 0000 unimp
800020d2: 0000 unimp
800020d4: 0000 unimp
800020d6: 0000 unimp
800020d8: 0000 unimp
800020da: 0000 unimp
800020dc: 0000 unimp
800020de: 4004 lw s1,0(s0)
800020e0 <test_13_data>:
800020e0: 6666 flw fa2,88(sp)
800020e2: 6666 flw fa2,88(sp)
800020e4: 4c66 lw s8,88(sp)
800020e6: 999ac093 xori ra,s5,-1639
800020ea: 9999 andi a1,a1,-26
800020ec: 9999 andi a1,a1,-26
800020ee: 3ff1 jal 800020ca <test_12_data+0xa>
800020f0: 0000 unimp
800020f2: 0000 unimp
800020f4: 0000 unimp
800020f6: 0000 unimp
800020f8: 999a add s3,s3,t1
800020fa: 9999 andi a1,a1,-26
800020fc: 9999 andi a1,a1,-26
800020fe: 3ff1 jal 800020da <test_12_data+0x1a>
80002100 <test_14_data>:
80002100: 999a add s3,s3,t1
80002102: 9999 andi a1,a1,-26
80002104: 9999 andi a1,a1,-26
80002106: 3ff1 jal 800020e2 <test_13_data+0x2>
80002108: 6666 flw fa2,88(sp)
8000210a: 6666 flw fa2,88(sp)
8000210c: 4c66 lw s8,88(sp)
8000210e: 0000c093 xori ra,ra,0
80002112: 0000 unimp
80002114: 0000 unimp
80002116: 0000 unimp
80002118: 999a add s3,s3,t1
8000211a: 9999 andi a1,a1,-26
8000211c: 9999 andi a1,a1,-26
8000211e: 3ff1 jal 800020fa <test_13_data+0x1a>
80002120 <test_15_data>:
80002120: ffff 0xffff
80002122: ffff 0xffff
80002124: ffff 0xffff
80002126: 7fff 0x7fff
80002128: 6666 flw fa2,88(sp)
8000212a: 6666 flw fa2,88(sp)
8000212c: 4c66 lw s8,88(sp)
8000212e: 0000c093 xori ra,ra,0
80002132: 0000 unimp
80002134: 0000 unimp
80002136: 0000 unimp
80002138: 6666 flw fa2,88(sp)
8000213a: 6666 flw fa2,88(sp)
8000213c: 4c66 lw s8,88(sp)
8000213e: xori ra,gp,-689
80002140 <test_16_data>:
80002140: d4f1 beqz s1,8000210c <test_14_data+0xc>
80002142: 53c8 lw a0,36(a5)
80002144: 400921fb 0x400921fb
80002148: 8c3a mv s8,a4
8000214a: e230 fsw fa2,64(a2)
8000214c: 798e flw fs3,224(sp)
8000214e: 3e45 jal 80001cfe <fromhost+0xcbe>
80002150: 0000 unimp
80002152: 0000 unimp
80002154: 0000 unimp
80002156: 0000 unimp
80002158: d4f1 beqz s1,80002124 <test_15_data+0x4>
8000215a: 53c8 lw a0,36(a5)
8000215c: 400921fb 0x400921fb
80002160 <test_17_data>:
80002160: 0000 unimp
80002162: 0000 unimp
80002164: 0000 unimp
80002166: bff0 fsd fa2,248(a5)
80002168: 0000 unimp
8000216a: 0000 unimp
8000216c: 0000 unimp
8000216e: c000 sw s0,0(s0)
80002170: 0000 unimp
80002172: 0000 unimp
80002174: 0000 unimp
80002176: 0000 unimp
80002178: 0000 unimp
8000217a: 0000 unimp
8000217c: 0000 unimp
8000217e: bff0 fsd fa2,248(a5)
80002180 <test_20_data>:
80002180: 0001 nop
80002182: 0000 unimp
80002184: 0000 unimp
80002186: 7ff0 flw fa2,124(a5)
80002188: 0000 unimp
8000218a: 0000 unimp
8000218c: 0000 unimp
8000218e: 3ff0 fld fa2,248(a5)
80002190: 0000 unimp
80002192: 0000 unimp
80002194: 0000 unimp
80002196: 0000 unimp
80002198: 0000 unimp
8000219a: 0000 unimp
8000219c: 0000 unimp
8000219e: 3ff0 fld fa2,248(a5)
800021a0 <test_21_data>:
800021a0: ffff 0xffff
800021a2: ffff 0xffff
800021a4: ffff 0xffff
800021a6: 7fff 0x7fff
800021a8: ffff 0xffff
800021aa: ffff 0xffff
800021ac: ffff 0xffff
800021ae: 7fff 0x7fff
800021b0: 0000 unimp
800021b2: 0000 unimp
800021b4: 0000 unimp
800021b6: 0000 unimp
800021b8: 0000 unimp
800021ba: 0000 unimp
800021bc: 0000 unimp
800021be: 7ff8 flw fa4,124(a5)
800021c0 <test_30_data>:
800021c0: 0000 unimp
800021c2: 0000 unimp
800021c4: 0000 unimp
800021c6: 8000 0x8000
800021c8: 0000 unimp
800021ca: 0000 unimp
800021cc: 0000 unimp
800021ce: 0000 unimp
800021d0: 0000 unimp
800021d2: 0000 unimp
800021d4: 0000 unimp
800021d6: 0000 unimp
800021d8: 0000 unimp
800021da: 0000 unimp
800021dc: 0000 unimp
800021de: 8000 0x8000
800021e0 <test_31_data>:
800021e0: 0000 unimp
800021e2: 0000 unimp
800021e4: 0000 unimp
800021e6: 0000 unimp
800021e8: 0000 unimp
800021ea: 0000 unimp
800021ec: 0000 unimp
800021ee: 8000 0x8000
800021f0: 0000 unimp
800021f2: 0000 unimp
800021f4: 0000 unimp
800021f6: 0000 unimp
800021f8: 0000 unimp
800021fa: 0000 unimp
800021fc: 0000 unimp
800021fe: 8000 0x8000
80002200 <test_32_data>:
80002200: 0000 unimp
80002202: 0000 unimp
80002204: 0000 unimp
80002206: 8000 0x8000
80002208: 0000 unimp
8000220a: 0000 unimp
8000220c: 0000 unimp
8000220e: 0000 unimp
80002210: 0000 unimp
80002212: 0000 unimp
80002214: 0000 unimp
80002216: 0000 unimp
80002218: 0000 unimp
8000221a: 0000 unimp
8000221c: 0000 unimp
8000221e: 0000 unimp
80002220 <test_33_data>:
80002220: 0000 unimp
80002222: 0000 unimp
80002224: 0000 unimp
80002226: 0000 unimp
80002228: 0000 unimp
8000222a: 0000 unimp
8000222c: 0000 unimp
8000222e: 8000 0x8000
80002230: 0000 unimp
80002232: 0000 unimp
80002234: 0000 unimp
80002236: 0000 unimp
80002238: 0000 unimp
8000223a: 0000 unimp
8000223c: 0000 unimp
8000223e: 0000 unimp

BIN
Tests/isa/rv32ud-p-ldst Normal file

Binary file not shown.

View File

@@ -0,0 +1,239 @@
rv32ud-p-ldst: file format elf32-littleriscv
Disassembly of section .text.init:
80000000 <_start>:
80000000: 04c0006f j 8000004c <reset_vector>
80000004 <trap_vector>:
80000004: 34202f73 csrr t5,mcause
80000008: 00800f93 li t6,8
8000000c: 03ff0a63 beq t5,t6,80000040 <write_tohost>
80000010: 00900f93 li t6,9
80000014: 03ff0663 beq t5,t6,80000040 <write_tohost>
80000018: 00b00f93 li t6,11
8000001c: 03ff0263 beq t5,t6,80000040 <write_tohost>
80000020: 80000f17 auipc t5,0x80000
80000024: fe0f0f13 addi t5,t5,-32 # 0 <_start-0x80000000>
80000028: 000f0463 beqz t5,80000030 <trap_vector+0x2c>
8000002c: 000f0067 jr t5
80000030: 34202f73 csrr t5,mcause
80000034: 000f5463 bgez t5,8000003c <handle_exception>
80000038: 0040006f j 8000003c <handle_exception>
8000003c <handle_exception>:
8000003c: 5391e193 ori gp,gp,1337
80000040 <write_tohost>:
80000040: 00001f17 auipc t5,0x1
80000044: fc3f2023 sw gp,-64(t5) # 80001000 <tohost>
80000048: ff9ff06f j 80000040 <write_tohost>
8000004c <reset_vector>:
8000004c: f1402573 csrr a0,mhartid
80000050: 00051063 bnez a0,80000050 <reset_vector+0x4>
80000054: 00000297 auipc t0,0x0
80000058: 01028293 addi t0,t0,16 # 80000064 <reset_vector+0x18>
8000005c: 30529073 csrw mtvec,t0
80000060: 18005073 csrwi satp,0
80000064: 00000297 auipc t0,0x0
80000068: 01c28293 addi t0,t0,28 # 80000080 <reset_vector+0x34>
8000006c: 30529073 csrw mtvec,t0
80000070: fff00293 li t0,-1
80000074: 3b029073 csrw pmpaddr0,t0
80000078: 01f00293 li t0,31
8000007c: 3a029073 csrw pmpcfg0,t0
80000080: 00000297 auipc t0,0x0
80000084: 01828293 addi t0,t0,24 # 80000098 <reset_vector+0x4c>
80000088: 30529073 csrw mtvec,t0
8000008c: 30205073 csrwi medeleg,0
80000090: 30305073 csrwi mideleg,0
80000094: 30405073 csrwi mie,0
80000098: 00000193 li gp,0
8000009c: 00000297 auipc t0,0x0
800000a0: f6828293 addi t0,t0,-152 # 80000004 <trap_vector>
800000a4: 30529073 csrw mtvec,t0
800000a8: 00100513 li a0,1
800000ac: 01f51513 slli a0,a0,0x1f
800000b0: 00054863 bltz a0,800000c0 <reset_vector+0x74>
800000b4: 0ff0000f fence
800000b8: 00100193 li gp,1
800000bc: 00000073 ecall
800000c0: 80000297 auipc t0,0x80000
800000c4: f4028293 addi t0,t0,-192 # 0 <_start-0x80000000>
800000c8: 00028e63 beqz t0,800000e4 <reset_vector+0x98>
800000cc: 10529073 csrw stvec,t0
800000d0: 0000b2b7 lui t0,0xb
800000d4: 10928293 addi t0,t0,265 # b109 <_start-0x7fff4ef7>
800000d8: 30229073 csrw medeleg,t0
800000dc: 30202373 csrr t1,medeleg
800000e0: f4629ee3 bne t0,t1,8000003c <handle_exception>
800000e4: 30005073 csrwi mstatus,0
800000e8: 00002537 lui a0,0x2
800000ec: 30052073 csrs mstatus,a0
800000f0: 00305073 csrwi fcsr,0
800000f4: 00000297 auipc t0,0x0
800000f8: 01428293 addi t0,t0,20 # 80000108 <reset_vector+0xbc>
800000fc: 34129073 csrw mepc,t0
80000100: f1402573 csrr a0,mhartid
80000104: 30200073 mret
80000108: 00002417 auipc s0,0x2
8000010c: f2840413 addi s0,s0,-216 # 80002030 <begin_signature>
80000110 <test_2>:
80000110: 00043107 fld ft2,0(s0)
80000114: 00243827 fsd ft2,16(s0)
80000118: 01042503 lw a0,16(s0)
8000011c: 01442583 lw a1,20(s0)
80000120: 00002f97 auipc t6,0x2
80000124: ee0f8f93 addi t6,t6,-288 # 80002000 <test_2_data>
80000128: 000fae83 lw t4,0(t6)
8000012c: 004faf83 lw t6,4(t6)
80000130: 00200193 li gp,2
80000134: 0bd51e63 bne a0,t4,800001f0 <fail>
80000138: 0bf59c63 bne a1,t6,800001f0 <fail>
8000013c <test_3>:
8000013c: 00043107 fld ft2,0(s0)
80000140: 00242827 fsw ft2,16(s0)
80000144: 01042503 lw a0,16(s0)
80000148: 01442583 lw a1,20(s0)
8000014c: 00002f97 auipc t6,0x2
80000150: ebcf8f93 addi t6,t6,-324 # 80002008 <test_3_data>
80000154: 000fae83 lw t4,0(t6)
80000158: 004faf83 lw t6,4(t6)
8000015c: 00300193 li gp,3
80000160: 09d51863 bne a0,t4,800001f0 <fail>
80000164: 09f59663 bne a1,t6,800001f0 <fail>
80000168 <test_4>:
80000168: 00042107 flw ft2,0(s0)
8000016c: 00242827 fsw ft2,16(s0)
80000170: 01042503 lw a0,16(s0)
80000174: 01442583 lw a1,20(s0)
80000178: 00002f97 auipc t6,0x2
8000017c: e98f8f93 addi t6,t6,-360 # 80002010 <test_4_data>
80000180: 000fae83 lw t4,0(t6)
80000184: 004faf83 lw t6,4(t6)
80000188: 00400193 li gp,4
8000018c: 07d51263 bne a0,t4,800001f0 <fail>
80000190: 07f59063 bne a1,t6,800001f0 <fail>
80000194 <test_5>:
80000194: 00843107 fld ft2,8(s0)
80000198: 00243827 fsd ft2,16(s0)
8000019c: 01042503 lw a0,16(s0)
800001a0: 01442583 lw a1,20(s0)
800001a4: 00002f97 auipc t6,0x2
800001a8: e74f8f93 addi t6,t6,-396 # 80002018 <test_5_data>
800001ac: 000fae83 lw t4,0(t6)
800001b0: 004faf83 lw t6,4(t6)
800001b4: 00500193 li gp,5
800001b8: 03d51c63 bne a0,t4,800001f0 <fail>
800001bc: 03f59a63 bne a1,t6,800001f0 <fail>
800001c0 <test_6>:
800001c0: 00842107 flw ft2,8(s0)
800001c4: 00243827 fsd ft2,16(s0)
800001c8: 01042503 lw a0,16(s0)
800001cc: 01442583 lw a1,20(s0)
800001d0: 00002f97 auipc t6,0x2
800001d4: e50f8f93 addi t6,t6,-432 # 80002020 <test_6_data>
800001d8: 000fae83 lw t4,0(t6)
800001dc: 004faf83 lw t6,4(t6)
800001e0: 00600193 li gp,6
800001e4: 01d51663 bne a0,t4,800001f0 <fail>
800001e8: 01f59463 bne a1,t6,800001f0 <fail>
800001ec: 00301c63 bne zero,gp,80000204 <pass>
800001f0 <fail>:
800001f0: 0ff0000f fence
800001f4: 00018063 beqz gp,800001f4 <fail+0x4>
800001f8: 00119193 slli gp,gp,0x1
800001fc: 0011e193 ori gp,gp,1
80000200: 00000073 ecall
80000204 <pass>:
80000204: 0ff0000f fence
80000208: 00100193 li gp,1
8000020c: 00000073 ecall
80000210: c0001073 unimp
80000214: 0000 unimp
80000216: 0000 unimp
80000218: 0000 unimp
8000021a: 0000 unimp
8000021c: 0000 unimp
8000021e: 0000 unimp
80000220: 0000 unimp
80000222: 0000 unimp
80000224: 0000 unimp
80000226: 0000 unimp
80000228: 0000 unimp
8000022a: 0000 unimp
8000022c: 0000 unimp
8000022e: 0000 unimp
80000230: 0000 unimp
80000232: 0000 unimp
80000234: 0000 unimp
80000236: 0000 unimp
80000238: 0000 unimp
8000023a: 0000 unimp
8000023c: 0000 unimp
8000023e: 0000 unimp
80000240: 0000 unimp
80000242: 0000 unimp
Disassembly of section .data:
80002000 <test_2_data>:
80002000: 0000 unimp
80002002: bf80 fsd fs0,56(a5)
80002004: 0000 unimp
80002006: 4000 lw s0,0(s0)
80002008 <test_3_data>:
80002008: 0000 unimp
8000200a: bf80 fsd fs0,56(a5)
8000200c: 0000 unimp
8000200e: 4000 lw s0,0(s0)
80002010 <test_4_data>:
80002010: 0000 unimp
80002012: bf80 fsd fs0,56(a5)
80002014: 0000 unimp
80002016: 4000 lw s0,0(s0)
80002018 <test_5_data>:
80002018: 0000 unimp
8000201a: 4040 lw s0,4(s0)
8000201c: 0000 unimp
8000201e: c080 sw s0,0(s1)
80002020 <test_6_data>:
80002020: 0000 unimp
80002022: 4040 lw s0,4(s0)
80002024: ffff 0xffff
80002026: ffff 0xffff
80002028: 0000 unimp
8000202a: 0000 unimp
8000202c: 0000 unimp
8000202e: 0000 unimp
80002030 <begin_signature>:
80002030: 0000 unimp
80002032: bf80 fsd fs0,56(a5)
80002034: 0000 unimp
80002036: 4000 lw s0,0(s0)
80002038: 0000 unimp
8000203a: 4040 lw s0,4(s0)
8000203c: 0000 unimp
8000203e: c080 sw s0,0(s1)
80002040: deadbeef jal t4,7ffdd62a <_start-0x229d6>
80002044: babe fsd fa5,368(sp)
80002046: cafe sw t6,84(sp)
80002048: 1dea slli s11,s11,0x3a
8000204a: abad j 800025c4 <_end+0x574>
8000204c: d00d beqz s0,80001f6e <fromhost+0xf2e>
8000204e: lui t1,0x1

BIN
Tests/isa/rv32ud-p-recoding Normal file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More