adrp.xml */
| 434 | |
| 435 | /* adrp.xml */ |
| 436 | int ADRP(context *ctx, Instruction *instr) |
| 437 | { |
| 438 | int rc = DECODE_STATUS_UNMATCHED; |
| 439 | /* class iclass_literal */ |
| 440 | /* op=1|immlo=xx|10000|immhi=xxxxxxxxxxxxxxxxxxx|Rd=xxxxx */ |
| 441 | if((INSWORD & 0x9F000000)==0x90000000) { |
| 442 | decode_fields32(ENC_ADRP_ONLY_PCRELADDR, ctx, instr); |
| 443 | ctx->d = UINT(ctx->Rd); |
| 444 | ctx->page = (ctx->op==1); |
| 445 | if(ctx->page) { |
| 446 | ctx->imm = SignExtend(((ctx->immhi<<14)|(ctx->immlo<<12)|0),33); |
| 447 | } |
| 448 | else { |
| 449 | ctx->imm = SignExtend(((ctx->immhi<<2)|ctx->immlo),21); |
| 450 | } |
| 451 | OK(ENC_ADRP_ONLY_PCRELADDR); |
| 452 | } |
| 453 | return rc; |
| 454 | } |
| 455 | |
| 456 | /* aesd_advsimd.xml */ |
| 457 | int AESD_advsimd(context *ctx, Instruction *instr) |
no test coverage detected