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.

Common VFP Subarchitecture Specification<br />

— If it is a not a VFP access permission fault, determine the iteration count<br />

from FPSCR.LEN, <strong>and</strong> set the return address to the instruction following<br />

the bounced instruction. Then continue processing from step 2.<br />

FPEXC.EX == 0, FPEXC.DEX == 1<br />

The bounced instruction was executed as a valid floating-point operation, <strong>and</strong> it bounced<br />

because of an exceptional condition.<br />

The exception-generating instruction is the instruction that bounced.<br />

The iteration count is determined from either FPSCR.LEN or FPEXC.VECITR,<br />

depending on the value of FPEXC.VV:<br />

if FPEXC.VV is set to 0, the iteration count is determined from FPSCR.LEN<br />

if FPEXC.VV is set to 1, the iteration count is determined from FPEXC.VECITR.<br />

Clear the FPEXC.DEX bit to 0, <strong>and</strong> set the return address to the instruction following the<br />

bounced instruction.<br />

Continue processing from step 2.<br />

FPEXC.EX == 1<br />

The VFP bounce resulted from an asynchronous exception.<br />

Collect information about the exceptional instruction, <strong>and</strong> any other instructions that are<br />

to be executed by support code. Clear the exceptional condition. For each instruction the<br />

data collected include the instruction encoding <strong>and</strong> the number of vector iterations.<br />

This involves:<br />

Read the FPINST Register to find the exception-generating instruction.<br />

Read the FPEXC.VECITR field to find the remaining iteration count for this<br />

instruction.<br />

Check FPEXC.FP2V. If it is set to 1 there is a bypassed instruction:<br />

— Read the FPINST2 Register to find the bypassed instruction<br />

— Clear the FPEXC.EX <strong>and</strong> FPEXC.FP2V bits to 0.<br />

— Read the FPSCR.LEN field to find the iteration count for the bypassed<br />

instruction.<br />

The FPSCR can be read-only when FPEXC.EX == 0.<br />

Otherwise there is no bypassed instruction:<br />

— Clear FPEXC.EX to 0.<br />

FPEXC.EX == 0 indicates there is no subarchitecture state to context switch.<br />

Set the return address to re-execute the trigger instruction.<br />

AppxB-12 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!