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

Function MOVK

arch/arm64/disassembler/decode2.c:17532–17562  ·  view source on GitHub ↗

movk.xml */

Source from the content-addressed store, hash-verified

17530
17531/* movk.xml */
17532int MOVK(context *ctx, Instruction *instr)
17533{
17534 int rc = DECODE_STATUS_UNMATCHED;
17535 /* class iclass_imm18_packed */
17536 /* sf=x|opc=11|100101|hw=xx|imm16=xxxxxxxxxxxxxxxx|Rd=xxxxx */
17537 if((INSWORD & 0x7F800000)==0x72800000) {
17538 decode_fields32(ENC_MOVK_32_MOVEWIDE, ctx, instr);
17539 ctx->d = UINT(ctx->Rd);
17540 ctx->datasize = (ctx->sf==1) ? 0x40 : 0x20;
17541 ctx->imm = ctx->imm16;
17542 if(!ctx->opc) {
17543 ctx->opcode = MoveWideOp_N;
17544 }
17545 else if(ctx->opc==2) {
17546 ctx->opcode = MoveWideOp_Z;
17547 }
17548 else if(ctx->opc==3) {
17549 ctx->opcode = MoveWideOp_K;
17550 }
17551 else {
17552 UNDEFINED;
17553 }
17554 if(ctx->sf==0 && SLICE(ctx->hw,1,1)==1) {
17555 UNDEFINED;
17556 }
17557 ctx->pos = UINT((ctx->hw<<4));
17558 if(ctx->sf==0 && !(ctx->hw&2)) OK(ENC_MOVK_32_MOVEWIDE);
17559 if(ctx->sf==1) OK(ENC_MOVK_64_MOVEWIDE);
17560 }
17561 return rc;
17562}
17563
17564/* movn.xml */
17565int MOVN(context *ctx, Instruction *instr)

Callers 1

decode_iclass_movewideFunction · 0.85

Calls 1

decode_fields32Function · 0.85

Tested by

no test coverage detected