swph.xml */
| 27416 | |
| 27417 | /* swph.xml */ |
| 27418 | int SWPH(context *ctx, Instruction *instr) |
| 27419 | { |
| 27420 | int rc = DECODE_STATUS_UNMATCHED; |
| 27421 | /* class iclass_general */ |
| 27422 | /* size=01|111|V=0|00|A=x|R=x|1|Rs=xxxxx|o3=1|opc=000|00|Rn=xxxxx|Rt=xxxxx */ |
| 27423 | if((INSWORD & 0xFF20FC00)==0x78208000) { |
| 27424 | decode_fields32(ENC_SWPAH_32_MEMOP, ctx, instr); |
| 27425 | if(!HaveAtomicExt()) { |
| 27426 | UNDEFINED; |
| 27427 | } |
| 27428 | ctx->t = UINT(ctx->Rt); |
| 27429 | ctx->n = UINT(ctx->Rn); |
| 27430 | ctx->s = UINT(ctx->Rs); |
| 27431 | ctx->datasize = (8) << (UINT(ctx->size)); |
| 27432 | ctx->regsize = (ctx->datasize==0x40) ? 0x40 : 0x20; |
| 27433 | ctx->ldacctype = (ctx->A==1 && ctx->Rt!=0x1f) ? AccType_ORDEREDATOMICRW : AccType_ATOMICRW; |
| 27434 | ctx->stacctype = (ctx->R==1) ? AccType_ORDEREDATOMICRW : AccType_ATOMICRW; |
| 27435 | ctx->tag_checked = ctx->n!=0x1f; |
| 27436 | if(ctx->A==1 && ctx->R==0) OK(ENC_SWPAH_32_MEMOP); |
| 27437 | if(ctx->A==1 && ctx->R==1) OK(ENC_SWPALH_32_MEMOP); |
| 27438 | if(ctx->A==0 && ctx->R==0) OK(ENC_SWPH_32_MEMOP); |
| 27439 | if(ctx->A==0 && ctx->R==1) OK(ENC_SWPLH_32_MEMOP); |
| 27440 | } |
| 27441 | return rc; |
| 27442 | } |
| 27443 | |
| 27444 | /* sxtb_sbfm.xml */ |
| 27445 | int SXTB_SBFM(context *ctx, Instruction *instr) |
no test coverage detected