<html lang="en">
<head>
<title>ARM Features - Debugging with GDB</title>
<meta http-equiv="Content-Type" content="text/html">
<meta name="description" content="Debugging with GDB">
<meta name="generator" content="makeinfo 4.13">
<link title="Top" rel="start" href="index.html#Top">
<link rel="up" href="Standard-Target-Features.html#Standard-Target-Features" title="Standard Target Features">
<link rel="next" href="i386-Features.html#i386-Features" title="i386 Features">
<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
<!--
Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996,
1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010
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 the
Invariant Sections being ``Free Software'' and ``Free Software Needs
Free Documentation'', with the Front-Cover Texts being ``A GNU Manual,''
and with the Back-Cover Texts as in (a) below.

(a) The FSF's Back-Cover Text is: ``You are free to copy and modify
this GNU Manual.  Buying copies from GNU Press supports the FSF in
developing GNU and promoting software freedom.''-->
<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>
<link rel="stylesheet" type="text/css" href="../cs.css">
</head>
<body>
<div class="node">
<a name="ARM-Features"></a>
<p>
Next:&nbsp;<a rel="next" accesskey="n" href="i386-Features.html#i386-Features">i386 Features</a>,
Up:&nbsp;<a rel="up" accesskey="u" href="Standard-Target-Features.html#Standard-Target-Features">Standard Target Features</a>
<hr>
</div>

<h4 class="subsection">G.4.1 ARM Features</h4>

<p><a name="index-target-descriptions_002c-ARM-features-2554"></a>
The &lsquo;<samp><span class="samp">org.gnu.gdb.arm.core</span></samp>&rsquo; feature is required for non-M-profile
ARM targets. 
It should contain registers &lsquo;<samp><span class="samp">r0</span></samp>&rsquo; through &lsquo;<samp><span class="samp">r13</span></samp>&rsquo;, &lsquo;<samp><span class="samp">sp</span></samp>&rsquo;,
&lsquo;<samp><span class="samp">lr</span></samp>&rsquo;, &lsquo;<samp><span class="samp">pc</span></samp>&rsquo;, and &lsquo;<samp><span class="samp">cpsr</span></samp>&rsquo;.

   <p>For M-profile targets (e.g. Cortex-M3), the &lsquo;<samp><span class="samp">org.gnu.gdb.arm.core</span></samp>&rsquo;
feature is replaced by &lsquo;<samp><span class="samp">org.gnu.gdb.arm.m-profile</span></samp>&rsquo;.  It should contain
registers &lsquo;<samp><span class="samp">r0</span></samp>&rsquo; through &lsquo;<samp><span class="samp">r13</span></samp>&rsquo;, &lsquo;<samp><span class="samp">sp</span></samp>&rsquo;, &lsquo;<samp><span class="samp">lr</span></samp>&rsquo;, &lsquo;<samp><span class="samp">pc</span></samp>&rsquo;,
and &lsquo;<samp><span class="samp">xpsr</span></samp>&rsquo;.

   <p>The &lsquo;<samp><span class="samp">org.gnu.gdb.arm.fpa</span></samp>&rsquo; feature is optional.  If present, it
should contain registers &lsquo;<samp><span class="samp">f0</span></samp>&rsquo; through &lsquo;<samp><span class="samp">f7</span></samp>&rsquo; and &lsquo;<samp><span class="samp">fps</span></samp>&rsquo;.

   <p>The &lsquo;<samp><span class="samp">org.gnu.gdb.xscale.iwmmxt</span></samp>&rsquo; feature is optional.  If present,
it should contain at least registers &lsquo;<samp><span class="samp">wR0</span></samp>&rsquo; through &lsquo;<samp><span class="samp">wR15</span></samp>&rsquo; and
&lsquo;<samp><span class="samp">wCGR0</span></samp>&rsquo; through &lsquo;<samp><span class="samp">wCGR3</span></samp>&rsquo;.  The &lsquo;<samp><span class="samp">wCID</span></samp>&rsquo;, &lsquo;<samp><span class="samp">wCon</span></samp>&rsquo;,
&lsquo;<samp><span class="samp">wCSSF</span></samp>&rsquo;, and &lsquo;<samp><span class="samp">wCASF</span></samp>&rsquo; registers are optional.

   <p>The &lsquo;<samp><span class="samp">org.gnu.gdb.arm.vfp</span></samp>&rsquo; feature is optional.  If present, it
should contain at least registers &lsquo;<samp><span class="samp">d0</span></samp>&rsquo; through &lsquo;<samp><span class="samp">d15</span></samp>&rsquo;.  If
they are present, &lsquo;<samp><span class="samp">d16</span></samp>&rsquo; through &lsquo;<samp><span class="samp">d31</span></samp>&rsquo; should also be included. 
<span class="sc">gdb</span> will synthesize the single-precision registers from
halves of the double-precision registers.

   <p>The &lsquo;<samp><span class="samp">org.gnu.gdb.arm.neon</span></samp>&rsquo; feature is optional.  It does not
need to contain registers; it instructs <span class="sc">gdb</span> to display the
VFP double-precision registers as vectors and to synthesize the
quad-precision registers from pairs of double-precision registers. 
If this feature is present, &lsquo;<samp><span class="samp">org.gnu.gdb.arm.vfp</span></samp>&rsquo; must also
be present and include 32 double-precision registers.

   </body></html>

