<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments for newbie iPhone developer</title>
	<atom:link href="http://astronautz.wordpress.com/comments/feed/" rel="self" type="application/rss+xml" />
	<link>http://astronautz.wordpress.com</link>
	<description>poor Windows coder tries to learn iPhone development</description>
	<lastBuildDate>Sat, 08 Aug 2009 18:28:34 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>Comment on Developing iPhone apps with Visual Studio by lefty3</title>
		<link>http://astronautz.wordpress.com/2008/12/05/developing-iphone-apps-with-visual-studio/#comment-16</link>
		<dc:creator>lefty3</dc:creator>
		<pubDate>Sat, 08 Aug 2009 18:28:34 +0000</pubDate>
		<guid isPermaLink="false">http://astronautz.wordpress.com/?p=46#comment-16</guid>
		<description>iPhone does not support c#, or .net. 
You can do part of the development on visual studio if you are using c++ &amp; opengl (as I have mentioned in the artical), but for the final device build and for objective c you have to use xcode.</description>
		<content:encoded><![CDATA[<p>iPhone does not support c#, or .net.<br />
You can do part of the development on visual studio if you are using c++ &amp; opengl (as I have mentioned in the artical), but for the final device build and for objective c you have to use xcode.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Developing iPhone apps with Visual Studio by Jahedur</title>
		<link>http://astronautz.wordpress.com/2008/12/05/developing-iphone-apps-with-visual-studio/#comment-15</link>
		<dc:creator>Jahedur</dc:creator>
		<pubDate>Sat, 08 Aug 2009 04:34:41 +0000</pubDate>
		<guid isPermaLink="false">http://astronautz.wordpress.com/?p=46#comment-15</guid>
		<description>hi,
I need to develop an application for the iPhones running on MAC OS.

Can I develop it in Visual studio using c#/vb.net? And also I need an emulator as well.

Or is there any other ways to build the application??? But I would prefer visual studio as I am familiar with it.

waiting for your kind response...</description>
		<content:encoded><![CDATA[<p>hi,<br />
I need to develop an application for the iPhones running on MAC OS.</p>
<p>Can I develop it in Visual studio using c#/vb.net? And also I need an emulator as well.</p>
<p>Or is there any other ways to build the application??? But I would prefer visual studio as I am familiar with it.</p>
<p>waiting for your kind response&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Urrrgh! by pam</title>
		<link>http://astronautz.wordpress.com/2008/10/04/urrrgh/#comment-14</link>
		<dc:creator>pam</dc:creator>
		<pubDate>Tue, 02 Jun 2009 05:49:48 +0000</pubDate>
		<guid isPermaLink="false">http://astronautz.wordpress.com/?p=9#comment-14</guid>
		<description>Hello,

I&#039;d appreciate if you can give me some feedback on our iphone app iLightFarts

http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=317429824&amp;mt=8

I realize that you are iphone app guru :) It&#039;d be swell if you can place an honest review of our app.

Thank you,
Pam</description>
		<content:encoded><![CDATA[<p>Hello,</p>
<p>I&#8217;d appreciate if you can give me some feedback on our iphone app iLightFarts</p>
<p><a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=317429824&amp;mt=8" rel="nofollow">http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=317429824&amp;mt=8</a></p>
<p>I realize that you are iphone app guru <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  It&#8217;d be swell if you can place an honest review of our app.</p>
<p>Thank you,<br />
Pam</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Some old performance tricks by jcak77</title>
		<link>http://astronautz.wordpress.com/2009/01/08/63/#comment-13</link>
		<dc:creator>jcak77</dc:creator>
		<pubDate>Tue, 07 Apr 2009 01:57:46 +0000</pubDate>
		<guid isPermaLink="false">http://astronautz.wordpress.com/?p=63#comment-13</guid>
		<description>Oh and I measured in actual code that the above code is only 2.2 times faster than the one generated using a plain 1.f/sqrtf(f), which tells me GCC does a pretty decent job.


Options used: -O3 -fomit-frame-pointer -fstrict-aliasing -marm -march=armv6 -mcpu=arm1176jzf-s -mfloat-abi=softfp -mfpu=vfp</description>
		<content:encoded><![CDATA[<p>Oh and I measured in actual code that the above code is only 2.2 times faster than the one generated using a plain 1.f/sqrtf(f), which tells me GCC does a pretty decent job.</p>
<p>Options used: -O3 -fomit-frame-pointer -fstrict-aliasing -marm -march=armv6 -mcpu=arm1176jzf-s -mfloat-abi=softfp -mfpu=vfp</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Some old performance tricks by jcak77</title>
		<link>http://astronautz.wordpress.com/2009/01/08/63/#comment-12</link>
		<dc:creator>jcak77</dc:creator>
		<pubDate>Tue, 07 Apr 2009 01:54:52 +0000</pubDate>
		<guid isPermaLink="false">http://astronautz.wordpress.com/?p=63#comment-12</guid>
		<description>When removing the refinement step from the above formula, you still get a maximum relative error of 3.4% which is good enough for normalizing a vector, and gcc generates the following code:

ldr     r3, x
sub     r0, r3, r0, asr #1
...
x:
.long 1597463007

That&#039;s a total of 4 cycles if I&#039;m not mistaken.
Now, I can hardly see what I could do during 38 cycles when i&#039;m normalizing my vectors :-/</description>
		<content:encoded><![CDATA[<p>When removing the refinement step from the above formula, you still get a maximum relative error of 3.4% which is good enough for normalizing a vector, and gcc generates the following code:</p>
<p>ldr     r3, x<br />
sub     r0, r3, r0, asr #1<br />
&#8230;<br />
x:<br />
.long 1597463007</p>
<p>That&#8217;s a total of 4 cycles if I&#8217;m not mistaken.<br />
Now, I can hardly see what I could do during 38 cycles when i&#8217;m normalizing my vectors :-/</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Some old performance tricks by Andy</title>
		<link>http://astronautz.wordpress.com/2009/01/08/63/#comment-11</link>
		<dc:creator>Andy</dc:creator>
		<pubDate>Fri, 20 Feb 2009 15:00:16 +0000</pubDate>
		<guid isPermaLink="false">http://astronautz.wordpress.com/?p=63#comment-11</guid>
		<description>Unfortunately, no... If you look at the asm source code generated by GCCE compiler you would find that it generates pretty poor code. It does not use the Vector operations of the VFP. The only way to get the best performance is to go to write assembly code for VFP.

Also, if you are writing C code for the VFP make sure you turn off the thumb option in the project settings, as any floating point operation will call an Arm function.

I also tried the carmack method for the InvSqrt but realized if you pipeline the square root and division you get quicker results using the square root and division of the VFP. Like:

fsqrts	s0,s0
// Do something for 19 cycles
fdivs	s0,s11,s0
// Do something for 19 cycles then collect the data

You can do other floating point stuff (as long as you don&#039;t do a division or square root) or integer stuff to do burn off cycles between the Do Something, as these work from a different pipeline.</description>
		<content:encoded><![CDATA[<p>Unfortunately, no&#8230; If you look at the asm source code generated by GCCE compiler you would find that it generates pretty poor code. It does not use the Vector operations of the VFP. The only way to get the best performance is to go to write assembly code for VFP.</p>
<p>Also, if you are writing C code for the VFP make sure you turn off the thumb option in the project settings, as any floating point operation will call an Arm function.</p>
<p>I also tried the carmack method for the InvSqrt but realized if you pipeline the square root and division you get quicker results using the square root and division of the VFP. Like:</p>
<p>fsqrts	s0,s0<br />
// Do something for 19 cycles<br />
fdivs	s0,s11,s0<br />
// Do something for 19 cycles then collect the data</p>
<p>You can do other floating point stuff (as long as you don&#8217;t do a division or square root) or integer stuff to do burn off cycles between the Do Something, as these work from a different pipeline.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Some old performance tricks by lefty3</title>
		<link>http://astronautz.wordpress.com/2009/01/08/63/#comment-10</link>
		<dc:creator>lefty3</dc:creator>
		<pubDate>Fri, 20 Feb 2009 12:54:53 +0000</pubDate>
		<guid isPermaLink="false">http://astronautz.wordpress.com/?p=63#comment-10</guid>
		<description>Is it possible that apple&#039;s c++ compiler could be re-ordering the instructions automatically to take advantage of the FPU?</description>
		<content:encoded><![CDATA[<p>Is it possible that apple&#8217;s c++ compiler could be re-ordering the instructions automatically to take advantage of the FPU?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Some old performance tricks by Andy</title>
		<link>http://astronautz.wordpress.com/2009/01/08/63/#comment-9</link>
		<dc:creator>Andy</dc:creator>
		<pubDate>Fri, 20 Feb 2009 05:22:50 +0000</pubDate>
		<guid isPermaLink="false">http://astronautz.wordpress.com/?p=63#comment-9</guid>
		<description>Most of the time. The trick is to do smart ideas like split the reg banks into two for loops - so that you load one half of the regs and calculate with the other half.

If you calculate something like dot products and have a few, do it like this:

fmuls s0,s8,s8
fmuls s1,s12,s12
fmuls s2,s16,s16
fmuls s3,s20,s20
// Stalls here for 7-3 = 4 cycles... Put some other code here
fmacs s0,s9,s9
fmacs s1,s13,s13
fmacs s2,s17,s17
fmacs s3,s21,s21
// Stalls here for 7-3 = 4 cycles... Put some other code here
fmacs s0,s10,s10
fmacs s1,s14,s14
fmacs s2,s18,s18
fmacs s3,s22,s22

All the rules are in the Arm FPU manual on the arm site, as there are loads more things to consider.</description>
		<content:encoded><![CDATA[<p>Most of the time. The trick is to do smart ideas like split the reg banks into two for loops &#8211; so that you load one half of the regs and calculate with the other half.</p>
<p>If you calculate something like dot products and have a few, do it like this:</p>
<p>fmuls s0,s8,s8<br />
fmuls s1,s12,s12<br />
fmuls s2,s16,s16<br />
fmuls s3,s20,s20<br />
// Stalls here for 7-3 = 4 cycles&#8230; Put some other code here<br />
fmacs s0,s9,s9<br />
fmacs s1,s13,s13<br />
fmacs s2,s17,s17<br />
fmacs s3,s21,s21<br />
// Stalls here for 7-3 = 4 cycles&#8230; Put some other code here<br />
fmacs s0,s10,s10<br />
fmacs s1,s14,s14<br />
fmacs s2,s18,s18<br />
fmacs s3,s22,s22</p>
<p>All the rules are in the Arm FPU manual on the arm site, as there are loads more things to consider.</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Some old performance tricks by lefty3</title>
		<link>http://astronautz.wordpress.com/2009/01/08/63/#comment-8</link>
		<dc:creator>lefty3</dc:creator>
		<pubDate>Thu, 19 Feb 2009 09:36:55 +0000</pubDate>
		<guid isPermaLink="false">http://astronautz.wordpress.com/?p=63#comment-8</guid>
		<description>Thnaks for the info Andy. So, do you know how often it stalls in practice?</description>
		<content:encoded><![CDATA[<p>Thnaks for the info Andy. So, do you know how often it stalls in practice?</p>
]]></content:encoded>
	</item>
	<item>
		<title>Comment on Some old performance tricks by Andy</title>
		<link>http://astronautz.wordpress.com/2009/01/08/63/#comment-7</link>
		<dc:creator>Andy</dc:creator>
		<pubDate>Wed, 18 Feb 2009 13:05:26 +0000</pubDate>
		<guid isPermaLink="false">http://astronautz.wordpress.com/?p=63#comment-7</guid>
		<description>This is not quite true... Yes it may take 1 cycle to issue floating point operations but there is a throughput of cycles to wait if the next instruction relies on the previous operation. For example:

fadds s0,s0,s1
fadds s0,s0,s2

The pipeline states that it will stall for 8 cycles less one for forwarding; so 7 cycles will be wasted. The trick is to put useful instructions between the above example.

This is just an example but I recommend reading the VFP manual from the arm site because there are even more rules to get the best from the pipeline.</description>
		<content:encoded><![CDATA[<p>This is not quite true&#8230; Yes it may take 1 cycle to issue floating point operations but there is a throughput of cycles to wait if the next instruction relies on the previous operation. For example:</p>
<p>fadds s0,s0,s1<br />
fadds s0,s0,s2</p>
<p>The pipeline states that it will stall for 8 cycles less one for forwarding; so 7 cycles will be wasted. The trick is to put useful instructions between the above example.</p>
<p>This is just an example but I recommend reading the VFP manual from the arm site because there are even more rules to get the best from the pipeline.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
