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

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

A9.5.3 HBLP<br />

ThumbEE<br />

HBLP (H<strong>and</strong>ler Branch with Link <strong>and</strong> Parameter) saves a return address to the LR, <strong>and</strong> then branches to a<br />

specified h<strong>and</strong>ler. It passes a 5-bit parameter to the h<strong>and</strong>ler in R8.<br />

Encoding E1 ThumbEE<br />

HBLP #, #<br />

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0<br />

1 1 0 0 0 1 imm5 h<strong>and</strong>ler<br />

imm32 = ZeroExtend(imm5, 32); h<strong>and</strong>ler_offset = ZeroExtend(h<strong>and</strong>ler:’00000’, 32);<br />

Assembler syntax<br />

HBLP #, #<br />

where:<br />

See St<strong>and</strong>ard assembler syntax fields on page A8-7.<br />

The parameter to pass to the h<strong>and</strong>ler, in the range 0-31.<br />

The index number of the h<strong>and</strong>ler to be called, in the range 0-31.<br />

Operation<br />

if ConditionPassed() then<br />

EncodingSpecificOperations();<br />

R[8] = imm32;<br />

next_instr_addr = PC - 2;<br />

LR = next_instr_addr : ‘1’;<br />

BranchWritePC(TEEHBR + h<strong>and</strong>ler_offset);<br />

Exceptions<br />

None.<br />

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

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

Saved successfully!

Ooh no, something went wrong!