toolchain/share/doc/as.html/ARC_002dRegs.html

126 lines
8.3 KiB
HTML

<html lang="en">
<head>
<title>ARC-Regs - Using as</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Using as">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="ARC-Syntax.html#ARC-Syntax" title="ARC Syntax">
<link rel="prev" href="ARC_002dChars.html#ARC_002dChars" title="ARC-Chars">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
This file documents the GNU Assembler "as".
Copyright (C) 1991-2019 Free Software Foundation, Inc.
Permission is granted to copy, distribute and/or modify this document
under the terms of the GNU Free Documentation License, Version 1.3
or any later version published by the Free Software Foundation;
with no Invariant Sections, with no Front-Cover Texts, and with no
Back-Cover Texts. A copy of the license is included in the
section entitled ``GNU Free Documentation License''.
-->
<meta http-equiv="Content-Style-Type" content="text/css">
<style type="text/css"><!--
pre.display { font-family:inherit }
pre.format { font-family:inherit }
pre.smalldisplay { font-family:inherit; font-size:smaller }
pre.smallformat { font-family:inherit; font-size:smaller }
pre.smallexample { font-size:smaller }
pre.smalllisp { font-size:smaller }
span.sc { font-variant:small-caps }
span.roman { font-family:serif; font-weight:normal; }
span.sansserif { font-family:sans-serif; font-weight:normal; }
--></style>
</head>
<body>
<div class="node">
<a name="ARC-Regs"></a>
<a name="ARC_002dRegs"></a>
<p>
Previous:&nbsp;<a rel="previous" accesskey="p" href="ARC_002dChars.html#ARC_002dChars">ARC-Chars</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="ARC-Syntax.html#ARC-Syntax">ARC Syntax</a>
<hr>
</div>
<h5 class="subsubsection">9.3.2.2 Register Names</h5>
<p><a name="index-ARC-register-names-648"></a><a name="index-register-names_002c-ARC-649"></a>The ARC assembler uses the following register names for its core
registers:
<dl>
<dt><code>r0-r31</code><dd><a name="index-core-general-registers_002c-ARC-650"></a><a name="index-ARC-core-general-registers-651"></a>The core general registers. Registers <code>r26</code> through <code>r31</code>
have special functions, and are usually referred to by those synonyms.
<br><dt><code>gp</code><dd><a name="index-global-pointer_002c-ARC-652"></a><a name="index-ARC-global-pointer-653"></a>The global pointer and a synonym for <code>r26</code>.
<br><dt><code>fp</code><dd><a name="index-frame-pointer_002c-ARC-654"></a><a name="index-ARC-frame-pointer-655"></a>The frame pointer and a synonym for <code>r27</code>.
<br><dt><code>sp</code><dd><a name="index-stack-pointer_002c-ARC-656"></a><a name="index-ARC-stack-pointer-657"></a>The stack pointer and a synonym for <code>r28</code>.
<br><dt><code>ilink1</code><dd><a name="index-level-1-interrupt-link-register_002c-ARC-658"></a><a name="index-ARC-level-1-interrupt-link-register-659"></a>For ARC 600 and ARC 700, the level 1 interrupt link register and a
synonym for <code>r29</code>. Not supported for ARCv2.
<br><dt><code>ilink</code><dd><a name="index-interrupt-link-register_002c-ARC-660"></a><a name="index-ARC-interrupt-link-register-661"></a>For ARCv2, the interrupt link register and a synonym for <code>r29</code>.
Not supported for ARC 600 and ARC 700.
<br><dt><code>ilink2</code><dd><a name="index-level-2-interrupt-link-register_002c-ARC-662"></a><a name="index-ARC-level-2-interrupt-link-register-663"></a>For ARC 600 and ARC 700, the level 2 interrupt link register and a
synonym for <code>r30</code>. Not supported for ARC v2.
<br><dt><code>blink</code><dd><a name="index-link-register_002c-ARC-664"></a><a name="index-ARC-link-register-665"></a>The link register and a synonym for <code>r31</code>.
<br><dt><code>r32-r59</code><dd><a name="index-extension-core-registers_002c-ARC-666"></a><a name="index-ARC-extension-core-registers-667"></a>The extension core registers.
<br><dt><code>lp_count</code><dd><a name="index-loop-counter_002c-ARC-668"></a><a name="index-ARC-loop-counter-669"></a>The loop count register.
<br><dt><code>pcl</code><dd><a name="index-word-aligned-program-counter_002c-ARC-670"></a><a name="index-ARC-word-aligned-program-counter-671"></a>The word aligned program counter.
</dl>
<p>In addition the ARC processor has a large number of <em>auxiliary
registers</em>. The precise set depends on the extensions being
supported, but the following baseline set are always defined:
<dl>
<dt><code>identity</code><dd><a name="index-Processor-Identification-register_002c-ARC-672"></a><a name="index-ARC-Processor-Identification-register-673"></a>Processor Identification register. Auxiliary register address 0x4.
<br><dt><code>pc</code><dd><a name="index-Program-Counter_002c-ARC-674"></a><a name="index-ARC-Program-Counter-675"></a>Program Counter. Auxiliary register address 0x6.
<br><dt><code>status32</code><dd><a name="index-Status-register_002c-ARC-676"></a><a name="index-ARC-Status-register-677"></a>Status register. Auxiliary register address 0x0a.
<br><dt><code>bta</code><dd><a name="index-Branch-Target-Address_002c-ARC-678"></a><a name="index-ARC-Branch-Target-Address-679"></a>Branch Target Address. Auxiliary register address 0x412.
<br><dt><code>ecr</code><dd><a name="index-Exception-Cause-Register_002c-ARC-680"></a><a name="index-ARC-Exception-Cause-Register-681"></a>Exception Cause Register. Auxiliary register address 0x403.
<br><dt><code>int_vector_base</code><dd><a name="index-Interrupt-Vector-Base-address_002c-ARC-682"></a><a name="index-ARC-Interrupt-Vector-Base-address-683"></a>Interrupt Vector Base address. Auxiliary register address 0x25.
<br><dt><code>status32_p0</code><dd><a name="index-Stored-STATUS32-register-on-entry-to-level-P0-interrupts_002c-ARC-684"></a><a name="index-ARC-Stored-STATUS32-register-on-entry-to-level-P0-interrupts-685"></a>Stored STATUS32 register on entry to level P0 interrupts. Auxiliary
register address 0xb.
<br><dt><code>aux_user_sp</code><dd><a name="index-Saved-User-Stack-Pointer_002c-ARC-686"></a><a name="index-ARC-Saved-User-Stack-Pointer-687"></a>Saved User Stack Pointer. Auxiliary register address 0xd.
<br><dt><code>eret</code><dd><a name="index-Exception-Return-Address_002c-ARC-688"></a><a name="index-ARC-Exception-Return-Address-689"></a>Exception Return Address. Auxiliary register address 0x400.
<br><dt><code>erbta</code><dd><a name="index-BTA-saved-on-exception-entry_002c-ARC-690"></a><a name="index-ARC-BTA-saved-on-exception-entry-691"></a>BTA saved on exception entry. Auxiliary register address 0x401.
<br><dt><code>erstatus</code><dd><a name="index-STATUS32-saved-on-exception_002c-ARC-692"></a><a name="index-ARC-STATUS32-saved-on-exception-693"></a>STATUS32 saved on exception. Auxiliary register address 0x402.
<br><dt><code>bcr_ver</code><dd><a name="index-Build-Configuration-Registers-Version_002c-ARC-694"></a><a name="index-ARC-Build-Configuration-Registers-Version-695"></a>Build Configuration Registers Version. Auxiliary register address 0x60.
<br><dt><code>bta_link_build</code><dd><a name="index-Build-configuration-for_003a-BTA-Registers_002c-ARC-696"></a><a name="index-ARC-Build-configuration-for_003a-BTA-Registers-697"></a>Build configuration for: BTA Registers. Auxiliary register address 0x63.
<br><dt><code>vecbase_ac_build</code><dd><a name="index-Build-configuration-for_003a-Interrupts_002c-ARC-698"></a><a name="index-ARC-Build-configuration-for_003a-Interrupts-699"></a>Build configuration for: Interrupts. Auxiliary register address 0x68.
<br><dt><code>rf_build</code><dd><a name="index-Build-configuration-for_003a-Core-Registers_002c-ARC-700"></a><a name="index-ARC-Build-configuration-for_003a-Core-Registers-701"></a>Build configuration for: Core Registers. Auxiliary register address 0x6e.
<br><dt><code>dccm_build</code><dd><a name="index-DCCM-RAM-Configuration-Register_002c-ARC-702"></a><a name="index-ARC-DCCM-RAM-Configuration-Register-703"></a>DCCM RAM Configuration Register. Auxiliary register address 0xc1.
</dl>
<p>Additional auxiliary register names are defined according to the
processor architecture version and extensions selected by the options.
</body></html>