Download ARM VERSION 1.2 Datasheet
Transcript
ARMulator Reference 4.4.4 MRC This function is called when an MRC instruction is recognized for a coprocessor. If the requested coprocessor register does not exist or cannot be written to, the function must return ARMul_CP_CANT. Syntax unsigned MRC(void *handle, int type, ARMword instr, ARMword *data) where: handle is the handle from ARMulif_InstallCoprocessorV5. type is the type of the coprocessor access. This can be one of: ARMul_CP_FIRST indicates that this is the first time the coprocessor model has been called for this instruction. ARMul_CP_BUSY indicates that this is a subsequent call, after the first call was busy-waited. ARMul_CP_INTERRUPT warns the coprocessor that the ARM is about to service an interrupt, so the coprocessor must discard the current instruction. Usually, the instruction will be retried later, in which case the type will be reset to ARMul_CP_FIRST. ARMul_CP_DATA indicates that valid data is included in *data. instr is the current opcode. data is a pointer to the location of the data being transferred from the coprocessor to the core. Return The function must return one of: ARMul_CP_DONE, to indicate that the coprocessor operation is complete, and valid • data has been returned to *data. • ARMul_CP_BUSY, to indicate that the coprocessor is busy • ARMul_CP_CANT, to indicate that the instruction is not supported, or the specified register cannot be accessed. ARM DUI0058D Copyright © 1999-2001 ARM Limited. All rights reserved. 4-19