mirror of
https://github.com/johnwinans/rvalp.git
synced 2025-09-27 05:04:39 -04:00
Fix figures for FENCE and CSRR insns.
This commit is contained in:
parent
28378c4319
commit
f571cb705b
@ -446,6 +446,95 @@
|
||||
\DrawInsnTypeRTikz{#2}
|
||||
}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% #1 the binary encoding
|
||||
\newcommand\DrawInsnTypeFTikz[1]{
|
||||
\BeginTikzPicture
|
||||
\StrLen{#1}[\numchars]
|
||||
\DrawInsnBitstring{\numchars}{#1}{FENCE}
|
||||
\DrawInsnBoxSeg{\numchars}{31}{28}{}
|
||||
\DrawInsnBoxSeg{\numchars}{27}{24}{pred}
|
||||
\DrawInsnBoxSeg{\numchars}{23}{20}{succ}
|
||||
\DrawInsnBoxSeg{\numchars}{19}{15}{}
|
||||
\DrawInsnBoxSeg{\numchars}{14}{12}{funct3}
|
||||
\DrawInsnBoxSeg{\numchars}{11}{7}{}
|
||||
\DrawInsnBoxSeg{\numchars}{6}{0}{opcode}
|
||||
|
||||
\DrawHexMarkers{\numchars}
|
||||
\EndTikzPicture
|
||||
}
|
||||
|
||||
\newcommand\DrawInsnTypeFPicture[2]{
|
||||
\InsnStatement{#1}\\
|
||||
\DrawInsnTypeFTikz{#2}
|
||||
}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% #1 the binary encoding
|
||||
\newcommand\DrawInsnTypeETikz[1]{
|
||||
\BeginTikzPicture
|
||||
\StrLen{#1}[\numchars]
|
||||
\DrawInsnBitstring{\numchars}{#1}{\hyperref[insnformat:itype]{I-type}}
|
||||
\DrawInsnBoxSeg{\numchars}{31}{20}{}
|
||||
\DrawInsnBoxSeg{\numchars}{19}{15}{}
|
||||
\DrawInsnBoxSeg{\numchars}{14}{12}{funct3}
|
||||
\DrawInsnBoxSeg{\numchars}{11}{7}{}
|
||||
\DrawInsnBoxSeg{\numchars}{6}{0}{opcode}
|
||||
|
||||
\DrawHexMarkers{\numchars}
|
||||
\EndTikzPicture
|
||||
}
|
||||
|
||||
\newcommand\DrawInsnTypeEPicture[2]{
|
||||
\InsnStatement{#1}\\
|
||||
\DrawInsnTypeETikz{#2}
|
||||
}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% #1 the binary encoding
|
||||
\newcommand\DrawInsnTypeCSTikz[1]{
|
||||
\BeginTikzPicture
|
||||
\StrLen{#1}[\numchars]
|
||||
\DrawInsnBitstring{\numchars}{#1}{\hyperref[insnformat:itype]{I-type}}
|
||||
\DrawInsnBoxSeg{\numchars}{31}{20}{csr}
|
||||
\DrawInsnBoxSeg{\numchars}{19}{15}{rs1}
|
||||
\DrawInsnBoxSeg{\numchars}{14}{12}{funct3}
|
||||
\DrawInsnBoxSeg{\numchars}{11}{7}{rd}
|
||||
\DrawInsnBoxSeg{\numchars}{6}{0}{opcode}
|
||||
|
||||
\DrawHexMarkers{\numchars}
|
||||
\EndTikzPicture
|
||||
}
|
||||
|
||||
\newcommand\DrawInsnTypeCSPicture[2]{
|
||||
\InsnStatement{#1}\\
|
||||
\DrawInsnTypeCSTikz{#2}
|
||||
}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
% #1 the binary encoding
|
||||
\newcommand\DrawInsnTypeCSITikz[1]{
|
||||
\BeginTikzPicture
|
||||
\StrLen{#1}[\numchars]
|
||||
\DrawInsnBitstring{\numchars}{#1}{\hyperref[insnformat:itype]{I-type}}
|
||||
\DrawInsnBoxSeg{\numchars}{31}{20}{csr}
|
||||
\DrawInsnBoxSeg{\numchars}{19}{15}{zimm}
|
||||
\DrawInsnBoxSeg{\numchars}{14}{12}{funct3}
|
||||
\DrawInsnBoxSeg{\numchars}{11}{7}{rd}
|
||||
\DrawInsnBoxSeg{\numchars}{6}{0}{opcode}
|
||||
|
||||
\DrawHexMarkers{\numchars}
|
||||
\EndTikzPicture
|
||||
}
|
||||
|
||||
\newcommand\DrawInsnTypeCSIPicture[2]{
|
||||
\InsnStatement{#1}\\
|
||||
\DrawInsnTypeCSITikz{#2}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
@ -1464,6 +1464,7 @@ x7 = 0x00000322
|
||||
\subsection{FENCE predecessor, successor}
|
||||
\index{Instruction!FENCE}
|
||||
|
||||
\enote{Which of the i, o, r and w goes into each bit? See what gas does.}%
|
||||
The FENCE instruction is used to order device I/O and memory accesses as
|
||||
viewed by other RISC-V harts and external devices or co-processors. Any
|
||||
combination of device input (I), device output (O), memory reads (R),
|
||||
@ -1486,11 +1487,7 @@ Operation:
|
||||
|
||||
Encoding:
|
||||
|
||||
%\insnTypeF{FENCE iorw, iorw}
|
||||
{0 0 0 1 1 1 1} % op
|
||||
{0 0 0} % funct3
|
||||
{1 1 1 1} % predecessor iorw
|
||||
{1 1 1 1} % successor iorw
|
||||
\DrawInsnTypeFPicture{FENCE iorw, iorw}{00001111111100000000000000001111}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\subsection{FENCE.I}
|
||||
@ -1515,11 +1512,7 @@ Operation:
|
||||
|
||||
Encoding:
|
||||
|
||||
%\insnTypeF{FENCE.I}
|
||||
{0 0 0 1 1 1 1} % op
|
||||
{0 0 1} % funct3
|
||||
{0 0 0 0} % predecessor iorw
|
||||
{0 0 0 0} % successor iorw
|
||||
\DrawInsnTypeFPicture{FENCE.I}{00000000000000000001000000001111}
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
@ -1532,12 +1525,7 @@ for the system will define how parameters for the environment
|
||||
request are passed, but usually these will be in defined locations
|
||||
in the integer register file.~\cite[p.~24]{rvismv1v22:2017}
|
||||
|
||||
%\insnTypeI{ECALL}
|
||||
{1 1 1 0 0 1 1}
|
||||
{0 0 0 0 0}
|
||||
{0 0 0}
|
||||
{0 0 0 0 0}
|
||||
{0 0 0 0 0 0 0 0 0 0 0 0}
|
||||
\DrawInsnTypeEPicture{ECALL}{00000000000000000000000001110011}
|
||||
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
@ -1547,12 +1535,7 @@ in the integer register file.~\cite[p.~24]{rvismv1v22:2017}
|
||||
The EBREAK instruction is used by debuggers to cause control to be
|
||||
transferred back to a debugging environment.~\cite[p.~24]{rvismv1v22:2017}
|
||||
|
||||
%\insnTypeI{ECALL}
|
||||
{1 1 1 0 0 1 1}
|
||||
{0 0 0 0 0}
|
||||
{0 0 0}
|
||||
{0 0 0 0 0}
|
||||
{0 0 0 0 0 0 0 0 0 0 0 1}
|
||||
\DrawInsnTypeEPicture{EBREAK}{00000000000100000000000001110011}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\subsection{CSRRW rd, csr, rs1}
|
||||
@ -1565,12 +1548,7 @@ The initial value in rs1 is written to the CSR. If rd=x0, then the
|
||||
instruction shall not read the CSR and shall not cause any of the
|
||||
side-effects that might occur on a CSR read.~\cite[p.~22]{rvismv1v22:2017}
|
||||
|
||||
%\insnTypeCSRR{CSRRW x3, 2, x15}
|
||||
{1 1 1 0 0 1 1} % op
|
||||
{0 0 0 1 1} % rd
|
||||
{0 0 1} % funct3
|
||||
{0 1 1 1 1} % rs1
|
||||
{0 0 0 0 0 0 0 0 0 0 1 0} % csr
|
||||
\DrawInsnTypeCSPicture{CSRRW x3, 2, x15}{00000000001001111001000111110011}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\subsection{CSRRS rd, csr, rs1}
|
||||
@ -1592,13 +1570,7 @@ register holding a zero value other than x0, the instruction will still
|
||||
attempt to write the unmodified value back to the CSR and will cause any
|
||||
attendant side effects.~\cite[p.~22]{rvismv1v22:2017}
|
||||
|
||||
|
||||
%\insnTypeCSRR{CSRRS x3, 2, x15}
|
||||
{1 1 1 0 0 1 1} % op
|
||||
{0 0 0 1 1} % rd
|
||||
{0 1 0} % funct3
|
||||
{0 1 1 1 1} % rs1
|
||||
{0 0 0 0 0 0 0 0 0 0 1 0} % csr
|
||||
\DrawInsnTypeCSPicture{CSRRS x3, 2, x15}{00000000001001111010000111110011}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\subsection{CSRRC rd, csr, rs1}
|
||||
@ -1620,14 +1592,7 @@ register holding a zero value other than x0, the instruction will still
|
||||
attempt to write the unmodified value back to the CSR and will cause any
|
||||
attendant side effects.~\cite[p.~22]{rvismv1v22:2017}
|
||||
|
||||
%\insnTypeCSRR{CSRRC x3, 2, x15}
|
||||
{1 1 1 0 0 1 1} % op
|
||||
{0 0 0 1 1} % rd
|
||||
{0 1 1} % funct3
|
||||
{0 1 1 1 1} % rs1
|
||||
{0 0 0 0 0 0 0 0 0 0 1 0} % csr
|
||||
|
||||
|
||||
\DrawInsnTypeCSPicture{CSRRC x3, 2, x15}{00000000001001111011000111110011}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\subsection{CSRRWI rd, csr, imm}
|
||||
@ -1636,12 +1601,7 @@ attendant side effects.~\cite[p.~22]{rvismv1v22:2017}
|
||||
This instruction is the same as CSRRW except a 5-bit unsigned (zero-extended)
|
||||
immediate value is used rather than the value from a register.
|
||||
|
||||
%\insnTypeCSRR{CSRRWI x3, 2, 7}
|
||||
{1 1 1 0 0 1 1} % op
|
||||
{0 0 0 1 1} % rd
|
||||
{1 0 1} % funct3
|
||||
{0 0 1 1 1} % imm
|
||||
{0 0 0 0 0 0 0 0 0 0 1 0} % csr
|
||||
\DrawInsnTypeCSIPicture{CSRRWI x3, 2, 7}{00000000001000111101000111110011}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\subsection{CSRRSI rd, csr, rs1}
|
||||
@ -1657,6 +1617,7 @@ the instruction shall not read the CSR and shall not cause any
|
||||
of the side-effects that might occur on a CSR
|
||||
read.~\cite[p.~22]{rvismv1v22:2017}
|
||||
|
||||
\DrawInsnTypeCSIPicture{CSRRSI x3, 2, 7}{00000000001000111110000111110011}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
\subsection{CSRRCI rd, csr, rs1}
|
||||
@ -1672,6 +1633,7 @@ the instruction shall not read the CSR and shall not cause any
|
||||
of the side-effects that might occur on a CSR
|
||||
read.~\cite[p.~22]{rvismv1v22:2017}
|
||||
|
||||
\DrawInsnTypeCSIPicture{CSRRCI x3, 2, 7}{00000000001000111111000111110011}
|
||||
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
|
||||
|
Loading…
x
Reference in New Issue
Block a user