Lines Matching refs:opcode

212 unsigned int PerformLDF(const unsigned int opcode)
215 unsigned int nRc = 1, write_back = WRITE_BACK(opcode);
217 pBase = (unsigned int __user *) readRegister(getRn(opcode));
218 if (REG_PC == getRn(opcode)) {
224 if (BIT_UP_SET(opcode))
225 pFinal += getOffset(opcode);
227 pFinal -= getOffset(opcode);
229 if (PREINDEXED(opcode))
234 switch (opcode & MASK_TRANSFER_LENGTH) {
236 loadSingle(getFd(opcode), pAddress);
239 loadDouble(getFd(opcode), pAddress);
243 loadExtended(getFd(opcode), pAddress);
251 writeRegister(getRn(opcode), (unsigned long) pFinal);
255 unsigned int PerformSTF(const unsigned int opcode)
258 unsigned int nRc = 1, write_back = WRITE_BACK(opcode);
261 roundData.mode = SetRoundingMode(opcode);
262 roundData.precision = SetRoundingPrecision(opcode);
265 pBase = (unsigned int __user *) readRegister(getRn(opcode));
266 if (REG_PC == getRn(opcode)) {
272 if (BIT_UP_SET(opcode))
273 pFinal += getOffset(opcode);
275 pFinal -= getOffset(opcode);
277 if (PREINDEXED(opcode))
282 switch (opcode & MASK_TRANSFER_LENGTH) {
284 storeSingle(&roundData, getFd(opcode), pAddress);
287 storeDouble(&roundData, getFd(opcode), pAddress);
291 storeExtended(getFd(opcode), pAddress);
302 writeRegister(getRn(opcode), (unsigned long) pFinal);
306 unsigned int PerformLFM(const unsigned int opcode)
309 unsigned int i, Fd, write_back = WRITE_BACK(opcode);
311 pBase = (unsigned int __user *) readRegister(getRn(opcode));
312 if (REG_PC == getRn(opcode)) {
318 if (BIT_UP_SET(opcode))
319 pFinal += getOffset(opcode);
321 pFinal -= getOffset(opcode);
323 if (PREINDEXED(opcode))
328 Fd = getFd(opcode);
329 for (i = getRegisterCount(opcode); i > 0; i--) {
338 writeRegister(getRn(opcode), (unsigned long) pFinal);
342 unsigned int PerformSFM(const unsigned int opcode)
345 unsigned int i, Fd, write_back = WRITE_BACK(opcode);
347 pBase = (unsigned int __user *) readRegister(getRn(opcode));
348 if (REG_PC == getRn(opcode)) {
354 if (BIT_UP_SET(opcode))
355 pFinal += getOffset(opcode);
357 pFinal -= getOffset(opcode);
359 if (PREINDEXED(opcode))
364 Fd = getFd(opcode);
365 for (i = getRegisterCount(opcode); i > 0; i--) {
374 writeRegister(getRn(opcode), (unsigned long) pFinal);
378 unsigned int EmulateCPDT(const unsigned int opcode)
382 if (LDF_OP(opcode)) {
383 nRc = PerformLDF(opcode);
384 } else if (LFM_OP(opcode)) {
385 nRc = PerformLFM(opcode);
386 } else if (STF_OP(opcode)) {
387 nRc = PerformSTF(opcode);
388 } else if (SFM_OP(opcode)) {
389 nRc = PerformSFM(opcode);