MCPcopy Create free account
hub / github.com/Vector35/binaryninja-api / ADRP

Function ADRP

arch/arm64/disassembler/decode2.c:436–454  ·  view source on GitHub ↗

adrp.xml */

Source from the content-addressed store, hash-verified

434
435/* adrp.xml */
436int 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 */
457int AESD_advsimd(context *ctx, Instruction *instr)

Callers 1

decode_iclass_pcreladdrFunction · 0.85

Calls 2

decode_fields32Function · 0.85
SignExtendFunction · 0.85

Tested by

no test coverage detected