This removes the dependency on Zba at essentially zero cost.
Showing the changes to libavcodec (2 of 5 files). Show all
Unified · Split
| @@ -33,15 +33,15 @@ av_cold void ff_bswapdsp_init_riscv(BswapDSPContext *c) · 32 unmodified lines | ||
| 33 | 33 | #if HAVE_RV |
| 34 | 34 | int flags = av_get_cpu_flags(); |
| 35 | 35 | |
| 36 | − if (flags & AV_CPU_FLAG_RVB_ADDR) { | |
| 37 | 36 | #if (__riscv_xlen >= 64) |
| 38 | − if (flags & AV_CPU_FLAG_RVB_BASIC) | |
| 39 | − c->bswap_buf = ff_bswap32_buf_rvb; | |
| 37 | + if (flags & AV_CPU_FLAG_RVB_BASIC) | |
| 38 | + c->bswap_buf = ff_bswap32_buf_rvb; | |
| 40 | 39 | #endif |
| 41 | 40 | #if HAVE_RVV |
| 41 | + if (flags & AV_CPU_FLAG_RVB_ADDR) { | |
| 42 | 42 | if (flags & AV_CPU_FLAG_RVV_I32) |
| 43 | 43 | c->bswap16_buf = ff_bswap16_buf_rvv; |
| 44 | −#endif | |
| 45 | 44 | } |
| 46 | 45 | #endif |
| 46 | +#endif | |
| 47 | 47 | } |
| @@ -23,8 +23,9 @@ · 22 unmodified lines | ||
| 23 | 23 | #include "libavutil/riscv/bswap_rvb.S" |
| 24 | 24 | |
| 25 | 25 | #if (__riscv_xlen >= 64) |
| 26 | −func ff_bswap32_buf_rvb, zba, zbb | |
| 26 | +func ff_bswap32_buf_rvb, zbb | |
| 27 | 27 | lpad 0 |
| 28 | + slli a2, a2, 2 | |
| 28 | 29 | bswap32_rvb a0, a1, a2 |
| 29 | 30 | endfunc |
| 30 | 31 | #endif |