Patchwork [wwwdocs,avr,committed] : Mention avr specific improvments

login
register
mail settings
Submitter Georg-Johann Lay
Date Jan. 16, 2013, 8:51 p.m.
Message ID <50F712D2.7050403@gjlay.de>
Download mbox | patch
Permalink /patch/213052/
State New
Headers show

Comments

Georg-Johann Lay - Jan. 16, 2013, 8:51 p.m.
http://gcc.gnu.org/ml/gcc-cvs-wwwdocs/2013/msg00015.html

http://gcc.gnu.org/gcc-4.8/changes.html#avr

Patch

Index: changes.html
===================================================================
RCS file: /cvs/gcc/wwwdocs/htdocs/gcc-4.8/changes.html,v
retrieving revision 1.85
diff -u -p -r1.85 changes.html
--- changes.html	16 Jan 2013 09:38:30 -0000	1.85
+++ changes.html	16 Jan 2013 20:40:40 -0000
@@ -390,6 +390,45 @@  B b(42); // OK
 
 <h2 id="targets">New Targets and Target Specific Improvements</h2>
 
+<h3 id="avr">AVR</h3>
+<ul>
+  <li>
+    Support for the &quot;Embedded&nbsp;C&quot; fixed-point has been
+    added. For details, see the
+    <a href="http://gcc.gnu.org/wiki/avr-gcc#Fixed-Point_Support">
+      GCC wiki</a> and the
+    <a href="http://gcc.gnu.org/onlinedocs/gcc/Fixed_002dPoint.html">
+      user manual</a>.  The support is not complete. 
+  </li>
+  <li>A new print modifier <code>%r</code> for register operands in inline
+  assembler is supported.  It will print the raw register number without the
+    register prefix&nbsp;'<code>r</code>':
+    <pre>
+    /* Return the most significant byte of 'val', a 64-bit value.  */
+
+    unsigned char msb (long long val)
+    {
+      unsigned char c;
+      __asm__ ("mov %0, %r1+7" : "=r" (c) : "r" (val));
+      return c;
+    }</pre>
+    The inline assembler in this example will generate code like
+    <pre>
+    mov r24, 8+7</pre>
+    provided <code>c</code> is allocated to <code>R24</code> and
+    <code>val</code> is allocated to
+    <code>R8</code>&hellip;<code>R15</code>. This works because
+    the GNU assembler accepts plain register numbers without register prefix.
+  </li>
+  <li>
+    Static initializers with 3-byte symbols are supported now:
+    <pre>
+    extern const __memx char foo;
+    const __memx void *pfoo = &amp;foo;</pre>
+    This requires at least Binutils 2.23.
+  </li>
+</ul>
+
 <h3>IA-32/x86-64</h3>
   <ul>
     <li>Allow <code>-mpreferred-stack-boundary=3</code> for the x86-64