Vector35 / binaryninja-api

Public API, examples, documentation and issues for Binary Ninja
https://binary.ninja/
MIT License
937 stars 213 forks source link

Unimplemented ARMv7/thumb2 intrinsics #6075

Open marpie opened 2 weeks ago

marpie commented 2 weeks ago

Version and Platform (required)

Bug Description

The following ARM intrinsics are unimplemented in the latest dev release:

Multiply/divide instructions

smlabb
stc2
stcl
umaal

Sync Primitives

clrex
strex

SIMD&FP Instructions

vcmp.f64.F64
vcvt.f32.f64
vcvt.F32.U32
vcvt.f64.f32
vcvt.U32.F32
vld1.32
vld1.64
vld1.8
vldmia
vmrs
vqrshrun.S64
vqshl.U32
vqshlu.S32
vqshrn.U64
vrecpe.f32.F32
vrev16.64
vrhadd.U16
vrshr.U64
vrsra.U64
vshr.U32
vsli.32
vsli.64
vst1.32
vst1.64
vst1.8
vstmia
vtbl.8

Binary

The following functions use the unimplemented intrinsics ``` _Z15ltc_eax_encryptPK21ltc_cipher_descriptorNSt6__ndk112basic_stringIcNS2_11char_traitsIcEENS2_9allocatorIcEEEES8_PKhPhj: unimplemented {vst1.64 {d16, d17}, [r0]!} unimplemented {vst1.64 {d16, d17}, [r0]} unimplemented {vst1.64 {d16, d17}, [r1]!} unimplemented {vst1.64 {d16, d17}, [r1]} _Z8IntToStri: unimplemented {vst1.32 {d16, d17}, [r1]} _Z10hw_decryptNSt6__ndk112basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPKhPhm: unimplemented {vst1.8 {d16}, [r1]} Java_com_hobbywing_jni_Util_parse: unimplemented {vld1.8 {d16, d17}, [r1]} unimplemented {vld1.8 {d18, d19}, [r1]} unimplemented {vst1.8 {d16, d17}, [r1]!} unimplemented {vst1.8 {d18, d19}, [r1]} md5_init: unimplemented {vld1.64 {d16, d17}, [r0]} unimplemented {vst1.64 {d16, d17}, [r0]} md5_test: unimplemented {vld1.64 {d8, d9}, [r0]} unimplemented {vst1.64 {d8, d9}, [r1]} fast_mp_invmod: unimplemented {vld1.64 {d16, d17}, [r6]} unimplemented {vst1.64 {d16, d17}, [r0]} unimplemented {vld1.32 {d18, d19}, [r4]} unimplemented {vst1.32 {d16, d17}, [r4], r0} unimplemented {vst1.64 {d18, d19}, [r6]} mp_mod: unimplemented {vld1.64 {d16, d17}, [r8]} unimplemented {vld1.32 {d18, d19}, [r9]} unimplemented {vst1.64 {d18, d19}, [r8]} unimplemented {vst1.32 {d16, d17}, [r9]} mp_exch: unimplemented {vld1.32 {d16, d17}, [r0]} unimplemented {vld1.32 {d18, d19}, [r1]} unimplemented {vst1.32 {d18, d19}, [r0]} mp_clear: unimplemented {vst1.32 {d16, d17}, [r4]} mp_and: unimplemented {vld1.64 {d16, d17}, [r5]} unimplemented {vld1.32 {d18, d19}, [r8]} unimplemented {vst1.64 {d18, d19}, [r5]} unimplemented {vst1.32 {d16, d17}, [r8]} mp_div: unimplemented {vld1.64 {d16, d17}, [r8]} unimplemented {vst1.64 {d16, d17}, [r0]} unimplemented {vld1.32 {d18, d19}, [r4]} unimplemented {vst1.32 {d16, d17}, [r4], r0} unimplemented {vst1.64 {d18, d19}, [r8]} unimplemented {vld1.64 {d16, d17}, [r4]} unimplemented {vld1.32 {d18, d19}, [r10]} unimplemented {vst1.64 {d18, d19}, [r4]} unimplemented {vst1.32 {d16, d17}, [r10]} mp_div_2d: unimplemented {vld1.64 {d16, d17}, [r8]} unimplemented {vld1.32 {d18, d19}, [r10]} unimplemented {vst1.64 {d18, d19}, [r8]} unimplemented {vst1.32 {d16, d17}, [r10]} mp_div_3: unimplemented {smlabb r2, r1, r3, r2} unimplemented {vld1.32 {d18, d19}, [r4]} unimplemented {vst1.32 {d16, d17}, [r4]} mp_div_d: unimplemented {vld1.64 {d16, d17}, [r5]} unimplemented {vld1.32 {d18, d19}, [r4]} unimplemented {vst1.64 {d18, d19}, [r5]} unimplemented {vst1.32 {d16, d17}, [r4]} mp_dr_reduce: unimplemented {umaal r6, r3, r4, r11} s_mp_exptmod: unimplemented {vld1.64 {d16, d17}, [r11]} unimplemented {vld1.32 {d18, d19}, [r0]} unimplemented {vst1.64 {d18, d19}, [r11]} unimplemented {vst1.32 {d16, d17}, [r0]} mp_exptmod_fast: unimplemented {vld1.64 {d16, d17}, [r1]} unimplemented {vld1.32 {d18, d19}, [r0]} unimplemented {vst1.64 {d18, d19}, [r1]} unimplemented {vst1.32 {d16, d17}, [r0]} mp_montgomery_reduce: unimplemented {umaal r3, r5, r1, r6} mp_exteuclid: unimplemented {vld1.32 {d18, d19}, [r0]} unimplemented {vld1.64 {d16, d17}, [r1]} unimplemented {vst1.64 {d18, d19}, [r1]} unimplemented {vst1.32 {d16, d17}, [r0]} unimplemented {vld1.32 {d18, d19}, [r8]} unimplemented {vld1.64 {d16, d17}, [r0]} unimplemented {vst1.64 {d18, d19}, [r0]} unimplemented {vst1.32 {d16, d17}, [r8]} unimplemented {vld1.64 {d16, d17}, [r11]} unimplemented {vst1.64 {d18, d19}, [r11]} mp_gcd: unimplemented {vld1.64 {d16, d17}, [r10]} unimplemented {vld1.64 {d18, d19}, [r6]} unimplemented {vst1.64 {d18, d19}, [r10]} unimplemented {vst1.64 {d16, d17}, [r6]} mp_invmod_slow: unimplemented {vld1.64 {d16, d17}, [r6]} unimplemented {vst1.64 {d18, d19}, [r6]} unimplemented {vst1.32 {d16, d17}, [r4]} mp_sqrt: unimplemented {vld1.64 {d16, d17}, [r8]} unimplemented {vld1.32 {d18, d19}, [r10]} unimplemented {vst1.64 {d18, d19}, [r8]} unimplemented {vst1.32 {d16, d17}, [r10]} s_mp_mul_digs: unimplemented {umaal r1, r5, r10, r11} unimplemented {vld1.64 {d16, d17}, [r9]} unimplemented {vld1.32 {d18, d19}, [r0]} unimplemented {vst1.32 {d16, d17}, [r0]} unimplemented {vst1.64 {d18, d19}, [r9]} mp_n_root: unimplemented {vld1.64 {d16, d17}, [r5]} unimplemented {vst1.64 {d16, d17}, [r0]} unimplemented {vld1.32 {d18, d19}, [r2]} unimplemented {vst1.32 {d16, d17}, [r2], r0} unimplemented {vst1.64 {d18, d19}, [r5]} s_mp_mul_high_digs: unimplemented {umaal r11, r4, r10, r6} unimplemented {vld1.64 {d16, d17}, [r4]} unimplemented {vst1.64 {d18, d19}, [r4]} s_mp_sqr: unimplemented {vld1.64 {d16, d17}, [r5]} unimplemented {vld1.32 {d18, d19}, [r6]} unimplemented {vst1.64 {d18, d19}, [r5]} unimplemented {vst1.32 {d16, d17}, [r6]} der_decode_utctime: unimplemented {vst1.32 {d16, d17}, [r4]} sha256_init: unimplemented {vst1.32 {d16, d17}, [r5]!} unimplemented {vst1.64 {d16, d17}, [r5]} unimplemented {vld1.64 {d10, d11}, [r0]} unimplemented {vst1.64 {d10, d11}, [r1]} sha224_done: unimplemented {vld1.8 {d16, d17}, [r6], r1} unimplemented {vst1.8 {d16, d17}, [r4], r1} unimplemented {vld1.32 {d16, d17}, [r6]} unimplemented {vst1.8 {d16, d17}, [r4]} _ZNSt6__ndk113basic_ostreamIcNS_11char_traitsIcEEElsEf: unimplemented {vcvt.f64.f32 d0, s0} _ZNSt6__ndk18ios_base6xallocEv: unimplemented {strex r3, r2, [r1]} sub_74a50: unimplemented {vcmp.f64.F64 d0, d1} unimplemented {vmrs apsr_nzcv, fpscr} unimplemented {vcmp.f64.F64 d0, d1} unimplemented {vmrs apsr_nzcv, fpscr} unimplemented {vcvt.f32.f64 s0, d0} _ZNSt6__ndk114__shared_count12__add_sharedEv: unimplemented {strex r2, r1, [r0]} _ZNSt6__ndk119__shared_weak_count16__release_sharedEv: unimplemented {strex r3, r2, [r0]} _ZNSt6__ndk119__shared_weak_count14__release_weakEv: unimplemented {strex r4, r3, [r1]} _ZNSt6__ndk119__shared_weak_count4lockEv: unimplemented {clrex} unimplemented {strex r3, r4, [r1]} _ZNSt6__ndk14stofERKNS_12basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEEPj: unimplemented {vcvt.f32.f64 s16, d0} _ZNSt6__ndk19to_stringEf: unimplemented {vcvt.f64.f32 d8, s0} _ZNSt6__ndk16thread4joinEv: unimplemented {vtbl.8 d22, {d12}, d0} __cxa_decrement_exception_refcount: unimplemented {strex r3, r2, [r0]} __cxa_increment_exception_refcount: unimplemented {strex r2, r1, [r0]} __cxa_current_primary_exception: unimplemented {strex r3, r2, [r1]} __cxa_guard_release: unimplemented {vtbl.8 d21, {d28, d29}, d16} unimplemented {vqrshrun.S64 d20, q0, #4} __cxa_guard_abort: unimplemented {vqshrn.U64 d21, q14, #4} sub_7bc20: unimplemented {vrev16.64 q11, q2} unimplemented {vtbl.8 d20, {d12}, d3} _ZSt15set_new_handlerPFvvE: unimplemented {strex r3, r0, [r2]} _ZSt14set_unexpectedPFvvE: unimplemented {strex r3, r1, [r2]} sub_828bc: unimplemented {stc2 p15, c15, [r11, #0x3ec]!} __cxa_deleted_virtual: unimplemented {vsli.64 d27, d28, #0x3b} sub_85ff4: unimplemented {vrhadd.U16 d14, d14, d31} sub_867e0: unimplemented {vrhadd.U16 d14, d2, d31} sub_868a6: unimplemented {vsli.32 d27, d1, #0x1b} sub_868ba: unimplemented {vcvt.U32.F32 d27, d7, #5} sub_86ae2: unimplemented {vcvt.F32.U32 d25, d23, #5} unimplemented {vshr.U32 d28, d7, #5} sub_86aec: unimplemented {vrecpe.f32.F32 q13, q2} sub_86b5c: unimplemented {vcvt.U32.F32 d25, d31, #5} sub_86cd4: unimplemented {stcl p15, c15, [r1, #0x78]} sub_87028: unimplemented {vrecpe.f32.F32 q13, q8} sub_878c4: unimplemented {vqshlu.S32 d25, d8, #0x1b} unimplemented {vqshl.U32 d26, d0, #0x1b} unimplemented {vqshrn.U64 d25, q3, #5} sub_87900: unimplemented {vcvt.U32.F32 q13, q0, #5} unimplemented {vrsra.U64 d26, d18, #5} unimplemented {vsli.32 d25, d26, #0x1b} unimplemented {vrecpe.f32.F32 d26, d23} sub_87918: unimplemented {vshr.U32 d27, d3, #5} sub_86448: unimplemented {vld1.8 {}, [r2], r0} unimplemented {vld1.8 {}, [r0]} unimplemented {vld1.8 {}, [r2]} unimplemented {vst1.8 {}, [r0]} sub_879fc: unimplemented {vldmia r0, {d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15}} sub_87a0c: unimplemented {vldmia r0, {}} sub_87a2c: unimplemented {vstmia r0, {d0, d1, d2, d3, d4, d5, d6, d7, d8, d9, d10, d11, d12, d13, d14, d15}} sub_87a3c: unimplemented {vstmia r0, {}} ```
psifertex commented 4 days ago

swing difficulty researcher internally