author | pcpa <paulo.cesar.pereira.de.andrade@gmail.com> | 2023年03月02日 13:54:23 -0300 |
---|---|---|
committer | pcpa <paulo.cesar.pereira.de.andrade@gmail.com> | 2023年03月02日 13:54:23 -0300 |
commit | 6486a7c04c11902d10f7d610de6f9163891d8c5f (patch) | |
tree | 6de011bebb0889873c49f013a687de8c681d60da /lib/jit_arm-cpu.c | |
parent | 148cc67f862c5a2b46071021a250457972f9b67b (diff) | |
download | lightning-6486a7c04c11902d10f7d610de6f9163891d8c5f.tar.gz |
-rw-r--r-- | lib/jit_arm-cpu.c | 12 |
diff --git a/lib/jit_arm-cpu.c b/lib/jit_arm-cpu.c index 78c5814..6d4aa93 100644 --- a/lib/jit_arm-cpu.c +++ b/lib/jit_arm-cpu.c @@ -916,6 +916,8 @@ static void _ctor(jit_state_t*, jit_int32_t, jit_int32_t); static void _ctzr(jit_state_t*, jit_int32_t, jit_int32_t); # define rbitr(r0, r1) _rbitr(_jit, r0, r1) static void _rbitr(jit_state_t*, jit_int32_t, jit_int32_t); +# define popcntr(r0, r1) _popcntr(_jit, r0, r1) +static void _popcntr(jit_state_t*, jit_int32_t, jit_int32_t); # define addr(r0,r1,r2) _addr(_jit,r0,r1,r2) static void _addr(jit_state_t*,jit_int32_t,jit_int32_t,jit_int32_t); # define addi(r0,r1,i0) _addi(_jit,r0,r1,i0) @@ -1829,6 +1831,16 @@ _rbitr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) } static void +_popcntr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1) +{ + /* FIXME Untested. Apdated from aarch64 pattern. */ + if (jit_cpu.vfp >= 4) + vfp_popcntr(r0, r1); + else + fallback_popcnt(r0, r1); +} + +static void _addr(jit_state_t *_jit, jit_int32_t r0, jit_int32_t r1, jit_int32_t r2) { if (jit_thumb_p()) { |