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

Jazelle exception conditions<br />

These are conditions that cause Jazelle hardware acceleration to exit into a software h<strong>and</strong>ler,<br />

as described in Jazelle exception conditions on page A2-79.<br />

Debug events These are conditions that cause a debug system to take action. Most aspects of debug events<br />

are not visible to application-level code, <strong>and</strong> are described in Chapter C3 Debug Events.<br />

Aspects that are visible to application-level code include:<br />

The BKPT instruction causes a BKPT Instruction debug event to occur, see BKPT<br />

Instruction debug events on page C3-20.<br />

The DBG instruction provides a hint to the debug system.<br />

Checks These are provided in the ThumbEE extension. A check causes an unconditional branch to<br />

a specific h<strong>and</strong>ler entry point. The base address of the ThumbEE check h<strong>and</strong>lers is held in<br />

the TEEHBR, see ThumbEE H<strong>and</strong>ler Base Register (TEEHBR) on page A2-71.<br />

A2.11.1 The Yield instruction<br />

In a Symmetric Multi-Threading (SMT) design, a thread can use a Yield instruction to give a hint to the<br />

processor that it is running on. The Yield hint indicates that whatever the thread is currently doing is of low<br />

importance, <strong>and</strong> so could yield. For example, the thread might be sitting in a spin-lock. Similar behavior<br />

might be used to modify the arbitration priority of the snoop bus in a multiprocessor (MP) system. Defining<br />

such an instruction permits binary compatibility between SMT <strong>and</strong> SMP systems.<br />

<strong>ARM</strong>v7 defines a YIELD instruction as a specific NOP-hint instruction, see YIELD on page A8-812.<br />

The YIELD instruction has no effect in a single-threaded system, but developers of such systems can use the<br />

instruction to flag its intended use on migration to a multiprocessor or multithreading system. Operating<br />

systems can use YIELD in places where a yield hint is wanted, knowing that it will be treated as a NOP if there<br />

is no implementation benefit.<br />

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