Article: AMD's Mobile Strategy
By: Wilco (Wilco.Dijkstra.delete@this.ntlworld.com), December 22, 2011 6:50 am
Room: Moderated Discussions
none (none@none.com) on 12/17/11 wrote:
---------------------------
>Wilco (Wilco.Dijkstra@ntlworld.com) on 12/17/11 wrote:
>---------------------------
>[...]
>>ARM and Thumb-2 are virtually identical - you can reassemble ARM code into Thumb-2.
>>Essentially Thumb-2 is a superset of ARM with a wider range of immediates, addressing modes and instructions.
>>
>>Thumb-2 has removed a few complex shifts of course, but that doesn't make it less
>>complex - they were removed as they were hardly ever used. Overall you need far
>>fewer Thumb-2 instructions than ARM, ie. Thumb-2 instructions do more work than
>>ARM instructions and are thus more complex.
>
>According to my experience this is completely false. In
>what context did you get such a result (compiler,
>benchmark)? Oh and please count IT as one instruction :-)
>
>Or perhaps you meant the dynamic size of executed
>instructions is less which I can believe?
No I'm talking about instruction counts. Did you take cbz, tbb, ldrd/strd or the improved addressing of Thumb-2 into account?
Conditional execution doesn't help as much on the latest micro architectures due to improved branch prediction. So it is used more sparingly nowadays (it is switched off in the compiler I'm currently working on). It does still help a lot, on the A9 a single conditional move speeds up a Spec benchmark by a few percent.
Wilco
---------------------------
>Wilco (Wilco.Dijkstra@ntlworld.com) on 12/17/11 wrote:
>---------------------------
>[...]
>>ARM and Thumb-2 are virtually identical - you can reassemble ARM code into Thumb-2.
>>Essentially Thumb-2 is a superset of ARM with a wider range of immediates, addressing modes and instructions.
>>
>>Thumb-2 has removed a few complex shifts of course, but that doesn't make it less
>>complex - they were removed as they were hardly ever used. Overall you need far
>>fewer Thumb-2 instructions than ARM, ie. Thumb-2 instructions do more work than
>>ARM instructions and are thus more complex.
>
>According to my experience this is completely false. In
>what context did you get such a result (compiler,
>benchmark)? Oh and please count IT as one instruction :-)
>
>Or perhaps you meant the dynamic size of executed
>instructions is less which I can believe?
No I'm talking about instruction counts. Did you take cbz, tbb, ldrd/strd or the improved addressing of Thumb-2 into account?
Conditional execution doesn't help as much on the latest micro architectures due to improved branch prediction. So it is used more sparingly nowadays (it is switched off in the compiler I'm currently working on). It does still help a lot, on the A9 a single conditional move speeds up a Spec benchmark by a few percent.
Wilco