<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"><channel><title>mikeash.com pyblog/friday-qa-2011-12-30-disassembling-the-assembly-part-3-arm-edition.html comments</title><link>http://www.mikeash.com/?page=pyblog/friday-qa-2011-12-30-disassembling-the-assembly-part-3-arm-edition.html#comments</link><description>mikeash.com Recent Comments</description><lastBuildDate>Sun, 12 Apr 2026 03:24:39 GMT</lastBuildDate><generator>PyRSS2Gen-1.0.0</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>wasim - 2016-02-27 09:03:50</title><link>http://www.mikeash.com/?page=pyblog/friday-qa-2011-12-30-disassembling-the-assembly-part-3-arm-edition.html#comments</link><description>very useful and helpful. </description><guid isPermaLink="true">bedbfbbfffc39b3eb75197ed9037fcea</guid><pubDate>Sat, 27 Feb 2016 09:03:50 GMT</pubDate></item><item><title>lldong - 2014-07-21 15:59:43</title><link>http://www.mikeash.com/?page=pyblog/friday-qa-2011-12-30-disassembling-the-assembly-part-3-arm-edition.html#comments</link><description>Why apple choose &lt;code&gt;mov  r7, r7&lt;/code&gt; as a marker.  Can &lt;code&gt;r7&lt;/code&gt; be replaced by other register?</description><guid isPermaLink="true">749ef8fc2f465c24bc42fba581825d3d</guid><pubDate>Mon, 21 Jul 2014 15:59:43 GMT</pubDate></item><item><title>Matt Galloway - 2012-02-07 17:44:37</title><link>http://www.mikeash.com/?page=pyblog/friday-qa-2011-12-30-disassembling-the-assembly-part-3-arm-edition.html#comments</link><description>&lt;code&gt;
&lt;br /&gt;mov r4, r0
&lt;br /&gt;mov r0, r4
&lt;br /&gt;&lt;/code&gt;
&lt;br /&gt;
&lt;br /&gt;I stumbled across this also whilst trying to work out why the compiler was doing something odd - &lt;a href="http://stackoverflow.com/questions/9151028/why-do-these-simple-methods-compile-differently/"&gt;http://stackoverflow.com/questions/9151028/why-do-these-simple-methods-compile-differently/&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;The optimiser clearly is doing strange things and quite odd that it didn't manage to clean up the redundant mov. I guess these things happen though.
&lt;br /&gt;
&lt;br /&gt;You should file a bug report for it as well.</description><guid isPermaLink="true">6abaec8f745f25f3772ba20b4a8c55c3</guid><pubDate>Tue, 07 Feb 2012 17:44:37 GMT</pubDate></item><item><title>Gwynne Raskind - 2012-01-02 23:49:18</title><link>http://www.mikeash.com/?page=pyblog/friday-qa-2011-12-30-disassembling-the-assembly-part-3-arm-edition.html#comments</link><description>&lt;b&gt;Steve:&lt;/b&gt; Sorry, I forgot to mention that you'll have to change that line to &lt;code&gt;#import &amp;lt;Foundation/Foundation.h&amp;gt;&lt;/code&gt; to build for armv7.</description><guid isPermaLink="true">441107e8e1ccee77cd530cd32b8ade1e</guid><pubDate>Mon, 02 Jan 2012 23:49:18 GMT</pubDate></item><item><title>Steve Nicholson - 2012-01-02 22:19:17</title><link>http://www.mikeash.com/?page=pyblog/friday-qa-2011-12-30-disassembling-the-assembly-part-3-arm-edition.html#comments</link><description>When I try to use your command line to compile test.m from Part 1, it bombs immediately with &lt;code&gt;test.m:3:13: fatal error: 'Cocoa/Cocoa.h' file not found&lt;/code&gt;. Which seems to make sense since iOS programs don't use Cocoa.h. Are you sure you used the identical test.m?</description><guid isPermaLink="true">1c2aae619853eea53f9579a8f375a9cd</guid><pubDate>Mon, 02 Jan 2012 22:19:17 GMT</pubDate></item><item><title>Owen Shepherd - 2012-01-01 13:02:51</title><link>http://www.mikeash.com/?page=pyblog/friday-qa-2011-12-30-disassembling-the-assembly-part-3-arm-edition.html#comments</link><description>Passing floating point values in the integer registers is actually less efficient. However, GCC has historically had no support for the VFP version of AAPCS - that is, it always uses the version of the ABI designed for platforms without an FPU.
&lt;br /&gt;
&lt;br /&gt;In any case, calls to NSLog and other variadic functions will always use the base version of AAPCS, as stated in the specification. 
&lt;br /&gt;
&lt;br /&gt;Also: In my experience (I've done kernel level work on ARM), the ARMv7 Architecture reference manual (Or, as I like to say, the ARM ARM) contains pretty much everything that the 6 x86 PDFs do. The SystemV x86_64 ABI (as used by everything but Windows and EFI) is specified in a separate document found on x86-64.org, so is really no different, and pretty much all the ARM floating point and vector operations are specified inside the ARM ARM. </description><guid isPermaLink="true">59ab990bcf5819f23332b71779aa5892</guid><pubDate>Sun, 01 Jan 2012 13:02:51 GMT</pubDate></item><item><title>Vladimir Pouzanov - 2011-12-31 11:38:00</title><link>http://www.mikeash.com/?page=pyblog/friday-qa-2011-12-30-disassembling-the-assembly-part-3-arm-edition.html#comments</link><description>Nice article, thanks!</description><guid isPermaLink="true">d08a1303738b8946d5fe09569be2b026</guid><pubDate>Sat, 31 Dec 2011 11:38:00 GMT</pubDate></item><item><title>Ken Thomases - 2011-12-31 00:43:42</title><link>http://www.mikeash.com/?page=pyblog/friday-qa-2011-12-30-disassembling-the-assembly-part-3-arm-edition.html#comments</link><description>Enjoyed the article.  Minor error: in the discussion of MyFPFunction, it's loading 0.5, not 5.0.</description><guid isPermaLink="true">491a032b3639134df2948bd3f734bbd9</guid><pubDate>Sat, 31 Dec 2011 00:43:42 GMT</pubDate></item></channel></rss>
