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 />

(result, -) = LSL_C(x, shift);<br />

return result;<br />

// LSR_C()<br />

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

(bits(N), bit) LSR_C(bits(N) x, integer shift)<br />

assert shift > 0;<br />

extended_x = ZeroExtend(x, shift+N);<br />

result = extended_x;<br />

carry_out = extended_x;<br />

return (result, carry_out);<br />

// LSR()<br />

// =====<br />

bits(N) LSR(bits(N) x, integer shift)<br />

assert shift >= 0;<br />

if shift == 0 then<br />

result = x;<br />

else<br />

(result, -) = LSR_C(x, shift);<br />

return result;<br />

// ASR_C()<br />

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

(bits(N), bit) ASR_C(bits(N) x, integer shift)<br />

assert shift > 0;<br />

extended_x = SignExtend(x, shift+N);<br />

result = extended_x;<br />

carry_out = extended_x;<br />

return (result, carry_out);<br />

// ASR()<br />

// =====<br />

bits(N) ASR(bits(N) x, integer shift)<br />

assert shift >= 0;<br />

if shift == 0 then<br />

result = x;<br />

else<br />

(result, -) = ASR_C(x, shift);<br />

return result;<br />

// ROR_C()<br />

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

(bits(N), bit) ROR_C(bits(N) x, integer shift)<br />

assert shift != 0;<br />

m = shift MOD N;<br />

result = LSR(x,m) OR LSL(x,N-m);<br />

carry_out = result;<br />

return (result, carry_out);<br />

A2-6 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!