sphinx.addnodesdocument)}( rawsourcechildren]( translations LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget//translations/zh_CN/arch/loongarch/introductionmodnameN classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/zh_TW/arch/loongarch/introductionmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/it_IT/arch/loongarch/introductionmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/ja_JP/arch/loongarch/introductionmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/ko_KR/arch/loongarch/introductionmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget//translations/sp_SP/arch/loongarch/introductionmodnameN classnameN refexplicituh1hhh ubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhI/var/lib/git/docbuild/linux/Documentation/arch/loongarch/introduction.rsthKubhsection)}(hhh](htitle)}(hIntroduction to LoongArchh]hIntroduction to LoongArch}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hXLoongArch is a new RISC ISA, which is a bit like MIPS or RISC-V. There are currently 3 variants: a reduced 32-bit version (LA32R), a standard 32-bit version (LA32S) and a 64-bit version (LA64). There are 4 privilege levels (PLVs) defined in LoongArch: PLV0~PLV3, from high to low. Kernel runs at PLV0 while applications run at PLV3. This document introduces the registers, basic instruction set, virtual memory and some other topics of LoongArch.h]hXLoongArch is a new RISC ISA, which is a bit like MIPS or RISC-V. There are currently 3 variants: a reduced 32-bit version (LA32R), a standard 32-bit version (LA32S) and a 64-bit version (LA64). There are 4 privilege levels (PLVs) defined in LoongArch: PLV0~PLV3, from high to low. Kernel runs at PLV0 while applications run at PLV3. This document introduces the registers, basic instruction set, virtual memory and some other topics of LoongArch.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(h Registersh]h Registers}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hLoongArch registers include general purpose registers (GPRs), floating point registers (FPRs), vector registers (VRs) and control status registers (CSRs) used in privileged mode (PLV0).h]hLoongArch registers include general purpose registers (GPRs), floating point registers (FPRs), vector registers (VRs) and control status registers (CSRs) used in privileged mode (PLV0).}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hhh](h)}(hGPRsh]hGPRs}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hXLoongArch has 32 GPRs ( ``$r0`` ~ ``$r31`` ); each one is 32-bit wide in LA32 and 64-bit wide in LA64. ``$r0`` is hard-wired to zero, and the other registers are not architecturally special. (Except ``$r1``, which is hard-wired as the link register of the BL instruction.)h](hLoongArch has 32 GPRs ( }(hj hhhNhNubhliteral)}(h``$r0``h]h$r0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh ~ }(hj hhhNhNubj)}(h``$r31``h]h$r31}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh= ); each one is 32-bit wide in LA32 and 64-bit wide in LA64. }(hj hhhNhNubj)}(h``$r0``h]h$r0}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubhY is hard-wired to zero, and the other registers are not architecturally special. (Except }(hj hhhNhNubj)}(h``$r1``h]h$r1}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubhB, which is hard-wired as the link register of the BL instruction.)}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hThe kernel uses a variant of the LoongArch register convention, as described in the LoongArch ELF psABI spec, in :ref:`References `:h](hqThe kernel uses a variant of the LoongArch register convention, as described in the LoongArch ELF psABI spec, in }(hjahhhNhNubh)}(h(:ref:`References `h]hinline)}(hjkh]h References}(hjohhhNhNubah}(h]h ](xrefstdstd-refeh"]h$]h&]uh1jmhjiubah}(h]h ]h"]h$]h&]refdocarch/loongarch/introduction refdomainjzreftyperef refexplicitrefwarn reftargetloongarch-referencesuh1hhhhKhjaubh:}(hjahhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhhhhubhtable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1jhjubhthead)}(hhh]hrow)}(hhh](hentry)}(hhh]h)}(hNameh]hName}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK!hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hAliash]hAlias}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK!hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hUsageh]hUsage}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK!hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hPreserved across callsh]hPreserved across calls}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK!hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjubhtbody)}(hhh](j)}(hhh](j)}(hhh]h)}(h``$r0``h]j)}(hjMh]h$r0}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjKubah}(h]h ]h"]h$]h&]uh1hhhhK$hjHubah}(h]h ]h"]h$]h&]uh1jhjEubj)}(hhh]h)}(h ``$zero``h]j)}(hjmh]h$zero}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1jhjkubah}(h]h ]h"]h$]h&]uh1hhhhK$hjhubah}(h]h ]h"]h$]h&]uh1jhjEubj)}(hhh]h)}(h Constant zeroh]h Constant zero}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hjubah}(h]h ]h"]h$]h&]uh1jhjEubj)}(hhh]h)}(hUnusedh]hUnused}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK$hjubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhjBubj)}(hhh](j)}(hhh]h)}(h``$r1``h]j)}(hjh]h$r1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhK%hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h``$ra``h]j)}(hjh]h$ra}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhK%hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hReturn addressh]hReturn address}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK%hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hNoh]hNo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK%hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjBubj)}(hhh](j)}(hhh]h)}(h``$r2``h]j)}(hj;h]h$r2}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj9ubah}(h]h ]h"]h$]h&]uh1hhhhK&hj6ubah}(h]h ]h"]h$]h&]uh1jhj3ubj)}(hhh]h)}(h``$tp``h]j)}(hj[h]h$tp}(hj]hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjYubah}(h]h ]h"]h$]h&]uh1hhhhK&hjVubah}(h]h ]h"]h$]h&]uh1jhj3ubj)}(hhh]h)}(hTLS/Thread pointerh]hTLS/Thread pointer}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjvubah}(h]h ]h"]h$]h&]uh1jhj3ubj)}(hhh]h)}(hUnusedh]hUnused}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK&hjubah}(h]h ]h"]h$]h&]uh1jhj3ubeh}(h]h ]h"]h$]h&]uh1jhjBubj)}(hhh](j)}(hhh]h)}(h``$r3``h]j)}(hjh]h$r3}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhK'hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h``$sp``h]j)}(hjh]h$sp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhK'hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h Stack pointerh]h Stack pointer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hYesh]hYes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjBubj)}(hhh](j)}(hhh]h)}(h``$r4``-``$r11``h](j)}(h``$r4``h]h$r4}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubh-}(hj'hhhNhNubj)}(h``$r11``h]h$r11}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1hhhhK(hj$ubah}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh]h)}(h``$a0``-``$a7``h](j)}(h``$a0``h]h$a0}(hj^hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubh-}(hjZhhhNhNubj)}(h``$a7``h]h$a7}(hjphhhNhNubah}(h]h ]h"]h$]h&]uh1jhjZubeh}(h]h ]h"]h$]h&]uh1hhhhK(hjWubah}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh]h)}(hArgument registersh]hArgument registers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hjubah}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh]h)}(hNoh]hNo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK(hjubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhjBubj)}(hhh](j)}(hhh]h)}(h``$r4``-``$r5``h](j)}(h``$r4``h]h$r4}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh-}(hjhhhNhNubj)}(h``$r5``h]h$r5}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhhhK)hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h``$v0``-``$v1``h](j)}(h``$v0``h]h$v0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh-}(hjhhhNhNubj)}(h``$v1``h]h$v1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhhhK)hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h Return valueh]h Return value}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hj'ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hNoh]hNo}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK)hj>ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjBubj)}(hhh](j)}(hhh]h)}(h``$r12``-``$r20``h](j)}(h``$r12``h]h$r12}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubh-}(hjahhhNhNubj)}(h``$r20``h]h$r20}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjaubeh}(h]h ]h"]h$]h&]uh1hhhhK*hj^ubah}(h]h ]h"]h$]h&]uh1jhj[ubj)}(hhh]h)}(h``$t0``-``$t8``h](j)}(h``$t0``h]h$t0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh-}(hjhhhNhNubj)}(h``$t8``h]h$t8}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhhhK*hjubah}(h]h ]h"]h$]h&]uh1jhj[ubj)}(hhh]h)}(hTemp registersh]hTemp registers}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hjubah}(h]h ]h"]h$]h&]uh1jhj[ubj)}(hhh]h)}(hNoh]hNo}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK*hjubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhjBubj)}(hhh](j)}(hhh]h)}(h``$r21``h]j)}(hjh]h$r21}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhK+hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h``$u0``h]j)}(hj h]h$u0}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhK+hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hPercpu base addressh]hPercpu base address}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hj;ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hUnusedh]hUnused}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK+hjRubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjBubj)}(hhh](j)}(hhh]h)}(h``$r22``h]j)}(hjwh]h$r22}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjuubah}(h]h ]h"]h$]h&]uh1hhhhK,hjrubah}(h]h ]h"]h$]h&]uh1jhjoubj)}(hhh]h)}(h``$fp``h]j)}(hjh]h$fp}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1hhhhK,hjubah}(h]h ]h"]h$]h&]uh1jhjoubj)}(hhh]h)}(h Frame pointerh]h Frame pointer}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hjubah}(h]h ]h"]h$]h&]uh1jhjoubj)}(hhh]h)}(hYesh]hYes}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hjubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jhjBubj)}(hhh](j)}(hhh]h)}(h``$r23``-``$r31``h](j)}(h``$r23``h]h$r23}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh-}(hjhhhNhNubj)}(h``$r31``h]h$r31}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhhhK-hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h``$s0``-``$s8``h](j)}(h``$s0``h]h$s0}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh-}(hjhhhNhNubj)}(h``$s8``h]h$s8}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1hhhhK-hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hStatic registersh]hStatic registers}(hjRhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjOubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hYesh]hYes}(hjihhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK-hjfubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjBubeh}(h]h ]h"]h$]h&]uh1j@hjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhhhhhhhNubhnote)}(hX5The register ``$r21`` is reserved in the ELF psABI, but used by the Linux kernel for storing the percpu base address. It normally has no ABI name, but is called ``$u0`` in the kernel. You may also see ``$v0`` or ``$v1`` in some old code,however they are deprecated aliases of ``$a0`` and ``$a1`` respectively.h]h)}(hX5The register ``$r21`` is reserved in the ELF psABI, but used by the Linux kernel for storing the percpu base address. It normally has no ABI name, but is called ``$u0`` in the kernel. You may also see ``$v0`` or ``$v1`` in some old code,however they are deprecated aliases of ``$a0`` and ``$a1`` respectively.h](h The register }(hjhhhNhNubj)}(h``$r21``h]h$r21}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh is reserved in the ELF psABI, but used by the Linux kernel for storing the percpu base address. It normally has no ABI name, but is called }(hjhhhNhNubj)}(h``$u0``h]h$u0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh! in the kernel. You may also see }(hjhhhNhNubj)}(h``$v0``h]h$v0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh or }(hjhhhNhNubj)}(h``$v1``h]h$v1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh9 in some old code,however they are deprecated aliases of }(hjhhhNhNubj)}(h``$a0``h]h$a0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh and }(hjhhhNhNubj)}(h``$a1``h]h$a1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1jhjubh respectively.}(hjhhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK1hjubah}(h]h ]h"]h$]h&]uh1jhhhhhhhNubeh}(h]gprsah ]h"]gprsah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hFPRsh]hFPRs}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj$hhhhhK8ubh)}(hlLoongArch has 32 FPRs ( ``$f0`` ~ ``$f31`` ) when FPU is present. Each one is 64-bit wide on the LA64 cores.h](hLoongArch has 32 FPRs ( }(hj5hhhNhNubj)}(h``$f0``h]h$f0}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubh ~ }(hj5hhhNhNubj)}(h``$f31``h]h$f31}(hjOhhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5ubhB ) when FPU is present. Each one is 64-bit wide on the LA64 cores.}(hj5hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhK:hj$hhubh)}(h`The floating-point register convention is the same as described in the LoongArch ELF psABI spec:h]h`The floating-point register convention is the same as described in the LoongArch ELF psABI spec:}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK=hj$hhubj)}(hhh]j)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjxubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjxubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjxubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1jhjxubj)}(hhh]j)}(hhh](j)}(hhh]h)}(hNameh]hName}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hAliash]hAlias}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hUsageh]hUsage}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hPreserved across callsh]hPreserved across calls}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKAhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubah}(h]h ]h"]h$]h&]uh1jhjxubjA)}(hhh](j)}(hhh](j)}(hhh]h)}(h``$f0``-``$f7``h](j)}(h``$f0``h]h$f0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh-}(hj hhhNhNubj)}(h``$f7``h]h$f7}(hj0 hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1hhhhKDhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h``$fa0``-``$fa7``h](j)}(h``$fa0``h]h$fa0}(hjQ hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjM ubh-}(hjM hhhNhNubj)}(h``$fa7``h]h$fa7}(hjc hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjM ubeh}(h]h ]h"]h$]h&]uh1hhhhKDhjJ ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hArgument registersh]hArgument registers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKDhj} ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hNoh]hNo}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKDhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h``$f0``-``$f1``h](j)}(h``$f0``h]h$f0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh-}(hj hhhNhNubj)}(h``$f1``h]h$f1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1hhhhKEhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h``$fv0``-``$fv1``h](j)}(h``$fv0``h]h$fv0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh-}(hj hhhNhNubj)}(h``$fv1``h]h$fv1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1hhhhKEhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h Return valueh]h Return value}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKEhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hNoh]hNo}(hj4 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKEhj1 ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h``$f8``-``$f23``h](j)}(h``$f8``h]h$f8}(hjX hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjT ubh-}(hjT hhhNhNubj)}(h``$f23``h]h$f23}(hjj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjT ubeh}(h]h ]h"]h$]h&]uh1hhhhKFhjQ ubah}(h]h ]h"]h$]h&]uh1jhjN ubj)}(hhh]h)}(h``$ft0``-``$ft15``h](j)}(h``$ft0``h]h$ft0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh-}(hj hhhNhNubj)}(h ``$ft15``h]h$ft15}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1hhhhKFhj ubah}(h]h ]h"]h$]h&]uh1jhjN ubj)}(hhh]h)}(hTemp registersh]hTemp registers}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKFhj ubah}(h]h ]h"]h$]h&]uh1jhjN ubj)}(hhh]h)}(hNoh]hNo}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKFhj ubah}(h]h ]h"]h$]h&]uh1jhjN ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h``$f24``-``$f31``h](j)}(h``$f24``h]h$f24}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh-}(hj hhhNhNubj)}(h``$f31``h]h$f31}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1hhhhKGhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h``$fs0``-``$fs7``h](j)}(h``$fs0``h]h$fs0}(hj( hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ ubh-}(hj$ hhhNhNubj)}(h``$fs7``h]h$fs7}(hj: hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj$ ubeh}(h]h ]h"]h$]h&]uh1hhhhKGhj! ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hStatic registersh]hStatic registers}(hjW hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKGhjT ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hYesh]hYes}(hjn hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKGhjk ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1j@hjxubeh}(h]h ]h"]h$]h&]colsKuh1jhjuubah}(h]h ]h"]h$]h&]uh1jhj$hhhhhNubj)}(h}You may see ``$fv0`` or ``$fv1`` in some old code, however they are deprecated aliases of ``$fa0`` and ``$fa1`` respectively.h]h)}(h}You may see ``$fv0`` or ``$fv1`` in some old code, however they are deprecated aliases of ``$fa0`` and ``$fa1`` respectively.h](h You may see }(hj hhhNhNubj)}(h``$fv0``h]h$fv0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh or }(hj hhhNhNubj)}(h``$fv1``h]h$fv1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh: in some old code, however they are deprecated aliases of }(hj hhhNhNubj)}(h``$fa0``h]h$fa0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh and }(hj hhhNhNubj)}(h``$fa1``h]h$fa1}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh respectively.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKKhj ubah}(h]h ]h"]h$]h&]uh1jhj$hhhhhNubeh}(h]fprsah ]h"]fprsah$]h&]uh1hhhhhhhhK8ubh)}(hhh](h)}(hVRsh]hVRs}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKOubh)}(h5There are currently 2 vector extensions to LoongArch:h]h5There are currently 2 vector extensions to LoongArch:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKQhj hhubh bullet_list)}(hhh](h list_item)}(h3LSX (Loongson SIMD eXtension) with 128-bit vectors,h]h)}(hj+ h]h3LSX (Loongson SIMD eXtension) with 128-bit vectors,}(hj- hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShj) ubah}(h]h ]h"]h$]h&]uh1j' hj$ hhhhhNubj( )}(h>LASX (Loongson Advanced SIMD eXtension) with 256-bit vectors. h]h)}(h=LASX (Loongson Advanced SIMD eXtension) with 256-bit vectors.h]h=LASX (Loongson Advanced SIMD eXtension) with 256-bit vectors.}(hjD hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKThj@ ubah}(h]h ]h"]h$]h&]uh1j' hj$ hhhhhNubeh}(h]h ]h"]h$]h&]bullet-uh1j" hhhKShj hhubh)}(h[LSX brings ``$v0`` ~ ``$v31`` while LASX brings ``$x0`` ~ ``$x31`` as the vector registers.h](h LSX brings }(hj` hhhNhNubj)}(h``$v0``h]h$v0}(hjh hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj` ubh ~ }(hj` hhhNhNubj)}(h``$v31``h]h$v31}(hjz hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj` ubh while LASX brings }(hj` hhhNhNubj)}(h``$x0``h]h$x0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj` ubh ~ }hj` sbj)}(h``$x31``h]h$x31}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj` ubh as the vector registers.}(hj` hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKVhj hhubh)}(hThe VRs overlap with FPRs: for example, on a core implementing LSX and LASX, the lower 128 bits of ``$x0`` is shared with ``$v0``, and the lower 64 bits of ``$v0`` is shared with ``$f0``; same with all other VRs.h](hcThe VRs overlap with FPRs: for example, on a core implementing LSX and LASX, the lower 128 bits of }(hj hhhNhNubj)}(h``$x0``h]h$x0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh is shared with }(hj hhhNhNubj)}(h``$v0``h]h$v0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh, and the lower 64 bits of }(hj hhhNhNubj)}(h``$v0``h]h$v0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh is shared with }hj sbj)}(h``$f0``h]h$f0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj ubh; same with all other VRs.}(hj hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKYhj hhubeh}(h]vrsah ]h"]vrsah$]h&]uh1hhhhhhhhKOubh)}(hhh](h)}(hCSRsh]hCSRs}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhK^ubh)}(h6CSRs can only be accessed from privileged mode (PLV0):h]h6CSRs can only be accessed from privileged mode (PLV0):}(hj% hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK`hj hhubj)}(hhh]j)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj6 ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK%uh1jhj6 ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj6 ubj)}(hhh]j)}(hhh](j)}(hhh]h)}(hAddressh]hAddress}(hj` hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKchj] ubah}(h]h ]h"]h$]h&]uh1jhjZ ubj)}(hhh]h)}(h Full Nameh]h Full Name}(hjw hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKchjt ubah}(h]h ]h"]h$]h&]uh1jhjZ ubj)}(hhh]h)}(h Abbrev Nameh]h Abbrev Name}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKchj ubah}(h]h ]h"]h$]h&]uh1jhjZ ubeh}(h]h ]h"]h$]h&]uh1jhjW ubah}(h]h ]h"]h$]h&]uh1jhj6 ubjA)}(hhh](j)}(hhh](j)}(hhh]h)}(h0x0h]h0x0}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKehj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hCurrent Mode Informationh]hCurrent Mode Information}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKehj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hCRMDh]hCRMD}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKehj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x1h]h0x1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKfhjubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hPre-exception Mode Informationh]hPre-exception Mode Information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKfhjubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hPRMDh]hPRMD}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKfhj0ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x2h]h0x2}(hjShhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKghjPubah}(h]h ]h"]h$]h&]uh1jhjMubj)}(hhh]h)}(hExtension Unit Enableh]hExtension Unit Enable}(hjjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKghjgubah}(h]h ]h"]h$]h&]uh1jhjMubj)}(hhh]h)}(hEUENh]hEUEN}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKghj~ubah}(h]h ]h"]h$]h&]uh1jhjMubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x3h]h0x3}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hMiscellaneous Controlh]hMiscellaneous Control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hMISCh]hMISC}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x4h]h0x4}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKihjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hException Configurationh]hException Configuration}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKihjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hECFGh]hECFG}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKihjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x5h]h0x5}(hj=hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKjhj:ubah}(h]h ]h"]h$]h&]uh1jhj7ubj)}(hhh]h)}(hException Statush]hException Status}(hjThhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKjhjQubah}(h]h ]h"]h$]h&]uh1jhj7ubj)}(hhh]h)}(hESTATh]hESTAT}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKjhjhubah}(h]h ]h"]h$]h&]uh1jhj7ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x6h]h0x6}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKkhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hException Return Addressh]hException Return Address}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKkhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hERAh]hERA}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKkhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x7h]h0x7}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKlhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hBad (Faulting) Virtual Addressh]hBad (Faulting) Virtual Address}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKlhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hBADVh]hBADV}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKlhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x8h]h0x8}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKmhj$ubah}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh]h)}(hBad (Faulting) Instruction Wordh]hBad (Faulting) Instruction Word}(hj>hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKmhj;ubah}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh]h)}(hBADIh]hBADI}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKmhjRubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0xCh]h0xC}(hjuhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKnhjrubah}(h]h ]h"]h$]h&]uh1jhjoubj)}(hhh]h)}(hException Entrypoint Addressh]hException Entrypoint Address}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKnhjubah}(h]h ]h"]h$]h&]uh1jhjoubj)}(hhh]h)}(hEENTRYh]hEENTRY}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKnhjubah}(h]h ]h"]h$]h&]uh1jhjoubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x10h]h0x10}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKohjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h TLB Indexh]h TLB Index}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKohjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hTLBIDXh]hTLBIDX}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKohjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x11h]h0x11}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKphjubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hTLB Entry High-order Bitsh]hTLB Entry High-order Bits}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKphj%ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hTLBEHIh]hTLBEHI}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKphj<ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x12h]h0x12}(hj_hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKqhj\ubah}(h]h ]h"]h$]h&]uh1jhjYubj)}(hhh]h)}(hTLB Entry Low-order Bits 0h]hTLB Entry Low-order Bits 0}(hjvhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKqhjsubah}(h]h ]h"]h$]h&]uh1jhjYubj)}(hhh]h)}(hTLBELO0h]hTLBELO0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKqhjubah}(h]h ]h"]h$]h&]uh1jhjYubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x13h]h0x13}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKrhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hTLB Entry Low-order Bits 1h]hTLB Entry Low-order Bits 1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKrhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hTLBELO1h]hTLBELO1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKrhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x18h]h0x18}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKshjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hAddress Space Identifierh]hAddress Space Identifier}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKshjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hASIDh]hASID}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKshj&ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x19h]h0x19}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthjFubah}(h]h ]h"]h$]h&]uh1jhjCubj)}(hhh]h)}(h:Page Global Directory Address for Lower-half Address Spaceh]h:Page Global Directory Address for Lower-half Address Space}(hj`hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthj]ubah}(h]h ]h"]h$]h&]uh1jhjCubj)}(hhh]h)}(hPGDLh]hPGDL}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKthjtubah}(h]h ]h"]h$]h&]uh1jhjCubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x1Ah]h0x1A}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKvhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h;Page Global Directory Address for Higher-half Address Spaceh]h;Page Global Directory Address for Higher-half Address Space}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKvhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hPGDHh]hPGDH}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKvhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x1Bh]h0x1B}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKxhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hPage Global Directory Addressh]hPage Global Directory Address}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKxhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hPGDh]hPGD}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKxhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x1Ch]h0x1C}(hj3hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKyhj0ubah}(h]h ]h"]h$]h&]uh1jhj-ubj)}(hhh]h)}(h/Page Walk Control for Lower- half Address Spaceh]h/Page Walk Control for Lower- half Address Space}(hjJhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKyhjGubah}(h]h ]h"]h$]h&]uh1jhj-ubj)}(hhh]h)}(hPWCLh]hPWCL}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKyhj^ubah}(h]h ]h"]h$]h&]uh1jhj-ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x1Dh]h0x1D}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK{hj~ubah}(h]h ]h"]h$]h&]uh1jhj{ubj)}(hhh]h)}(h0Page Walk Control for Higher- half Address Spaceh]h0Page Walk Control for Higher- half Address Space}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK{hjubah}(h]h ]h"]h$]h&]uh1jhj{ubj)}(hhh]h)}(hPWCHh]hPWCH}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK{hjubah}(h]h ]h"]h$]h&]uh1jhj{ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x1Eh]h0x1E}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK}hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hSTLB Page Sizeh]hSTLB Page Size}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK}hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hSTLBPSh]hSTLBPS}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK}hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x1Fh]h0x1F}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK~hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h%Reduced Virtual Address Configurationh]h%Reduced Virtual Address Configuration}(hj4hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK~hj1ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hRVACFGh]hRVACFG}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK~hjHubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x20h]h0x20}(hjkhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhubah}(h]h ]h"]h$]h&]uh1jhjeubj)}(hhh]h)}(hCPU Identifierh]hCPU Identifier}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjeubj)}(hhh]h)}(hCPUIDh]hCPUID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjeubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x21h]h0x21}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h#Privileged Resource Configuration 1h]h#Privileged Resource Configuration 1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hPRCFG1h]hPRCFG1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x22h]h0x22}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h#Privileged Resource Configuration 2h]h#Privileged Resource Configuration 2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hPRCFG2h]hPRCFG2}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj2ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x23h]h0x23}(hjUhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjRubah}(h]h ]h"]h$]h&]uh1jhjOubj)}(hhh]h)}(h#Privileged Resource Configuration 3h]h#Privileged Resource Configuration 3}(hjlhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjiubah}(h]h ]h"]h$]h&]uh1jhjOubj)}(hhh]h)}(hPRCFG3h]hPRCFG3}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjOubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x30+n (0≤n≤15)h]h0x30+n (0≤n≤15)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hSaved Data registerh]hSaved Data register}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hSAVEnh]hSAVEn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x40h]h0x40}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hTimer Identifierh]hTimer Identifier}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hTIDh]hTID}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x41h]h0x41}(hj?hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj<ubah}(h]h ]h"]h$]h&]uh1jhj9ubj)}(hhh]h)}(hTimer Configurationh]hTimer Configuration}(hjVhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjSubah}(h]h ]h"]h$]h&]uh1jhj9ubj)}(hhh]h)}(hTCFGh]hTCFG}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjjubah}(h]h ]h"]h$]h&]uh1jhj9ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x42h]h0x42}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h Timer Valueh]h Timer Value}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hTVALh]hTVAL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x43h]h0x43}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hCompensation of Timer Counth]hCompensation of Timer Count}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hCNTCh]hCNTC}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x44h]h0x44}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj&ubah}(h]h ]h"]h$]h&]uh1jhj#ubj)}(hhh]h)}(hTimer Interrupt Clearingh]hTimer Interrupt Clearing}(hj@hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj=ubah}(h]h ]h"]h$]h&]uh1jhj#ubj)}(hhh]h)}(hTICLRh]hTICLR}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjTubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x60h]h0x60}(hjwhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjtubah}(h]h ]h"]h$]h&]uh1jhjqubj)}(hhh]h)}(h LLBit Controlh]h LLBit Control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjqubj)}(hhh]h)}(hLLBCTLh]hLLBCTL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjqubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x80h]h0x80}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h!Implementation-specific Control 1h]h!Implementation-specific Control 1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hIMPCTL1h]hIMPCTL1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x81h]h0x81}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h!Implementation-specific Control 2h]h!Implementation-specific Control 2}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj'ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hIMPCTL2h]hIMPCTL2}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj>ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x88h]h0x88}(hjahhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj^ubah}(h]h ]h"]h$]h&]uh1jhj[ubj)}(hhh]h)}(h'TLB Refill Exception Entrypoint Addressh]h'TLB Refill Exception Entrypoint Address}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjuubah}(h]h ]h"]h$]h&]uh1jhj[ubj)}(hhh]h)}(h TLBRENTRYh]h TLBRENTRY}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhj[ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x89h]h0x89}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h3TLB Refill Exception BAD (Faulting) Virtual Addressh]h3TLB Refill Exception BAD (Faulting) Virtual Address}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hTLBRBADVh]hTLBRBADV}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x8Ah]h0x8A}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h#TLB Refill Exception Return Addressh]h#TLB Refill Exception Return Address}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hTLBRERAh]hTLBRERA}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj(ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x8Bh]h0x8B}(hjKhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjHubah}(h]h ]h"]h$]h&]uh1jhjEubj)}(hhh]h)}(h(TLB Refill Exception Saved Data Registerh]h(TLB Refill Exception Saved Data Register}(hjbhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj_ubah}(h]h ]h"]h$]h&]uh1jhjEubj)}(hhh]h)}(hTLBRSAVEh]hTLBRSAVE}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjvubah}(h]h ]h"]h$]h&]uh1jhjEubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x8Ch]h0x8C}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h+TLB Refill Exception Entry Low-order Bits 0h]h+TLB Refill Exception Entry Low-order Bits 0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hTLBRELO0h]hTLBRELO0}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x8Dh]h0x8D}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h+TLB Refill Exception Entry Low-order Bits 1h]h+TLB Refill Exception Entry Low-order Bits 1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hTLBRELO1h]hTLBRELO1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x8Eh]h0x8E}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj2ubah}(h]h ]h"]h$]h&]uh1jhj/ubj)}(hhh]h)}(h*TLB Refill Exception Entry High-order Bitsh]h*TLB Refill Exception Entry High-order Bits}(hjLhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjIubah}(h]h ]h"]h$]h&]uh1jhj/ubj)}(hhh]h)}(hTLBEHIh]hTLBEHI}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj`ubah}(h]h ]h"]h$]h&]uh1jhj/ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x8Fh]h0x8F}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhj}ubj)}(hhh]h)}(h3TLB Refill Exception Pre-exception Mode Informationh]h3TLB Refill Exception Pre-exception Mode Information}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhj}ubj)}(hhh]h)}(hTLBRPRMDh]hTLBRPRMD}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhj}ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x90h]h0x90}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hMachine Error Controlh]hMachine Error Control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hMERRCTLh]hMERRCTL}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x91h]h0x91}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hMachine Error Information 1h]hMachine Error Information 1}(hj6hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj3ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h MERRINFO1h]h MERRINFO1}(hjMhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x92h]h0x92}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjjubah}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh]h)}(hMachine Error Information 2h]hMachine Error Information 2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjgubj)}(hhh]h)}(h MERRINFO2h]h MERRINFO2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjgubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x93h]h0x93}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h*Machine Error Exception Entrypoint Addressh]h*Machine Error Exception Entrypoint Address}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h MERRENTRYh]h MERRENTRY}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x94h]h0x94}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h&Machine Error Exception Return Addressh]h&Machine Error Exception Return Address}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hMERRERAh]hMERRERA}(hj7hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj4ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x95h]h0x95}(hjWhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjTubah}(h]h ]h"]h$]h&]uh1jhjQubj)}(hhh]h)}(h+Machine Error Exception Saved Data Registerh]h+Machine Error Exception Saved Data Register}(hjnhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjkubah}(h]h ]h"]h$]h&]uh1jhjQubj)}(hhh]h)}(hMERRSAVEh]hMERRSAVE}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjQubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x98h]h0x98}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h Cache TAGsh]h Cache TAGs}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hCTAGh]hCTAG}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x180+n (0≤n≤3)h]h0x180+n (0≤n≤3)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h%Direct Mapping Configuration Window nh]h%Direct Mapping Configuration Window n}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hDMWnh]hDMWn}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x200+2n (0≤n≤31)h]h0x200+2n (0≤n≤31)}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj>ubah}(h]h ]h"]h$]h&]uh1jhj;ubj)}(hhh]h)}(h#Performance Monitor Configuration nh]h#Performance Monitor Configuration n}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjUubah}(h]h ]h"]h$]h&]uh1jhj;ubj)}(hhh]h)}(hPMCFGnh]hPMCFGn}(hjohhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjlubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x201+2n (0≤n≤31)h]h0x201+2n (0≤n≤31)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h%Performance Monitor Overall Counter nh]h%Performance Monitor Overall Counter n}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hPMCNTnh]hPMCNTn}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x300h]h0x300}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h,Memory Load/Store WatchPoint Overall Controlh]h,Memory Load/Store WatchPoint Overall Control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hMWPCh]hMWPC}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x301h]h0x301}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj(ubah}(h]h ]h"]h$]h&]uh1jhj%ubj)}(hhh]h)}(h+Memory Load/Store WatchPoint Overall Statush]h+Memory Load/Store WatchPoint Overall Status}(hjBhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj?ubah}(h]h ]h"]h$]h&]uh1jhj%ubj)}(hhh]h)}(hMWPSh]hMWPS}(hjYhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjVubah}(h]h ]h"]h$]h&]uh1jhj%ube4h}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x310+8n (0≤n≤7)h]h0x310+8n (0≤n≤7)}(hjyhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjvubah}(h]h ]h"]h$]h&]uh1jhjsubj)}(hhh]h)}(h.Memory Load/Store WatchPoint n Configuration 1h]h.Memory Load/Store WatchPoint n Configuration 1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjsubj)}(hhh]h)}(hMWPnCFG1h]hMWPnCFG1}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjsubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x311+8n (0≤n≤7)h]h0x311+8n (0≤n≤7)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h.Memory Load/Store WatchPoint n Configuration 2h]h.Memory Load/Store WatchPoint n Configuration 2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hMWPnCFG2h]hMWPnCFG2}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x312+8n (0≤n≤7)h]h0x312+8n (0≤n≤7)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h.Memory Load/Store WatchPoint n Configuration 3h]h.Memory Load/Store WatchPoint n Configuration 3}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj)ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hMWPnCFG3h]hMWPnCFG3}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj@ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x313+8n (0≤n≤7)h]h0x313+8n (0≤n≤7)}(hjchhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj`ubah}(h]h ]h"]h$]h&]uh1jhj]ubj)}(hhh]h)}(h.Memory Load/Store WatchPoint n Configuration 4h]h.Memory Load/Store WatchPoint n Configuration 4}(hjzhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjwubah}(h]h ]h"]h$]h&]uh1jhj]ubj)}(hhh]h)}(hMWPnCFG4h]hMWPnCFG4}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhj]ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x380h]h0x380}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h,Instruction Fetch WatchPoint Overall Controlh]h,Instruction Fetch WatchPoint Overall Control}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hFWPCh]hFWPC}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x381h]h0x381}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(h+Instruction Fetch WatchPoint Overall Statush]h+Instruction Fetch WatchPoint Overall Status}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hFWPSh]hFWPS}(hj- hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj* ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x390+8n (0≤n≤7)h]h0x390+8n (0≤n≤7)}(hjM hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjJ ubah}(h]h ]h"]h$]h&]uh1jhjG ubj)}(hhh]h)}(h.Instruction Fetch WatchPoint n Configuration 1h]h.Instruction Fetch WatchPoint n Configuration 1}(hjd hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhja ubah}(h]h ]h"]h$]h&]uh1jhjG ubj)}(hhh]h)}(hFWPnCFG1h]hFWPnCFG1}(hj{ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjx ubah}(h]h ]h"]h$]h&]uh1jhjG ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x391+8n (0≤n≤7)h]h0x391+8n (0≤n≤7)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h.Instruction Fetch WatchPoint n Configuration 2h]h.Instruction Fetch WatchPoint n Configuration 2}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hFWPnCFG2h]hFWPnCFG2}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x392+8n (0≤n≤7)h]h0x392+8n (0≤n≤7)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(h.Instruction Fetch WatchPoint n Configuration 3h]h.Instruction Fetch WatchPoint n Configuration 3}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj ubah}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh]h)}(hFWPnCFG3h]hFWPnCFG3}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj!ubah}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x393+8n (0≤n≤7)h]h0x393+8n (0≤n≤7)}(hj7!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj4!ubah}(h]h ]h"]h$]h&]uh1jhj1!ubj)}(hhh]h)}(h.Instruction Fetch WatchPoint n Configuration 4h]h.Instruction Fetch WatchPoint n Configuration 4}(hjN!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjK!ubah}(h]h ]h"]h$]h&]uh1jhj1!ubj)}(hhh]h)}(hFWPnCFG4h]hFWPnCFG4}(hje!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjb!ubah}(h]h ]h"]h$]h&]uh1jhj1!ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x500h]h0x500}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj!ubah}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh]h)}(hDebug Registerh]hDebug Register}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj!ubah}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh]h)}(hDBGh]hDBG}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj!ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x501h]h0x501}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj!ubah}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh]h)}(hDebug Exception Return Addressh]hDebug Exception Return Address}(hj!hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj!ubah}(h]h ]h"]h$]h&]uh1jhj!ubj)}(hhh]h)}(hDERAh]hDERA}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj!ubah}(h]h ]h"]h$]h&]uh1jhj!ubeh}(h]h ]h"]h$]h&]uh1jhj ubj)}(hhh](j)}(hhh]h)}(h0x502h]h0x502}(hj!"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj"ubah}(h]h ]h"]h$]h&]uh1jhj"ubj)}(hhh]h)}(h#Debug Exception Saved Data Registerh]h#Debug Exception Saved Data Register}(hj8"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj5"ubah}(h]h ]h"]h$]h&]uh1jhj"ubj)}(hhh]h)}(hDSAVEh]hDSAVE}(hjO"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjL"ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj ubeh}(h]h ]h"]h$]h&]uh1j@hj6 ubeh}(h]h ]h"]h$]h&]colsKuh1jhj3 ubah}(h]h ]h"]h$]h&]uh1jhj hhhhhNubh)}(hgERA, TLBRERA, MERRERA and DERA are sometimes also known as EPC, TLBREPC, MERREPC and DEPC respectively.h]hgERA, TLBRERA, MERRERA and DERA are sometimes also known as EPC, TLBREPC, MERREPC and DEPC respectively.}(hj|"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubeh}(h]csrsah ]h"]csrsah$]h&]uh1hhhhhhhhK^ubeh}(h] registersah ]h"] registersah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hBasic Instruction Seth]hBasic Instruction Set}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hhhhhKubh)}(hhh](h)}(hInstruction formatsh]hInstruction formats}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj"hhhhhKubh)}(hiLoongArch instructions are 32 bits wide, belonging to 9 basic instruction formats (and variants of them):h]hiLoongArch instructions are 32 bits wide, belonging to 9 basic instruction formats (and variants of them):}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj"hhubj)}(hhh]j)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1jhj"ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj"ubj)}(hhh]j)}(hhh](j)}(hhh]h)}(h Format nameh]h Format name}(hj"hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj"ubah}(h]h ]h"]h$]h&]uh1jhj"ubj)}(hhh]h)}(h Compositionh]h Composition}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj#ubah}(h]h ]h"]h$]h&]uh1jhj"ubeh}(h]h ]h"]h$]h&]uh1jhj"ubah}(h]h ]h"]h$]h&]uh1jhj"ubjA)}(hhh](j)}(hhh](j)}(hhh]h)}(h2Rh]h2R}(hj-#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj*#ubah}(h]h ]h"]h$]h&]uh1jhj'#ubj)}(hhh]h)}(hOpcode + Rj + Rdh]hOpcode + Rj + Rd}(hjD#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjA#ubah}(h]h ]h"]h$]h&]uh1jhj'#ubeh}(h]h ]h"]h$]h&]uh1jhj$#ubj)}(hhh](j)}(hhh]h)}(h3Rh]h3R}(hjd#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhja#ubah}(h]h ]h"]h$]h&]uh1jhj^#ubj)}(hhh]h)}(hOpcode + Rk + Rj + Rdh]hOpcode + Rk + Rj + Rd}(hj{#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjx#ubah}(h]h ]h"]h$]h&]uh1jhj^#ubeh}(h]h ]h"]h$]h&]uh1jhj$#ubj)}(hhh](j)}(hhh]h)}(h4Rh]h4R}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubj)}(hhh]h)}(hOpcode + Ra + Rk + Rj + Rdh]hOpcode + Ra + Rk + Rj + Rd}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj$#ubj)}(hhh](j)}(hhh]h)}(h2RI8h]h2RI8}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubj)}(hhh]h)}(hOpcode + I8 + Rj + Rdh]hOpcode + I8 + Rj + Rd}(hj#hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj#ubah}(h]h ]h"]h$]h&]uh1jhj#ubeh}(h]h ]h"]h$]h&]uh1jhj$#ubj)}(hhh](j)}(hhh]h)}(h2RI12h]h2RI12}(hj $hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubj)}(hhh]h)}(hOpcode + I12 + Rj + Rdh]hOpcode + I12 + Rj + Rd}(hj $hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj$#ubj)}(hhh](j)}(hhh]h)}(h2RI14h]h2RI14}(hj@$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj=$ubah}(h]h ]h"]h$]h&]uh1jhj:$ubj)}(hhh]h)}(hOpcode + I14 + Rj + Rdh]hOpcode + I14 + Rj + Rd}(hjW$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjT$ubah}(h]h ]h"]h$]h&]uh1jhj:$ubeh}(h]h ]h"]h$]h&]uh1jhj$#ubj)}(hhh](j)}(hhh]h)}(h2RI16h]h2RI16}(hjw$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjt$ubah}(h]h ]h"]h$]h&]uh1jhjq$ubj)}(hhh]h)}(hOpcode + I16 + Rj + Rdh]hOpcode + I16 + Rj + Rd}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj$ubah}(h]h ]h"]h$]h&]uh1jhjq$ubeh}(h]h ]h"]h$]h&]uh1jhj$#ubj)}(hhh](j)}(hhh]h)}(h1RI21h]h1RI21}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubj)}(hhh]h)}(hOpcode + I21L + Rj + I21Hh]hOpcode + I21L + Rj + I21H}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj$#ubj)}(hhh](j)}(hhh]h)}(hI26h]hI26}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubj)}(hhh]h)}(hOpcode + I26L + I26Hh]hOpcode + I26L + I26H}(hj$hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj$ubah}(h]h ]h"]h$]h&]uh1jhj$ubeh}(h]h ]h"]h$]h&]uh1jhj$#ubeh}(h]h ]h"]h$]h&]uh1j@hj"ubeh}(h]h ]h"]h$]h&]colsKuh1jhj"ubah}(h]h ]h"]h$]h&]uh1jhj"hhhhhNubh)}(hXARd is the destination register operand, while Rj, Rk and Ra ("a" stands for "additional") are the source register operands. I8/I12/I14/I16/I21/I26 are immediate operands of respective width. The longer I21 and I26 are stored in separate higher and lower parts in the instruction word, denoted by the "L" and "H" suffixes.h]hXQRd is the destination register operand, while Rj, Rk and Ra (“a” stands for “additional”) are the source register operands. I8/I12/I14/I16/I21/I26 are immediate operands of respective width. The longer I21 and I26 are stored in separate higher and lower parts in the instruction word, denoted by the “L” and “H” suffixes.}(hj)%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj"hhubeh}(h]instruction-formatsah ]h"]instruction formatsah$]h&]uh1hhj"hhhhhKubh)}(hhh](h)}(hList of Instructionsh]hList of Instructions}(hjB%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj?%hhhhhKubh)}(hFor brevity, only instruction names (mnemonics) are listed here; please see the :ref:`References ` for details.h](hPFor brevity, only instruction names (mnemonics) are listed here; please see the }(hjP%hhhNhNubh)}(h(:ref:`References `h]jn)}(hjZ%h]h References}(hj\%hhhNhNubah}(h]h ](jystdstd-refeh"]h$]h&]uh1jmhjX%ubah}(h]h ]h"]h$]h&]refdocj refdomainjf%reftyperef refexplicitrefwarnjloongarch-referencesuh1hhhhKhjP%ubh for details.}(hjP%hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhKhj?%hhubhenumerated_list)}(hhh](j( )}(hXArithmetic Instructions:: ADD.W SUB.W ADDI.W ADD.D SUB.D ADDI.D SLT SLTU SLTI SLTUI AND OR NOR XOR ANDN ORN ANDI ORI XORI MUL.W MULH.W MULH.WU DIV.W DIV.WU MOD.W MOD.WU MUL.D MULH.D MULH.DU DIV.D DIV.DU MOD.D MOD.DU PCADDI PCADDU12I PCADDU18I LU12I.W LU32I.D LU52I.D ADDU16I.D h](h)}(hArithmetic Instructions::h]hArithmetic Instructions:}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj%ubh literal_block)}(hADD.W SUB.W ADDI.W ADD.D SUB.D ADDI.D SLT SLTU SLTI SLTUI AND OR NOR XOR ANDN ORN ANDI ORI XORI MUL.W MULH.W MULH.WU DIV.W DIV.WU MOD.W MOD.WU MUL.D MULH.D MULH.DU DIV.D DIV.DU MOD.D MOD.DU PCADDI PCADDU12I PCADDU18I LU12I.W LU32I.D LU52I.D ADDU16I.Dh]hADD.W SUB.W ADDI.W ADD.D SUB.D ADDI.D SLT SLTU SLTI SLTUI AND OR NOR XOR ANDN ORN ANDI ORI XORI MUL.W MULH.W MULH.WU DIV.W DIV.WU MOD.W MOD.WU MUL.D MULH.D MULH.DU DIV.D DIV.DU MOD.D MOD.DU PCADDI PCADDU12I PCADDU18I LU12I.W LU32I.D LU52I.D ADDU16I.D}hj%sbah}(h]h ]h"]h$]h&]hhuh1j%hhhKhj%ubeh}(h]h ]h"]h$]h&]uh1j' hj%hhhhhNubj( )}(hBit-shift Instructions:: SLL.W SRL.W SRA.W ROTR.W SLLI.W SRLI.W SRAI.W ROTRI.W SLL.D SRL.D SRA.D ROTR.D SLLI.D SRLI.D SRAI.D ROTRI.D h](h)}(hBit-shift Instructions::h]hBit-shift Instructions:}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj%ubj%)}(hkSLL.W SRL.W SRA.W ROTR.W SLLI.W SRLI.W SRAI.W ROTRI.W SLL.D SRL.D SRA.D ROTR.D SLLI.D SRLI.D SRAI.D ROTRI.Dh]hkSLL.W SRL.W SRA.W ROTR.W SLLI.W SRLI.W SRAI.W ROTRI.W SLL.D SRL.D SRA.D ROTR.D SLLI.D SRLI.D SRAI.D ROTRI.D}hj%sbah}(h]h ]h"]h$]h&]hhuh1j%hhhKhj%ubeh}(h]h ]h"]h$]h&]uh1j' hj%hhhhhNubj( )}(hX Bit-manipulation Instructions:: EXT.W.B EXT.W.H CLO.W CLO.D SLZ.W CLZ.D CTO.W CTO.D CTZ.W CTZ.D BYTEPICK.W BYTEPICK.D BSTRINS.W BSTRINS.D BSTRPICK.W BSTRPICK.D REVB.2H REVB.4H REVB.2W REVB.D REVH.2W REVH.D BITREV.4B BITREV.8B BITREV.W BITREV.D MASKEQZ MASKNEZ h](h)}(hBit-manipulation Instructions::h]hBit-manipulation Instructions:}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj%ubj%)}(hEXT.W.B EXT.W.H CLO.W CLO.D SLZ.W CLZ.D CTO.W CTO.D CTZ.W CTZ.D BYTEPICK.W BYTEPICK.D BSTRINS.W BSTRINS.D BSTRPICK.W BSTRPICK.D REVB.2H REVB.4H REVB.2W REVB.D REVH.2W REVH.D BITREV.4B BITREV.8B BITREV.W BITREV.D MASKEQZ MASKNEZh]hEXT.W.B EXT.W.H CLO.W CLO.D SLZ.W CLZ.D CTO.W CTO.D CTZ.W CTZ.D BYTEPICK.W BYTEPICK.D BSTRINS.W BSTRINS.D BSTRPICK.W BSTRPICK.D REVB.2H REVB.4H REVB.2W REVB.D REVH.2W REVH.D BITREV.4B BITREV.8B BITREV.W BITREV.D MASKEQZ MASKNEZ}hj%sbah}(h]h ]h"]h$]h&]hhuh1j%hhhKhj%ubeh}(h]h ]h"]h$]h&]uh1j' hj%hhhhhNubj( )}(hFBranch Instructions:: BEQ BNE BLT BGE BLTU BGEU BEQZ BNEZ B BL JIRL h](h)}(hBranch Instructions::h]hBranch Instructions:}(hj%hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj%ubj%)}(h-BEQ BNE BLT BGE BLTU BGEU BEQZ BNEZ B BL JIRLh]h-BEQ BNE BLT BGE BLTU BGEU BEQZ BNEZ B BL JIRL}hj &sbah}(h]h ]h"]h$]h&]hhuh1j%hhhMhj%ubeh}(h]h ]h"]h$]h&]uh1j' hj%hhhhhNubj( )}(hLoad/Store Instructions:: LD.B LD.BU LD.H LD.HU LD.W LD.WU LD.D ST.B ST.H ST.W ST.D LDX.B LDX.BU LDX.H LDX.HU LDX.W LDX.WU LDX.D STX.B STX.H STX.W STX.D LDPTR.W LDPTR.D STPTR.W STPTR.D PRELD PRELDX h](h)}(hLoad/Store Instructions::h]hLoad/Store Instructions:}(hj%&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj!&ubj%)}(hLD.B LD.BU LD.H LD.HU LD.W LD.WU LD.D ST.B ST.H ST.W ST.D LDX.B LDX.BU LDX.H LDX.HU LDX.W LDX.WU LDX.D STX.B STX.H STX.W STX.D LDPTR.W LDPTR.D STPTR.W STPTR.D PRELD PRELDXh]hLD.B LD.BU LD.H LD.HU LD.W LD.WU LD.D ST.B ST.H ST.W ST.D LDX.B LDX.BU LDX.H LDX.HU LDX.W LDX.WU LDX.D STX.B STX.H STX.W STX.D LDPTR.W LDPTR.D STPTR.W STPTR.D PRELD PRELDX}hj3&sbah}(h]h ]h"]h$]h&]hhuh1j%hhhMhj!&ubeh}(h]h ]h"]h$]h&]uh1j' hj%hhhhhNubj( )}(hAtomic Operation Instructions:: LL.W SC.W LL.D SC.D AMSWAP.W AMSWAP.D AMADD.W AMADD.D AMAND.W AMAND.D AMOR.W AMOR.D AMXOR.W AMXOR.D AMMAX.W AMMAX.D AMMIN.W AMMIN.D h](h)}(hAtomic Operation Instructions::h]hAtomic Operation Instructions:}(hjK&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM hjG&ubj%)}(hLL.W SC.W LL.D SC.D AMSWAP.W AMSWAP.D AMADD.W AMADD.D AMAND.W AMAND.D AMOR.W AMOR.D AMXOR.W AMXOR.D AMMAX.W AMMAX.D AMMIN.W AMMIN.Dh]hLL.W SC.W LL.D SC.D AMSWAP.W AMSWAP.D AMADD.W AMADD.D AMAND.W AMAND.D AMOR.W AMOR.D AMXOR.W AMXOR.D AMMAX.W AMMAX.D AMMIN.W AMMIN.D}hjY&sbah}(h]h ]h"]h$]h&]hhuh1j%hhhMhjG&ubeh}(h]h ]h"]h$]h&]uh1j' hj%hhhhhNubj( )}(h#Barrier Instructions:: IBAR DBAR h](h)}(hBarrier Instructions::h]hBarrier Instructions:}(hjq&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhjm&ubj%)}(h IBAR DBARh]h IBAR DBAR}hj&sbah}(h]h ]h"]h$]h&]hhuh1j%hhhMhjm&ubeh}(h]h ]h"]h$]h&]uh1j' hj%hhhhhNubj( )}(hSpecial Instructions:: SYSCALL BREAK CPUCFG NOP IDLE ERTN(ERET) DBCL(DBGCALL) RDTIMEL.W RDTIMEH.W RDTIME.D ASRTLE.D ASRTGT.D h](h)}(hSpecial Instructions::h]hSpecial Instructions:}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj&ubj%)}(heSYSCALL BREAK CPUCFG NOP IDLE ERTN(ERET) DBCL(DBGCALL) RDTIMEL.W RDTIMEH.W RDTIME.D ASRTLE.D ASRTGT.Dh]heSYSCALL BREAK CPUCFG NOP IDLE ERTN(ERET) DBCL(DBGCALL) RDTIMEL.W RDTIMEH.W RDTIME.D ASRTLE.D ASRTGT.D}hj&sbah}(h]h ]h"]h$]h&]hhuh1j%hhhMhj&ubeh}(h]h ]h"]h$]h&]uh1j' hj%hhhhhNubj( )}(hPrivileged Instructions:: CSRRD CSRWR CSRXCHG IOCSRRD.B IOCSRRD.H IOCSRRD.W IOCSRRD.D IOCSRWR.B IOCSRWR.H IOCSRWR.W IOCSRWR.D CACOP TLBP(TLBSRCH) TLBRD TLBWR TLBFILL TLBCLR TLBFLUSH INVTLB LDDIR LDPTE h](h)}(hPrivileged Instructions::h]hPrivileged Instructions:}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj&ubj%)}(hCSRRD CSRWR CSRXCHG IOCSRRD.B IOCSRRD.H IOCSRRD.W IOCSRRD.D IOCSRWR.B IOCSRWR.H IOCSRWR.W IOCSRWR.D CACOP TLBP(TLBSRCH) TLBRD TLBWR TLBFILL TLBCLR TLBFLUSH INVTLB LDDIR LDPTEh]hCSRRD CSRWR CSRXCHG IOCSRRD.B IOCSRRD.H IOCSRRD.W IOCSRRD.D IOCSRWR.B IOCSRWR.H IOCSRWR.W IOCSRWR.D CACOP TLBP(TLBSRCH) TLBRD TLBWR TLBFILL TLBCLR TLBFLUSH INVTLB LDDIR LDPTE}hj&sbah}(h]h ]h"]h$]h&]hhuh1j%hhhMhj&ubeh}(h]h ]h"]h$]h&]uh1j' hj%hhhhhNubeh}(h]h ]h"]h$]h&]enumtypearabicprefixhsuffix.uh1j%hj?%hhhhhKubeh}(h]list-of-instructionsah ]h"]list of instructionsah$]h&]uh1hhj"hhhhhKubeh}(h]basic-instruction-setah ]h"]basic instruction setah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(hVirtual Memoryh]hVirtual Memory}(hj&hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj&hhhhhM#ubh)}(hOLoongArch supports direct-mapped virtual memory and page-mapped virtual memory.h]hOLoongArch supports direct-mapped virtual memory and page-mapped virtual memory.}(hj 'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM%hj&hhubh)}(hDirect-mapped virtual memory is configured by CSR.DMWn (n=0~3), it has a simple relationship between virtual address (VA) and physical address (PA)::h]hDirect-mapped virtual memory is configured by CSR.DMWn (n=0~3), it has a simple relationship between virtual address (VA) and physical address (PA):}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM'hj&hhubj%)}(hVA = PA + FixedOffseth]hVA = PA + FixedOffset}hj''sbah}(h]h ]h"]h$]h&]hhuh1j%hhhM*hj&hhubh)}(hPage-mapped virtual memory has arbitrary relationship between VA and PA, which is recorded in TLB and page tables. LoongArch's TLB includes a fully-associative MTLB (Multiple Page Size TLB) and set-associative STLB (Single Page Size TLB).h]hPage-mapped virtual memory has arbitrary relationship between VA and PA, which is recorded in TLB and page tables. LoongArch’s TLB includes a fully-associative MTLB (Multiple Page Size TLB) and set-associative STLB (Single Page Size TLB).}(hj5'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM,hj&hhubh)}(hLBy default, the whole virtual address space of LA32 is configured like this:h]hLBy default, the whole virtual address space of LA32 is configured like this:}(hjC'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM0hj&hhubj)}(hhh]j)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1jhjT'ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjT'ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjT'ubj)}(hhh]j)}(hhh](j)}(hhh]h)}(hNameh]hName}(hj~'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM3hj{'ubah}(h]h ]h"]h$]h&]uh1jhjx'ubj)}(hhh]h)}(h Address Rangeh]h Address Range}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM3hj'ubah}(h]h ]h"]h$]h&]uh1jhjx'ubj)}(hhh]h)}(h Attributesh]h Attributes}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM3hj'ubah}(h]h ]h"]h$]h&]uh1jhjx'ubeh}(h]h ]h"]h$]h&]uh1jhju'ubah}(h]h ]h"]h$]h&]uh1jhjT'ubjA)}(hhh](j)}(hhh](j)}(hhh]h)}(h ``UVRANGE``h]j)}(hj'h]hUVRANGE}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1hhhhM5hj'ubah}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh]h)}(h``0x00000000 - 0x7FFFFFFF``h]j)}(hj'h]h0x00000000 - 0x7FFFFFFF}(hj'hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj'ubah}(h]h ]h"]h$]h&]uh1hhhhM5hj'ubah}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh]h)}(hPage-mapped, Cached, PLV0~3h]hPage-mapped, Cached, PLV0~3}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM5hj(ubah}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh](j)}(hhh]h)}(h ``KPRANGE0``h]j)}(hj7(h]hKPRANGE0}(hj9(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj5(ubah}(h]h ]h"]h$]h&]uh1hhhhM6hj2(ubah}(h]h ]h"]h$]h&]uh1jhj/(ubj)}(hhh]h)}(h``0x80000000 - 0x9FFFFFFF``h]j)}(hjW(h]h0x80000000 - 0x9FFFFFFF}(hjY(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjU(ubah}(h]h ]h"]h$]h&]uh1hhhhM6hjR(ubah}(h]h ]h"]h$]h&]uh1jhj/(ubj)}(hhh]h)}(hDirect-mapped, Uncached, PLV0h]hDirect-mapped, Uncached, PLV0}(hju(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM6hjr(ubah}(h]h ]h"]h$]h&]uh1jhj/(ubeh}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh](j)}(hhh]h)}(h ``KPRANGE1``h]j)}(hj(h]hKPRANGE1}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1hhhhM7hj(ubah}(h]h ]h"]h$]h&]uh1jhj(ubj)}(hhh]h)}(h``0xA0000000 - 0xBFFFFFFF``h]j)}(hj(h]h0xA0000000 - 0xBFFFFFFF}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1hhhhM7hj(ubah}(h]h ]h"]h$]h&]uh1jhj(ubj)}(hhh]h)}(hDirect-mapped, Cached, PLV0h]hDirect-mapped, Cached, PLV0}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM7hj(ubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhj'ubj)}(hhh](j)}(hhh]h)}(h ``KVRANGE``h]j)}(hj(h]hKVRANGE}(hj(hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj(ubah}(h]h ]h"]h$]h&]uh1hhhhM8hj(ubah}(h]h ]h"]h$]h&]uh1jhj(ubj)}(hhh]h)}(h``0xC0000000 - 0xFFFFFFFF``h]j)}(hj)h]h0xC0000000 - 0xFFFFFFFF}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1hhhhM8hj)ubah}(h]h ]h"]h$]h&]uh1jhj(ubj)}(hhh]h)}(hPage-mapped, Cached, PLV0h]hPage-mapped, Cached, PLV0}(hj5)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM8hj2)ubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhj'ubeh}(h]h ]h"]h$]h&]uh1j@hjT'ubeh}(h]h ]h"]h$]h&]colsKuh1jhjQ'ubah}(h]h ]h"]h$]h&]uh1jhj&hhhhhNubh)}(hXUser mode (PLV3) can only access UVRANGE. For direct-mapped KPRANGE0 and KPRANGE1, PA is equal to VA with bit30~31 cleared. For example, the uncached direct-mapped VA of 0x00001000 is 0x80001000, and the cached direct-mapped VA of 0x00001000 is 0xA0001000.h]hXUser mode (PLV3) can only access UVRANGE. For direct-mapped KPRANGE0 and KPRANGE1, PA is equal to VA with bit30~31 cleared. For example, the uncached direct-mapped VA of 0x00001000 is 0x80001000, and the cached direct-mapped VA of 0x00001000 is 0xA0001000.}(hjb)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM;hj&hhubh)}(hLBy default, the whole virtual address space of LA64 is configured like this:h]hLBy default, the whole virtual address space of LA64 is configured like this:}(hjp)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM@hj&hhubj)}(hhh]j)}(hhh](j)}(hhh]h}(h]h ]h"]h$]h&]colwidthK uh1jhj)ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhj)ubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK&uh1jhj)ubj)}(hhh]j)}(hhh](j)}(hhh]h)}(hNameh]hName}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMChj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubj)}(hhh]h)}(h Address Rangeh]h Address Range}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMChj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubj)}(hhh]h)}(h Attributesh]h Attributes}(hj)hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMChj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubjA)}(hhh](j)}(hhh](j)}(hhh]h)}(h ``XUVRANGE``h]j)}(hj*h]hXUVRANGE}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1hhhhMEhj)ubah}(h]h ]h"]h$]h&]uh1jhj)ubj)}(hhh]h)}(h+``0x0000000000000000 - 0x3FFFFFFFFFFFFFFF``h]j)}(hj$*h]h'0x0000000000000000 - 0x3FFFFFFFFFFFFFFF}(hj&*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"*ubah}(h]h ]h"]h$]h&]uh1hhhhMEhj*ubah}(h]h ]h"]h$]h&]uh1jhj)ubj)}(hhh]h)}(hPage-mapped, Cached, PLV0~3h]hPage-mapped, Cached, PLV0~3}(hjB*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMEhj?*ubah}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1jhj)ubj)}(hhh](j)}(hhh]h)}(h ``XSPRANGE``h]j)}(hjd*h]hXSPRANGE}(hjf*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjb*ubah}(h]h ]h"]h$]h&]uh1hhhhMGhj_*ubah}(h]h ]h"]h$]h&]uh1jhj\*ubj)}(hhh]h)}(h+``0x4000000000000000 - 0x7FFFFFFFFFFFFFFF``h]j)}(hj*h]h'0x4000000000000000 - 0x7FFFFFFFFFFFFFFF}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1hhhhMGhj*ubah}(h]h ]h"]h$]h&]uh1jhj\*ubj)}(hhh]h)}(h&Direct-mapped, Cached / Uncached, PLV0h]h&Direct-mapped, Cached / Uncached, PLV0}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMGhj*ubah}(h]h ]h"]h$]h&]uh1jhj\*ubeh}(h]h ]h"]h$]h&]uh1jhj)ubj)}(hhh](j)}(hhh]h)}(h ``XKPRANGE``h]j)}(hj*h]hXKPRANGE}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1hhhhMIhj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubj)}(hhh]h)}(h+``0x8000000000000000 - 0xBFFFFFFFFFFFFFFF``h]j)}(hj*h]h'0x8000000000000000 - 0xBFFFFFFFFFFFFFFF}(hj*hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj*ubah}(h]h ]h"]h$]h&]uh1hhhhMIhj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubj)}(hhh]h)}(h&Direct-mapped, Cached / Uncached, PLV0h]h&Direct-mapped, Cached / Uncached, PLV0}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMIhj*ubah}(h]h ]h"]h$]h&]uh1jhj*ubeh}(h]h ]h"]h$]h&]uh1jhj)ubj)}(hhh](j)}(hhh]h)}(h ``XKVRANGE``h]j)}(hj$+h]hXKVRANGE}(hj&+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhj"+ubah}(h]h ]h"]h$]h&]uh1hhhhMKhj+ubah}(h]h ]h"]h$]h&]uh1jhj+ubj)}(hhh]h)}(h+``0xC000000000000000 - 0xFFFFFFFFFFFFFFFF``h]j)}(hjD+h]h'0xC000000000000000 - 0xFFFFFFFFFFFFFFFF}(hjF+hhhNhNubah}(h]h ]h"]h$]h&]uh1jhjB+ubah}(h]h ]h"]h$]h&]uh1hhhhMKhj?+ubah}(h]h ]h"]h$]h&]uh1jhj+ubj)}(hhh]h)}(hPage-mapped, Cached, PLV0h]hPage-mapped, Cached, PLV0}(hjb+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMKhj_+ubah}(h]h ]h"]h$]h&]uh1jhj+ubeh}(h]h ]h"]h$]h&]uh1jhj)ubeh}(h]h ]h"]h$]h&]uh1j@hj)ubeh}(h]h ]h"]h$]h&]colsKuh1jhj~)ubah}(h]h ]h"]h$]h&]uh1jhj&hhhhhNubh)}(hXUser mode (PLV3) can only access XUVRANGE. For direct-mapped XSPRANGE and XKPRANGE, PA is equal to VA with bits 60~63 cleared, and the cache attribute is configured by bits 60~61 in VA: 0 is for strongly-ordered uncached, 1 is for coherent cached, and 2 is for weakly-ordered uncached.h]hXUser mode (PLV3) can only access XUVRANGE. For direct-mapped XSPRANGE and XKPRANGE, PA is equal to VA with bits 60~63 cleared, and the cache attribute is configured by bits 60~61 in VA: 0 is for strongly-ordered uncached, 1 is for coherent cached, and 2 is for weakly-ordered uncached.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMOhj&hhubh)}(hKCurrently we only use XKPRANGE for direct mapping and XSPRANGE is reserved.h]hKCurrently we only use XKPRANGE for direct mapping and XSPRANGE is reserved.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMThj&hhubh)}(hXSTo put this in action: the strongly-ordered uncached direct-mapped VA (in XKPRANGE) of 0x00000000_00001000 is 0x80000000_00001000, the coherent cached direct-mapped VA (in XKPRANGE) of 0x00000000_00001000 is 0x90000000_00001000, and the weakly-ordered uncached direct-mapped VA (in XKPRANGE) of 0x00000000 _00001000 is 0xA0000000_00001000.h]hXSTo put this in action: the strongly-ordered uncached direct-mapped VA (in XKPRANGE) of 0x00000000_00001000 is 0x80000000_00001000, the coherent cached direct-mapped VA (in XKPRANGE) of 0x00000000_00001000 is 0x90000000_00001000, and the weakly-ordered uncached direct-mapped VA (in XKPRANGE) of 0x00000000 _00001000 is 0xA0000000_00001000.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMVhj&hhubeh}(h]virtual-memoryah ]h"]virtual memoryah$]h&]uh1hhhhhhhhM#ubh)}(hhh](h)}(h&Relationship of Loongson and LoongArchh]h&Relationship of Loongson and LoongArch}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+hhhhhM]ubh)}(hXLoongArch is a RISC ISA which is different from any other existing ones, while Loongson is a family of processors. Loongson includes 3 series: Loongson-1 is the 32-bit processor series, Loongson-2 is the low-end 64-bit processor series, and Loongson-3 is the high-end 64-bit processor series. Old Loongson is based on MIPS, while New Loongson is based on LoongArch. Take Loongson-3 as an example: Loongson-3A1000/3B1500/3A2000/3A3000/3A4000 are MIPS-compatible, while Loongson- 3A5000 (and future revisions) are all based on LoongArch.h]hXLoongArch is a RISC ISA which is different from any other existing ones, while Loongson is a family of processors. Loongson includes 3 series: Loongson-1 is the 32-bit processor series, Loongson-2 is the low-end 64-bit processor series, and Loongson-3 is the high-end 64-bit processor series. Old Loongson is based on MIPS, while New Loongson is based on LoongArch. Take Loongson-3 as an example: Loongson-3A1000/3B1500/3A2000/3A3000/3A4000 are MIPS-compatible, while Loongson- 3A5000 (and future revisions) are all based on LoongArch.}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM_hj+hhubhtarget)}(h.. _loongarch-references:h]h}(h]h ]h"]h$]h&]refidloongarch-referencesuh1j+hMghj+hhhhubeh}(h]&relationship-of-loongson-and-loongarchah ]h"]&relationship of loongson and loongarchah$]h&]uh1hhhhhhhhM]ubh)}(hhh](h)}(h Referencesh]h References}(hj+hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj+hhhhhMjubh)}(h4Official web site of Loongson Technology Corp. Ltd.:h]h4Official web site of Loongson Technology Corp. Ltd.:}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMlhj+hhubh block_quote)}(hhttp://www.loongson.cn/ h]h)}(hhttp://www.loongson.cn/h]h reference)}(hj,h]hhttp://www.loongson.cn/}(hj!,hhhNhNubah}(h]h ]h"]h$]h&]refurij,uh1j,hj,ubah}(h]h ]h"]h$]h&]uh1hhhhMnhj,ubah}(h]h ]h"]h$]h&]uh1j,hhhMnhj+hhubh)}(hJDeveloper web site of Loongson and LoongArch (Software and Documentation):h]hJDeveloper web site of Loongson and LoongArch (Software and Documentation):}(hj;,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMphj+hhubj,)}(hkhttp://www.loongnix.cn/ https://github.com/loongson/ https://loongson.github.io/LoongArch-Documentation/ h](h)}(hhttp://www.loongnix.cn/h]j ,)}(hjO,h]hhttp://www.loongnix.cn/}(hjQ,hhhNhNubah}(h]h ]h"]h$]h&]refurijO,uh1j,hjM,ubah}(h]h ]h"]h$]h&]uh1hhhhMrhjI,ubh)}(hhttps://github.com/loongson/h]j ,)}(hjg,h]hhttps://github.com/loongson/}(hji,hhhNhNubah}(h]h ]h"]h$]h&]refurijg,uh1j,hje,ubah}(h]h ]h"]h$]h&]uh1hhhhMthjI,ubh)}(h3https://loongson.github.io/LoongArch-Documentation/h]j ,)}(hj,h]h3https://loongson.github.io/LoongArch-Documentation/}(hj,hhhNhNubah}(h]h ]h"]h$]h&]refurij,uh1j,hj},ubah}(h]h ]h"]h$]h&]uh1hhhhMvhjI,ubeh}(h]h ]h"]h$]h&]uh1j,hhhMrhj+hhubh)}(hDocumentation of LoongArch ISA:h]hDocumentation of LoongArch ISA:}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMxhj+hhubj,)}(hhttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-Vol1-v1.10-CN.pdf (in Chinese) https://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-Vol1-v1.10-EN.pdf (in English) h](h)}(huhttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-Vol1-v1.10-CN.pdf (in Chinese)h](j ,)}(hhhttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-Vol1-v1.10-CN.pdfh]hhhttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-Vol1-v1.10-CN.pdf}(hj,hhhNhNubah}(h]h ]h"]h$]h&]refurij,uh1j,hj,ubh (in Chinese)}(hj,hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMzhj,ubh)}(huhttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-Vol1-v1.10-EN.pdf (in English)h](j ,)}(hhhttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-Vol1-v1.10-EN.pdfh]hhhttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-Vol1-v1.10-EN.pdf}(hj,hhhNhNubah}(h]h ]h"]h$]h&]refurij,uh1j,hj,ubh (in English)}(hj,hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhM|hj,ubeh}(h]h ]h"]h$]h&]uh1j,hhhMzhj+hhubh)}(h%Documentation of LoongArch ELF psABI:h]h%Documentation of LoongArch ELF psABI:}(hj,hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhM~hj+hhubj,)}(hhttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-ELF-ABI-v2.01-CN.pdf (in Chinese) https://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-ELF-ABI-v2.01-EN.pdf (in English) h](h)}(hxhttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-ELF-ABI-v2.01-CN.pdf (in Chinese)h](j ,)}(hkhttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-ELF-ABI-v2.01-CN.pdfh]hkhttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-ELF-ABI-v2.01-CN.pdf}(hj-hhhNhNubah}(h]h ]h"]h$]h&]refurij-uh1j,hj,ubh (in Chinese)}(hj,hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj,ubh)}(hxhttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-ELF-ABI-v2.01-EN.pdf (in English)h](j ,)}(hkhttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-ELF-ABI-v2.01-EN.pdfh]hkhttps://github.com/loongson/LoongArch-Documentation/releases/latest/download/LoongArch-ELF-ABI-v2.01-EN.pdf}(hj -hhhNhNubah}(h]h ]h"]h$]h&]refurij"-uh1j,hj-ubh (in English)}(hj-hhhNhNubeh}(h]h ]h"]h$]h&]uh1hhhhMhj,ubeh}(h]h ]h"]h$]h&]uh1j,hhhMhj+hhubh)}(h2Linux kernel repository of Loongson and LoongArch:h]h2Linux kernel repository of Loongson and LoongArch:}(hj?-hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhMhj+hhubj,)}(hMhttps://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson.gith]h)}(hjO-h]j ,)}(hjO-h]hMhttps://git.kernel.org/pub/scm/linux/kernel/git/chenhuacai/linux-loongson.git}(hjT-hhhNhNubah}(h]h ]h"]h$]h&]refurijO-uh1j,hjQ-ubah}(h]h ]h"]h$]h&]uh1hhhhMhjM-ubah}(h]h ]h"]h$]h&]uh1j,hhhMhj+hhubeh}(h]( referencesj+eh ]h"]( referencesloongarch-referenceseh$]h&]uh1hhhhhhhhMjexpect_referenced_by_name}jt-j+sexpect_referenced_by_id}j+j+subeh}(h]introduction-to-loongarchah ]h"]introduction to loongarchah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksjfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_levelK halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj-error_encodingutf-8error_encoding_error_handlerbackslashreplace language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh _destinationN _config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform docinfo_xformKsectsubtitle_xform image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}j+]j+asnameids}(j-j}-j"j"j!jj j j j j"j"j&j&j<%j9%j&j&j+j+j+j+jt-j+js-jp-u nametypes}(j-j"j!j j j"j&j<%j&j+j+jt-js-uh}(j}-hj"hjhj j$j j j"j j&j"j9%j"j&j?%j+j&j+j+j+j+jp-j+u footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages]hsystem_message)}(hhh]h)}(hhh]h:Hyperlink target "loongarch-references" is not referenced.}hj.sbah}(h]h ]h"]h$]h&]uh1hhj .ubah}(h]h ]h"]h$]h&]levelKtypeINFOsourcehlineMguh1j .uba transformerN include_log] decorationNhhub.