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.

Assembler syntax<br />

Instruction Details<br />

LDC{2}{L} , , Normal form with P = 1, W = 0<br />

LDC{2}{L} , , [PC,#+/-] Alternative form with P = 1, W = 0<br />

LDC{2}{L} , , [PC], Unindexed form with P = 0, U = 1, W = 0<br />

where:<br />

2 If specified, selects encoding T2 / A2. If omitted, selects encoding T1 / A1.<br />

L If specified, selects the D == 1 form of the encoding. If omitted, selects the D == 0 form.<br />

See St<strong>and</strong>ard assembler syntax fields on page A8-7. An <strong>ARM</strong> LDC2 instruction must be<br />

unconditional.<br />

The name of the coprocessor. The st<strong>and</strong>ard generic coprocessor names are p0, p1, …, p15.<br />

The coprocessor destination register.<br />

The label of the literal data item that is to be loaded into . The assembler calculates the<br />

required value of the offset from the Align(PC,4) value of this instruction to the label.<br />

Permitted values of the offset are multiples of 4 in the range -1020 to 1020.<br />

If the offset is zero or positive, imm32 is equal to the offset <strong>and</strong> add == TRUE.<br />

If the offset is negative, imm32 is equal to minus the offset <strong>and</strong> add == FALSE.<br />

The alternative syntax permits the addition or subtraction of the offset <strong>and</strong> the immediate offset to be<br />

specified separately, including permitting a subtraction of 0 that cannot be specified using the normal<br />

syntax. For more information, see Use of labels in UAL instruction syntax on page A4-5.<br />

The unindexed form is permitted for the <strong>ARM</strong> instruction set only. In it, is a coprocessor option,<br />

written as an integer 0-255 enclosed in { } <strong>and</strong> encoded in imm8.<br />

The pre-UAL syntax LDCL is equivalent to LDCL.<br />

Operation<br />

if ConditionPassed() then<br />

EncodingSpecificOperations();<br />

if !Coproc_Accepted(cp, ThisInstr()) then<br />

GenerateCoprocessorException();<br />

else<br />

NullCheckIfThumbEE(15);<br />

offset_addr = if add then (Align(PC,4) + imm32) else (Align(PC,4) - imm32);<br />

address = if index then offset_addr else Align(PC,4);<br />

repeat<br />

Coproc_SendLoadedWord(MemA[address,4], cp, ThisInstr()); address = address + 4;<br />

until Coproc_DoneLoading(cp, ThisInstr());<br />

Exceptions<br />

Undefined Instruction, Data Abort.<br />

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

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

Saved successfully!

Ooh no, something went wrong!