add colour
[libreriscv.git] / openpower / simple_v_spec.tex
1 \documentclass[]{book}
2 \usepackage{lmodern}
3 \usepackage{amssymb,amsmath}
4 \usepackage{lscape}
5 \usepackage{sectsty}
6 \usepackage{appendix}
7 \usepackage{graphicx}
8 \usepackage{anyfontsize}
9 \usepackage{ifxetex,ifluatex}
10 \usepackage{fixltx2e} % provides \textsubscript
11 \ifnum 0\ifxetex 1\fi\ifluatex 1\fi=0 % if pdftex
12 \usepackage[T1]{fontenc}
13 \usepackage[utf8]{inputenc}
14 \else % if luatex or xelatex
15 \ifxetex
16 \usepackage{mathspec}
17 \else
18 \usepackage{fontspec}
19 \fi
20 \defaultfontfeatures{Ligatures=TeX,Scale=MatchLowercase}
21 \fi
22 % use upquote if available, for straight quotes in verbatim environments
23 \IfFileExists{upquote.sty}{\usepackage{upquote}}{}
24 % use microtype if available
25 \IfFileExists{microtype.sty}{%
26 \usepackage[]{microtype}
27 \UseMicrotypeSet[protrusion]{basicmath} % disable protrusion for tt fonts
28 }{}
29 \PassOptionsToPackage{hyphens}{url} % url is loaded by hyperref
30 \usepackage[unicode=true]{hyperref}
31 \hypersetup{
32 pdfborder={0 0 0},
33 breaklinks=true}
34 \usepackage[margin=0.9in]{geometry}
35 \usepackage{color}
36 \usepackage{fancyvrb}
37 \newcommand{\VerbBar}{|}
38 \newcommand{\VERB}{\Verb[commandchars=\\\{\}]}
39 \DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\{\}}
40 % Add ',fontsize=\small' for more characters per line
41 \newenvironment{Shaded}{}{}
42 \newcommand{\KeywordTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
43 \newcommand{\DataTypeTok}[1]{\textcolor[rgb]{0.56,0.13,0.00}{#1}}
44 \newcommand{\DecValTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
45 \newcommand{\BaseNTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
46 \newcommand{\FloatTok}[1]{\textcolor[rgb]{0.25,0.63,0.44}{#1}}
47 \newcommand{\ConstantTok}[1]{\textcolor[rgb]{0.53,0.00,0.00}{#1}}
48 \newcommand{\CharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
49 \newcommand{\SpecialCharTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
50 \newcommand{\StringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
51 \newcommand{\VerbatimStringTok}[1]{\textcolor[rgb]{0.25,0.44,0.63}{#1}}
52 \newcommand{\SpecialStringTok}[1]{\textcolor[rgb]{0.73,0.40,0.53}{#1}}
53 \newcommand{\ImportTok}[1]{#1}
54 \newcommand{\CommentTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textit{#1}}}
55 \newcommand{\DocumentationTok}[1]{\textcolor[rgb]{0.73,0.13,0.13}{\textit{#1}}}
56 \newcommand{\AnnotationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
57 \newcommand{\CommentVarTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
58 \newcommand{\OtherTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{#1}}
59 \newcommand{\FunctionTok}[1]{\textcolor[rgb]{0.02,0.16,0.49}{#1}}
60 \newcommand{\VariableTok}[1]{\textcolor[rgb]{0.10,0.09,0.49}{#1}}
61 \newcommand{\ControlFlowTok}[1]{\textcolor[rgb]{0.00,0.44,0.13}{\textbf{#1}}}
62 \newcommand{\OperatorTok}[1]{\textcolor[rgb]{0.40,0.40,0.40}{#1}}
63 \newcommand{\BuiltInTok}[1]{#1}
64 \newcommand{\ExtensionTok}[1]{#1}
65 \newcommand{\PreprocessorTok}[1]{\textcolor[rgb]{0.74,0.48,0.00}{#1}}
66 \newcommand{\AttributeTok}[1]{\textcolor[rgb]{0.49,0.56,0.16}{#1}}
67 \newcommand{\RegionMarkerTok}[1]{#1}
68 \newcommand{\InformationTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
69 \newcommand{\WarningTok}[1]{\textcolor[rgb]{0.38,0.63,0.69}{\textbf{\textit{#1}}}}
70 \newcommand{\AlertTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}}
71 \newcommand{\ErrorTok}[1]{\textcolor[rgb]{1.00,0.00,0.00}{\textbf{#1}}}
72 \newcommand{\NormalTok}[1]{#1}
73 \usepackage{longtable,booktabs}
74 % Fix footnotes in tables (requires footnote package)
75 \IfFileExists{footnote.sty}{\usepackage{footnote}\makesavenoteenv{long
76 table}}{}
77 \IfFileExists{parskip.sty}{%
78 \usepackage{parskip}
79 }{% else
80 \setlength{\parindent}{0pt}
81 \setlength{\parskip}{6pt plus 2pt minus 1pt}
82 }
83 \setlength{\emergencystretch}{3em} % prevent overfull lines
84 \providecommand{\tightlist}{%
85 \setlength{\itemsep}{0pt}\setlength{\parskip}{0pt}}
86 \setcounter{secnumdepth}{5}
87 % Redefines (sub)paragraphs to behave more like sections
88 \ifx\paragraph\undefined\else
89 \let\oldparagraph\paragraph
90 \renewcommand{\paragraph}[1]{\oldparagraph{#1}\mbox{}}
91 \fi
92 \ifx\subparagraph\undefined\else
93 \let\oldsubparagraph\subparagraph
94 \renewcommand{\subparagraph}[1]{\oldsubparagraph{#1}\mbox{}}
95 \fi
96
97 % set default figure placement to htbp
98 \makeatletter\@addtoreset{chapter}{part}\makeatother%
99 \def\fps@figure{htbp}
100 \makeatother
101
102
103 \date{}
104
105 \begin{document}
106
107 \chapter*{Introduction}
108 \addcontentsline{toc}{chapter}{Introduction} \markboth{INTRODUCTION}{}
109
110 This document is an auto-generated version of the Draft SVP64
111 Specification available at
112
113 \begin{verbatim}
114 https://libre-soc.org/openpower/sv
115 \end{verbatim}
116
117 for which the source code is available at
118
119 \begin{verbatim}
120 https://git.libre-soc.org/?p=libreriscv.git;a=tree;f=openpower;hb=HEAD
121 \end{verbatim}
122
123 This PDF may be created with "make pdf" from the following file:
124
125 \begin{verbatim}
126 https://git.libre-soc.org/?p=libreriscv.git;a=blob;f=openpower/Makefile;hb=HEAD
127 \end{verbatim}
128
129 Simple-V Cray-style Vectors have been developed by the Libre-SOC Team,
130 sponsored by the NLnet Foundation and NGI POINTER under
131 EU Grants 871528 and 957073.
132
133 Simple-V is in DRAFT Status and will be submitted publicly
134 (non-confidentially) through the OPF ISA WG "External Submissions"
135 Process. Funding from NLnet, through their Privacy and Enhanced Trust
136 Programme, requires full transparency.
137
138 \tableofcontents
139
140 \part{Scalable Vectors}
141
142 \chapter{Scalable Vectors for the Power ISA}
143 \hypertarget{svux2fscalvecpowisa}{}
144 \hypertarget{SVux7csv}{}
145 \input{tex_out/sv.tex}
146 \chapter{Other Vector ISAs}\hypertarget{svux2fvector_isa_comparison}{}
147 \input{tex_out/vector_isas.tex}
148 \chapter{Overview}\hypertarget{svux2foverview}{}
149 \input{tex_out/overview.tex}
150 \chapter{Compliancy Levels}\hypertarget{svux2fcompliancy_levels}{}
151 \input{tex_out/compliancy_levels.tex}
152 \chapter{SVP64}\hypertarget{svux2fsvp64}{}
153 \input{tex_out/svp64.tex}
154 \chapter{SPRs}\hypertarget{svux2fsprs}{}
155 \input{tex_out/sprs.tex}
156 \chapter{Arithmetic Mode}\hypertarget{svux2fnormal}{}
157 \input{tex_out/normal.tex}
158 \chapter{Load/Store Mode}\hypertarget{svux2fldst}{}
159 \input{tex_out/ldst.tex}
160 \chapter{Condition Register Fields Mode}\hypertarget{svux2fcr_ops}{}
161 \input{tex_out/cr_ops.tex}
162 \chapter{Branch Mode}\hypertarget{svux2fbranches}{}
163 \input{tex_out/branches.tex}
164 \chapter{setvl instruction}\hypertarget{svux2fsetvl}{}
165 \input{tex_out/setvl.tex}
166 \chapter{svstep instruction}\hypertarget{svux2fsvstep}{}
167 \input{tex_out/svstep.tex}
168 \chapter{REMAP subsystem}\hypertarget{svux2fremap}{}
169 \input{tex_out/remap.tex}
170 \chapter{Swizzle Move}\hypertarget{svux2fmv.swizzle}{}
171 \input{tex_out/mv_swizzle.tex}
172 \chapter{Pack / Unpack}\hypertarget{svux2fmv.vec}{}
173 \input{tex_out/mv_vec.tex}
174
175 \begin{appendices}
176 \chapter{SVP64 Appendix}\hypertarget{svp64ux2fappendix}{}
177 \input{tex_out/svp64_appendix.tex}
178 \chapter{SVP64 Quirks}\hypertarget{svux2fsvp64_quirks}{}
179 \input{tex_out/svp64_quirks.tex}
180 \chapter{Simple-V pseudocode}\hypertarget{svux2fpseudocode_simplev}{}
181 \input{tex_out/pseudocode_simplev.tex}
182 \chapter{SVP64 Augmentation Table}\hypertarget{opcode_regs_deduped}{}
183 \begin{landscape}
184 {
185 \fontsize{7}{9}\selectfont
186 \input{tex_out/opcode_regs_deduped.tex}
187 }
188 \end{landscape}
189 \end{appendices}
190
191 \part{Scalar Instructions}
192
193 \chapter{Vector Assist ops}\hypertarget{svux2fvector_ops}{}
194 \input{tex_out/vector_ops.tex}
195 \chapter{CR Weird ops}\hypertarget{svux2fcr_int_predication}{}
196 \input{tex_out/cr_int_predication.tex}
197 \chapter{Bitmanip ops}\hypertarget{svux2fbitmanip}{}
198 \input{tex_out/bitmanip.tex}
199
200
201
202 \end{document}