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

Function decode_iclass_addsub_ext

arch/arm64/disassembler/decode1.c:1240–1256  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1238}
1239
1240int decode_iclass_addsub_ext(context *ctx, Instruction *dec)
1241{
1242 uint32_t sf=INSWORD>>31, op=(INSWORD>>30)&1, S=(INSWORD>>29)&1, opt=(INSWORD>>22)&3, imm3=(INSWORD>>10)&7;
1243 if(!sf && !op && !S && !opt) return ADD_addsub_ext(ctx, dec); // -> ADD_32_addsub_ext
1244 if(!sf && !op && S && !opt) return ADDS_addsub_ext(ctx, dec); // -> ADDS_32S_addsub_ext
1245 if(!sf && op && !S && !opt) return SUB_addsub_ext(ctx, dec); // -> SUB_32_addsub_ext
1246 if(!sf && op && S && !opt) return SUBS_addsub_ext(ctx, dec); // -> SUBS_32S_addsub_ext
1247 if(sf && !op && !S && !opt) return ADD_addsub_ext(ctx, dec); // -> ADD_64_addsub_ext
1248 if(sf && !op && S && !opt) return ADDS_addsub_ext(ctx, dec); // -> ADDS_64S_addsub_ext
1249 if(sf && op && !S && !opt) return SUB_addsub_ext(ctx, dec); // -> SUB_64_addsub_ext
1250 if(sf && op && S && !opt) return SUBS_addsub_ext(ctx, dec); // -> SUBS_64S_addsub_ext
1251 if((imm3&5)==5) UNALLOCATED(ENC_UNALLOCATED_12_ADDSUB_EXT);
1252 if((imm3&6)==6) UNALLOCATED(ENC_UNALLOCATED_13_ADDSUB_EXT);
1253 if(opt&1) UNALLOCATED(ENC_UNALLOCATED_11_ADDSUB_EXT);
1254 if((opt&2)==2) UNALLOCATED(ENC_UNALLOCATED_10_ADDSUB_EXT);
1255 UNMATCHED;
1256}
1257
1258int decode_iclass_addsub_shift(context *ctx, Instruction *dec)
1259{

Callers 1

decode_specFunction · 0.85

Calls 4

ADD_addsub_extFunction · 0.85
ADDS_addsub_extFunction · 0.85
SUB_addsub_extFunction · 0.85
SUBS_addsub_extFunction · 0.85

Tested by

no test coverage detected