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

Function ADR

arch/arm64/disassembler/decode2.c:415–433  ·  view source on GitHub ↗

adr.xml */

Source from the content-addressed store, hash-verified

413
414/* adr.xml */
415int ADR(context *ctx, Instruction *instr)
416{
417 int rc = DECODE_STATUS_UNMATCHED;
418 /* class iclass_literal */
419 /* op=0|immlo=xx|10000|immhi=xxxxxxxxxxxxxxxxxxx|Rd=xxxxx */
420 if((INSWORD & 0x9F000000)==0x10000000) {
421 decode_fields32(ENC_ADR_ONLY_PCRELADDR, ctx, instr);
422 ctx->d = UINT(ctx->Rd);
423 ctx->page = (ctx->op==1);
424 if(ctx->page) {
425 ctx->imm = SignExtend(((ctx->immhi<<14)|(ctx->immlo<<12)|0),33);
426 }
427 else {
428 ctx->imm = SignExtend(((ctx->immhi<<2)|ctx->immlo),21);
429 }
430 OK(ENC_ADR_ONLY_PCRELADDR);
431 }
432 return rc;
433}
434
435/* adrp.xml */
436int ADRP(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