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

Function CMGT_advsimd_zero

arch/arm64/disassembler/decode2.c:2479–2535  ·  view source on GitHub ↗

cmgt_advsimd_zero.xml */

Source from the content-addressed store, hash-verified

2477
2478/* cmgt_advsimd_zero.xml */
2479int CMGT_advsimd_zero(context *ctx, Instruction *instr)
2480{
2481 int rc = DECODE_STATUS_UNMATCHED;
2482 /* class iclass_sisd */
2483 /* 01|U=0|11110|size=xx|10000|opcode[4:1]=0100|op=0|10|Rn=xxxxx|Rd=xxxxx */
2484 if((INSWORD & 0xFF3FFC00)==0x5E208800) {
2485 decode_fields32(ENC_CMGT_ASISDMISC_Z, ctx, instr);
2486 ctx->d = UINT(ctx->Rd);
2487 ctx->n = UINT(ctx->Rn);
2488 if(ctx->size!=3) {
2489 UNDEFINED;
2490 }
2491 ctx->esize = (8) << (UINT(ctx->size));
2492 ctx->datasize = ctx->esize;
2493 ctx->elements = 1;
2494 if(!((ctx->op<<1)|ctx->U)) {
2495 ctx->comparison = CompareOp_GT;
2496 }
2497 else if(((ctx->op<<1)|ctx->U)==1) {
2498 ctx->comparison = CompareOp_GE;
2499 }
2500 else if(((ctx->op<<1)|ctx->U)==2) {
2501 ctx->comparison = CompareOp_EQ;
2502 }
2503 else if(((ctx->op<<1)|ctx->U)==3) {
2504 ctx->comparison = CompareOp_LE;
2505 }
2506 OK(ENC_CMGT_ASISDMISC_Z);
2507 }
2508 /* class iclass_simd */
2509 /* 0|Q=x|U=0|01110|size=xx|10000|opcode[4:1]=0100|op=0|10|Rn=xxxxx|Rd=xxxxx */
2510 if((INSWORD & 0xBF3FFC00)==0xE208800) {
2511 decode_fields32(ENC_CMGT_ASIMDMISC_Z, ctx, instr);
2512 ctx->d = UINT(ctx->Rd);
2513 ctx->n = UINT(ctx->Rn);
2514 if(((ctx->size<<1)|ctx->Q)==6) {
2515 UNDEFINED;
2516 }
2517 ctx->esize = (8) << (UINT(ctx->size));
2518 ctx->datasize = (ctx->Q==1) ? 0x80 : 0x40;
2519 ctx->elements = ((ctx->esize) ? ((ctx->datasize) / (ctx->esize)) : 0);
2520 if(!((ctx->op<<1)|ctx->U)) {
2521 ctx->comparison = CompareOp_GT;
2522 }
2523 else if(((ctx->op<<1)|ctx->U)==1) {
2524 ctx->comparison = CompareOp_GE;
2525 }
2526 else if(((ctx->op<<1)|ctx->U)==2) {
2527 ctx->comparison = CompareOp_EQ;
2528 }
2529 else if(((ctx->op<<1)|ctx->U)==3) {
2530 ctx->comparison = CompareOp_LE;
2531 }
2532 OK(ENC_CMGT_ASIMDMISC_Z);
2533 }
2534 return rc;
2535}
2536

Callers 2

decode_iclass_asisdmiscFunction · 0.85
decode_iclass_asimdmiscFunction · 0.85

Calls 1

decode_fields32Function · 0.85

Tested by

no test coverage detected