Apply changes from https://github.com/dotnet/runtime/commit/eb1756e97d23df13bc6fe798e...
[mono-project.git] / mono / mini / cpu-riscv64.md
blob0a4863df53137ffa65e3d740fcd645c3b4f300c6
1 # Licensed to the .NET Foundation under one or more agreements.
2 # The .NET Foundation licenses this file to you under the MIT license.
4 # RISC-V RV64 Machine Description
6 # This file describes various properties of Mini instructions for RV64 and is
7 # read by genmdesc.py to generate a C header file used by various parts of the
8 # JIT.
10 # Lines are of the form:
12 #     <name>: len:<length> [dest:<rspec>] [src1:<rspec>] [src2:<rspec>] [src3:<rspec>] [clob:<cspec>]
14 # Here, <name> is the name of the instruction as specified in mini-ops.h.
15 # length is the maximum number of bytes that could be needed to generate native
16 # code for the instruction. dest, src1, src2, and src3 specify output and input
17 # registers needed by the instruction. <rspec> can be one of:
19 #     a    a0
20 #     i    any integer register
21 #     b    any integer register (used as a pointer)
22 #     f    any float register (a0 in soft float)
24 # clob specifies which registers are clobbered (i.e. overwritten with garbage)
25 # by the instruction. <cspec> can be one of:
27 #     a    a0
28 #     c    all caller-saved registers