05.02.2013 Views

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

ARM Architecture Reference Manual ARMv7-A and ARMv7-R edition

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Application Level Programmers’ Model<br />

A2.7.8 Pseudocode details of floating-point operations<br />

This section contains pseudocode definitions of the floating-point operations used by the architecture.<br />

Generation of specific floating-point values<br />

The following pseudocode functions generate specific floating-point values. The sign argument of<br />

FPInfinity(), FPMaxNormal(), <strong>and</strong> FPZero() is '0' for the positive version <strong>and</strong> '1' for the negative version.<br />

// FPZero()<br />

// ========<br />

bits(N) FPZero(bit sign, integer N)<br />

assert N == 16 || N == 32 || N == 64;<br />

if N == 16 then<br />

return sign : ‘00000 0000000000’;<br />

elsif N == 32 then<br />

return sign : ‘00000000 00000000000000000000000’;<br />

else<br />

return sign : ‘00000000000 0000000000000000000000000000000000000000000000000000’;<br />

// FPTwo()<br />

// =======<br />

bits(N) FPTwo(integer N)<br />

assert N == 32 || N == 64;<br />

if N == 32 then<br />

return ‘0 10000000 00000000000000000000000’;<br />

else<br />

return ‘0 10000000000 0000000000000000000000000000000000000000000000000000’;<br />

// FPThree()<br />

// =========<br />

bits(N) FPThree(integer N)<br />

assert N == 32 || N == 64;<br />

if N == 32 then<br />

return ‘0 10000000 10000000000000000000000’;<br />

else<br />

return ‘0 10000000000 1000000000000000000000000000000000000000000000000000’;<br />

// FPMaxNormal()<br />

// =============<br />

bits(N) FPMaxNormal(bit sign, integer N)<br />

assert N == 16 || N == 32 || N == 64;<br />

if N == 16 then<br />

return sign : ‘11110 1111111111’;<br />

elsif N == 32 then<br />

return sign : ‘11111110 11111111111111111111111’;<br />

else<br />

return sign : ‘11111111110 1111111111111111111111111111111111111111111111111111’;<br />

A2-46 Copyright © 1996-1998, 2000, 2004-2008 <strong>ARM</strong> Limited. All rights reserved. <strong>ARM</strong> DDI 0406B

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!