History

lavc/riscv: add forward-edge CFI landing pads

Rémi Denis-Courmont committed 2 years ago

Commit f2c30fe1 parent a14d21a49 files · +194 −0Browse files

Unified · Split

49 files
  1. libavcodec/riscv/aacencdsp_rvv.S +2 −0
  2. libavcodec/riscv/aacpsdsp_rvv.S +5 −0
  3. libavcodec/riscv/ac3dsp_rvb.S +2 −0
  4. libavcodec/riscv/ac3dsp_rvv.S +4 −0
  5. libavcodec/riscv/ac3dsp_rvvb.S +1 −0
  6. libavcodec/riscv/alacdsp_rvv.S +3 −0
  7. libavcodec/riscv/audiodsp_rvf.S +1 −0
  8. libavcodec/riscv/audiodsp_rvv.S +2 −0
  9. libavcodec/riscv/blockdsp_rvv.S +4 −0
  10. libavcodec/riscv/bswapdsp_rvb.S +1 −0
  11. libavcodec/riscv/bswapdsp_rvv.S +1 −0
  12. libavcodec/riscv/exrdsp_rvv.S +1 −0
  13. libavcodec/riscv/flacdsp_rvv.S +20 −0
  14. libavcodec/riscv/fmtconvert_rvv.S +2 −0
  15. libavcodec/riscv/g722dsp_rvv.S +1 −0
  16. libavcodec/riscv/h263dsp_rvv.S +2 −0
  17. libavcodec/riscv/h264_mc_chroma.S +8 −0
  18. libavcodec/riscv/h264addpx_rvv.S +4 −0
  19. libavcodec/riscv/h264dsp_rvv.S +5 −0
  20. libavcodec/riscv/h264idct_rvv.S +16 −0
  21. libavcodec/riscv/huffyuvdsp_rvv.S +2 −0
  22. libavcodec/riscv/idctdsp_rvv.S +3 −0
  23. libavcodec/riscv/jpeg2000dsp_rvv.S +2 −0
  24. libavcodec/riscv/llauddsp_rvv.S +2 −0
  25. libavcodec/riscv/llviddsp_rvv.S +1 −0
  26. libavcodec/riscv/llvidencdsp_rvv.S +1 −0
  27. libavcodec/riscv/lpc_rvv.S +2 −0
  28. libavcodec/riscv/me_cmp_rvv.S +17 −0
  29. libavcodec/riscv/opusdsp_rvv.S +1 −0
  30. libavcodec/riscv/pixblockdsp_rvi.S +2 −0
  31. libavcodec/riscv/pixblockdsp_rvv.S +4 −0
  32. libavcodec/riscv/rv34dsp_rvv.S +2 −0
  33. libavcodec/riscv/rv40dsp_rvv.S +4 −0
  34. libavcodec/riscv/sbrdsp_rvv.S +9 −0
  35. libavcodec/riscv/startcode_rvb.S +1 −0
  36. libavcodec/riscv/startcode_rvv.S +1 −0
  37. libavcodec/riscv/svqenc_rvv.S +1 −0
  38. libavcodec/riscv/takdsp_rvv.S +4 −0
  39. libavcodec/riscv/utvideodsp_rvv.S +2 −0
  40. libavcodec/riscv/vc1dsp_rvi.S +2 −0
  41. libavcodec/riscv/vc1dsp_rvv.S +11 −0
  42. libavcodec/riscv/vorbisdsp_rvv.S +1 −0
  43. libavcodec/riscv/vp7dsp_rvv.S +3 −0
  44. libavcodec/riscv/vp8dsp_rvi.S +3 −0
  45. libavcodec/riscv/vp8dsp_rvv.S +12 −0
  46. libavcodec/riscv/vp9_intra_rvi.S +3 −0
  47. libavcodec/riscv/vp9_intra_rvv.S +7 −0
  48. libavcodec/riscv/vp9_mc_rvi.S +5 −0
  49. libavcodec/riscv/vp9_mc_rvv.S +1 −0
libavcodec/riscv/aacencdsp_rvv.S+2−0
@@ -22,6 +22,7 @@ · 21 unmodified lines
22#include "libavutil/riscv/asm.S"22#include "libavutil/riscv/asm.S"
23 23
24func ff_abs_pow34_rvv, zve32f, zba24func ff_abs_pow34_rvv, zve32f, zba
25 lpad 0
251:261:
26 vsetvli t0, a2, e32, m8, ta, ma27 vsetvli t0, a2, e32, m8, ta, ma
27 sub a2, a2, t028 sub a2, a2, t0
@@ -39,6 +40,7 @@ func ff_abs_pow34_rvv, zve32f, zba · 11 unmodified lines
39endfunc40endfunc
40 41
41func ff_aac_quant_bands_rvv, zve32f, zba42func ff_aac_quant_bands_rvv, zve32f, zba
43 lpad 0
42NOHWF fmv.w.x fa0, a644NOHWF fmv.w.x fa0, a6
43NOHWF fmv.w.x fa1, a745NOHWF fmv.w.x fa1, a7
44 fcvt.s.w ft0, a546 fcvt.s.w ft0, a5
libavcodec/riscv/aacpsdsp_rvv.S+5−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_ps_add_squares_rvv, zve64f, zba23func ff_ps_add_squares_rvv, zve64f, zba
24 lpad 0
24 li t1, 3225 li t1, 32
251:261:
26 vsetvli t0, a2, e32, m4, ta, ma27 vsetvli t0, a2, e32, m4, ta, ma
@@ -40,6 +41,7 @@ func ff_ps_add_squares_rvv, zve64f, zba · 13 unmodified lines
40endfunc41endfunc
41 42
42func ff_ps_mul_pair_single_rvv, zve32f, zba43func ff_ps_mul_pair_single_rvv, zve32f, zba
44 lpad 0
431:451:
44 vsetvli t0, a3, e32, m4, ta, ma46 vsetvli t0, a3, e32, m4, ta, ma
45 vlseg2e32.v v24, (a1)47 vlseg2e32.v v24, (a1)
@@ -57,6 +59,7 @@ func ff_ps_mul_pair_single_rvv, zve32f, zba · 11 unmodified lines
57endfunc59endfunc
58 60
59func ff_ps_hybrid_analysis_rvv, zve32f61func ff_ps_hybrid_analysis_rvv, zve32f
62 lpad 0
60 /* We need 26 FP registers, for 20 scratch ones. Spill fs0-fs5. */63 /* We need 26 FP registers, for 20 scratch ones. Spill fs0-fs5. */
61 addi sp, sp, -4864 addi sp, sp, -48
62 .irp n, 0, 1, 2, 3, 4, 565 .irp n, 0, 1, 2, 3, 4, 5
@@ -135,6 +138,7 @@ NOHWD flw fs\n, (4 * \n)(sp) · 72 unmodified lines
135endfunc138endfunc
136 139
137func ff_ps_hybrid_analysis_ileave_rvv, zve32x /* no zve32f here */, zba140func ff_ps_hybrid_analysis_ileave_rvv, zve32x /* no zve32f here */, zba
141 lpad 0
138 slli t0, a2, 5 + 1 + 2 // ctz(32 * 2 * 4)142 slli t0, a2, 5 + 1 + 2 // ctz(32 * 2 * 4)
139 sh2add a1, a2, a1143 sh2add a1, a2, a1
140 add a0, a0, t0144 add a0, a0, t0
@@ -208,6 +212,7 @@ func ff_ps_hybrid_synthesis_deint_rvv, zve64x, zba · 67 unmodified lines
208endfunc212endfunc
209 213
210func ff_ps_stereo_interpolate_rvv, zve32f, b214func ff_ps_stereo_interpolate_rvv, zve32f, b
215 lpad 0
211 vsetvli t0, zero, e32, m2, ta, ma216 vsetvli t0, zero, e32, m2, ta, ma
212 vid.v v24217 vid.v v24
213 flw ft0, (a2)218 flw ft0, (a2)
libavcodec/riscv/ac3dsp_rvb.S+2−0
@@ -22,6 +22,7 @@ · 21 unmodified lines
22#include "libavutil/riscv/asm.S"22#include "libavutil/riscv/asm.S"
23 23
24func ff_ac3_exponent_min_rvb, zbb24func ff_ac3_exponent_min_rvb, zbb
25 lpad 0
25 beqz a1, 3f26 beqz a1, 3f
261:271:
27 addi a2, a2, -128 addi a2, a2, -1
@@ -43,6 +44,7 @@ func ff_ac3_exponent_min_rvb, zbb · 15 unmodified lines
43endfunc44endfunc
44 45
45func ff_extract_exponents_rvb, zbb46func ff_extract_exponents_rvb, zbb
47 lpad 0
461:481:
47 lw t0, (a1)49 lw t0, (a1)
48 addi a0, a0, 150 addi a0, a0, 1
libavcodec/riscv/ac3dsp_rvv.S+4−0
@@ -22,6 +22,7 @@ · 21 unmodified lines
22#include "libavutil/riscv/asm.S"22#include "libavutil/riscv/asm.S"
23 23
24func ff_ac3_exponent_min_rvv, zve32x24func ff_ac3_exponent_min_rvv, zve32x
25 lpad 0
25 beqz a1, 3f26 beqz a1, 3f
261:271:
27 vsetvli t2, a2, e8, m8, ta, ma28 vsetvli t2, a2, e8, m8, ta, ma
@@ -44,6 +45,7 @@ func ff_ac3_exponent_min_rvv, zve32x · 16 unmodified lines
44endfunc45endfunc
45 46
46func ff_float_to_fixed24_rvv, zve32f, zba47func ff_float_to_fixed24_rvv, zve32f, zba
48 lpad 0
47 li t1, 1 << 2449 li t1, 1 << 24
48 fcvt.s.w f0, t150 fcvt.s.w f0, t1
491:511:
@@ -62,6 +64,7 @@ endfunc · 12 unmodified lines
62 64
63#if __riscv_xlen >= 6465#if __riscv_xlen >= 64
64func ff_sum_square_butterfly_int32_rvv, zve64x, zba66func ff_sum_square_butterfly_int32_rvv, zve64x, zba
67 lpad 0
65 vsetvli t0, zero, e64, m8, ta, ma68 vsetvli t0, zero, e64, m8, ta, ma
66 vmv.v.x v0, zero69 vmv.v.x v0, zero
67 vmv.v.x v8, zero70 vmv.v.x v8, zero
@@ -102,6 +105,7 @@ endfunc · 34 unmodified lines
102#endif105#endif
103 106
104func ff_sum_square_butterfly_float_rvv, zve32f, zba107func ff_sum_square_butterfly_float_rvv, zve32f, zba
108 lpad 0
105 vsetvli t0, zero, e32, m8, ta, ma109 vsetvli t0, zero, e32, m8, ta, ma
106 vmv.v.x v0, zero110 vmv.v.x v0, zero
107 vmv.v.x v8, zero111 vmv.v.x v8, zero
libavcodec/riscv/ac3dsp_rvvb.S+1−0
@@ -22,6 +22,7 @@ · 21 unmodified lines
22#include "libavutil/riscv/asm.S"22#include "libavutil/riscv/asm.S"
23 23
24func ff_extract_exponents_rvvb, zve32x, zvbb, zba24func ff_extract_exponents_rvvb, zve32x, zvbb, zba
25 lpad 0
251:261:
26 vsetvli t0, a2, e32, m8, ta, ma27 vsetvli t0, a2, e32, m8, ta, ma
27 vle32.v v8, (a1)28 vle32.v v8, (a1)
libavcodec/riscv/alacdsp_rvv.S+3−0
@@ -22,6 +22,7 @@ · 21 unmodified lines
22 22
23#if (__riscv_xlen == 64)23#if (__riscv_xlen == 64)
24func ff_alac_decorrelate_stereo_rvv, zve32x, zba24func ff_alac_decorrelate_stereo_rvv, zve32x, zba
25 lpad 0
25 ld a4, 8(a0)26 ld a4, 8(a0)
26 ld a0, 0(a0)27 ld a0, 0(a0)
271:281:
@@ -44,6 +45,7 @@ func ff_alac_decorrelate_stereo_rvv, zve32x, zba · 16 unmodified lines
44endfunc45endfunc
45 46
46func ff_alac_append_extra_bits_mono_rvv, zve32x, zba47func ff_alac_append_extra_bits_mono_rvv, zve32x, zba
48 lpad 0
47 ld a0, (a0)49 ld a0, (a0)
48 ld a1, (a1)50 ld a1, (a1)
491:511:
@@ -62,6 +64,7 @@ func ff_alac_append_extra_bits_mono_rvv, zve32x, zba · 12 unmodified lines
62endfunc64endfunc
63 65
64func ff_alac_append_extra_bits_stereo_rvv, zve32x, zba66func ff_alac_append_extra_bits_stereo_rvv, zve32x, zba
67 lpad 0
65 ld a6, 8(a0)68 ld a6, 8(a0)
66 ld a0, (a0)69 ld a0, (a0)
67 ld a7, 8(a1)70 ld a7, 8(a1)
libavcodec/riscv/audiodsp_rvf.S+1−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_vector_clipf_rvf, f23func ff_vector_clipf_rvf, f
24 lpad 0
24NOHWF fmv.w.x fa0, a325NOHWF fmv.w.x fa0, a3
25NOHWF fmv.w.x fa1, a426NOHWF fmv.w.x fa1, a4
261:271:
libavcodec/riscv/audiodsp_rvv.S+2−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_scalarproduct_int16_rvv, zve32x, zba23func ff_scalarproduct_int16_rvv, zve32x, zba
24 lpad 0
24 vsetvli t0, zero, e32, m8, ta, ma25 vsetvli t0, zero, e32, m8, ta, ma
25 vmv.v.x v8, zero26 vmv.v.x v8, zero
26 vmv.s.x v0, zero27 vmv.s.x v0, zero
@@ -56,6 +57,7 @@ func ff_vector_clip_int32_rvv, zve32x, zba · 29 unmodified lines
56endfunc57endfunc
57 58
58func ff_vector_clipf_rvv, zve32f, zba59func ff_vector_clipf_rvv, zve32f, zba
60 lpad 0
59NOHWF fmv.w.x fa0, a361NOHWF fmv.w.x fa0, a3
60NOHWF fmv.w.x fa1, a462NOHWF fmv.w.x fa1, a4
611:631:
libavcodec/riscv/blockdsp_rvv.S+4−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_clear_block_rvv, zve64x23func ff_clear_block_rvv, zve64x
24 lpad 0
24 vsetivli zero, 16, e64, m8, ta, ma25 vsetivli zero, 16, e64, m8, ta, ma
25 vmv.v.i v0, 026 vmv.v.i v0, 0
26 vse64.v v0, (a0)27 vse64.v v0, (a0)
@@ -29,6 +30,7 @@ func ff_clear_block_rvv, zve64x · 2 unmodified lines
29endfunc30endfunc
30 31
31func ff_clear_blocks_rvv, zve64x32func ff_clear_blocks_rvv, zve64x
33 lpad 0
32 vsetivli zero, 16, e64, m8, ta, ma34 vsetivli zero, 16, e64, m8, ta, ma
33 vmv.v.i v0, 035 vmv.v.i v0, 0
34 36
@@ -42,6 +44,7 @@ func ff_clear_blocks_rvv, zve64x · 7 unmodified lines
42endfunc44endfunc
43 45
44func ff_fill_block16_rvv, zve32x46func ff_fill_block16_rvv, zve32x
47 lpad 0
45 vsetivli t0, 16, e8, m1, ta, ma48 vsetivli t0, 16, e8, m1, ta, ma
46 vmv.v.x v8, a149 vmv.v.x v8, a1
471:501:
@@ -54,6 +57,7 @@ func ff_fill_block16_rvv, zve32x · 6 unmodified lines
54endfunc57endfunc
55 58
56func ff_fill_block8_rvv, zve64x59func ff_fill_block8_rvv, zve64x
60 lpad 0
57 vsetvli t0, zero, e8, m4, ta, ma61 vsetvli t0, zero, e8, m4, ta, ma
58 vmv.v.x v8, a162 vmv.v.x v8, a1
59 vsetvli t0, a3, e64, m4, ta, ma63 vsetvli t0, a3, e64, m4, ta, ma
libavcodec/riscv/bswapdsp_rvb.S+1−0
@@ -24,6 +24,7 @@ · 23 unmodified lines
24 24
25#if (__riscv_xlen >= 64)25#if (__riscv_xlen >= 64)
26func ff_bswap32_buf_rvb, zba, zbb26func ff_bswap32_buf_rvb, zba, zbb
27 lpad 0
27 bswap32_rvb a0, a1, a228 bswap32_rvb a0, a1, a2
28endfunc29endfunc
29#endif30#endif
libavcodec/riscv/bswapdsp_rvv.S+1−0
@@ -22,6 +22,7 @@ · 21 unmodified lines
22#include "libavutil/riscv/asm.S"22#include "libavutil/riscv/asm.S"
23 23
24func ff_bswap16_buf_rvv, zve32x, zba24func ff_bswap16_buf_rvv, zve32x, zba
25 lpad 0
251:261:
26 vsetvli t0, a2, e16, m8, ta, ma27 vsetvli t0, a2, e16, m8, ta, ma
27 vle16.v v8, (a1)28 vle16.v v8, (a1)
libavcodec/riscv/exrdsp_rvv.S+1−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_reorder_pixels_rvv, zve32x, zba23func ff_reorder_pixels_rvv, zve32x, zba
24 lpad 0
24 srai a2, a2, 125 srai a2, a2, 1
25 add t1, a1, a226 add t1, a1, a2
261:271:
libavcodec/riscv/flacdsp_rvv.S+20−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_flac_lpc16_rvv, zve32x, b23func ff_flac_lpc16_rvv, zve32x, b
24 lpad 0
24 vtype_vli t0, a2, t2, e32, ta, ma25 vtype_vli t0, a2, t2, e32, ta, ma
25 vsetvl zero, a2, t026 vsetvl zero, a2, t0
26 vle32.v v8, (a1)27 vle32.v v8, (a1)
@@ -46,6 +47,7 @@ endfunc · 19 unmodified lines
46 47
47#if (__riscv_xlen == 64)48#if (__riscv_xlen == 64)
48func ff_flac_lpc32_rvv, zve64x, zba49func ff_flac_lpc32_rvv, zve64x, zba
50 lpad 0
49 addi t2, a2, -1651 addi t2, a2, -16
50 ble t2, zero, ff_flac_lpc32_rvv_simple52 ble t2, zero, ff_flac_lpc32_rvv_simple
51 vsetivli zero, 1, e64, m1, ta, ma53 vsetivli zero, 1, e64, m1, ta, ma
@@ -77,6 +79,7 @@ func ff_flac_lpc32_rvv, zve64x, zba · 25 unmodified lines
77endfunc79endfunc
78 80
79func ff_flac_lpc32_rvv_simple, zve64x, b81func ff_flac_lpc32_rvv_simple, zve64x, b
82 lpad 0
80 vtype_vli t3, a2, t1, e64, ta, ma83 vtype_vli t3, a2, t1, e64, ta, ma
81 vntypei t2, t384 vntypei t2, t3
82 vsetvl zero, a2, t3 // e6485 vsetvl zero, a2, t3 // e64
@@ -105,6 +108,7 @@ func ff_flac_lpc32_rvv_simple, zve64x, b · 22 unmodified lines
105endfunc108endfunc
106 109
107func ff_flac_lpc33_rvv, zve64x, b110func ff_flac_lpc33_rvv, zve64x, b
111 lpad 0
108 vtype_vli t0, a3, t1, e64, ta, ma112 vtype_vli t0, a3, t1, e64, ta, ma
109 vsetvl zero, a3, t0113 vsetvl zero, a3, t0
110 vmv.s.x v0, zero114 vmv.s.x v0, zero
@@ -133,6 +137,7 @@ endfunc · 22 unmodified lines
133#endif137#endif
134 138
135func ff_flac_wasted32_rvv, zve32x, zba139func ff_flac_wasted32_rvv, zve32x, zba
140 lpad 0
1361:1411:
137 vsetvli t0, a2, e32, m8, ta, ma142 vsetvli t0, a2, e32, m8, ta, ma
138 vle32.v v8, (a0)143 vle32.v v8, (a0)
@@ -146,6 +151,7 @@ func ff_flac_wasted32_rvv, zve32x, zba · 7 unmodified lines
146endfunc151endfunc
147 152
148func ff_flac_wasted33_rvv, zve64x, zba153func ff_flac_wasted33_rvv, zve64x, zba
154 lpad 0
149 srli t0, a2, 5155 srli t0, a2, 5
150 li t1, 1156 li t1, 1
151 bnez t0, 2f157 bnez t0, 2f
@@ -178,6 +184,7 @@ endfunc · 26 unmodified lines
178 184
179#if (__riscv_xlen == 64)185#if (__riscv_xlen == 64)
180func ff_flac_decorrelate_indep2_16_rvv, zve32x, zba186func ff_flac_decorrelate_indep2_16_rvv, zve32x, zba
187 lpad 0
181 ld a0, (a0)188 ld a0, (a0)
182 ld a2, 8(a1)189 ld a2, 8(a1)
183 ld a1, (a1)190 ld a1, (a1)
@@ -201,6 +208,7 @@ func ff_flac_decorrelate_indep2_16_rvv, zve32x, zba · 17 unmodified lines
201endfunc208endfunc
202 209
203func ff_flac_decorrelate_indep4_16_rvv, zve32x, zba210func ff_flac_decorrelate_indep4_16_rvv, zve32x, zba
211 lpad 0
204 ld a0, (a0)212 ld a0, (a0)
205 ld a2, 8(a1)213 ld a2, 8(a1)
206 ld t1, 16(a1)214 ld t1, 16(a1)
@@ -234,6 +242,7 @@ func ff_flac_decorrelate_indep4_16_rvv, zve32x, zba · 27 unmodified lines
234endfunc242endfunc
235 243
236func ff_flac_decorrelate_indep6_16_rvv, zve32x, zba244func ff_flac_decorrelate_indep6_16_rvv, zve32x, zba
245 lpad 0
237 ld a0, (a0)246 ld a0, (a0)
238 ld a2, 8(a1)247 ld a2, 8(a1)
239 ld t1, 16(a1)248 ld t1, 16(a1)
@@ -279,6 +288,7 @@ func ff_flac_decorrelate_indep6_16_rvv, zve32x, zba · 39 unmodified lines
279endfunc288endfunc
280 289
281func ff_flac_decorrelate_indep8_16_rvv, zve32x, zba290func ff_flac_decorrelate_indep8_16_rvv, zve32x, zba
291 lpad 0
282 ld a0, (a0)292 ld a0, (a0)
283 ld a2, 8(a1)293 ld a2, 8(a1)
284 ld t1, 16(a1)294 ld t1, 16(a1)
@@ -333,6 +343,7 @@ func ff_flac_decorrelate_indep8_16_rvv, zve32x, zba · 48 unmodified lines
333endfunc343endfunc
334 344
335func ff_flac_decorrelate_ls_16_rvv, zve32x, zba345func ff_flac_decorrelate_ls_16_rvv, zve32x, zba
346 lpad 0
336 ld a0, (a0)347 ld a0, (a0)
337 ld a2, 8(a1)348 ld a2, 8(a1)
338 ld a1, (a1)349 ld a1, (a1)
@@ -357,6 +368,7 @@ func ff_flac_decorrelate_ls_16_rvv, zve32x, zba · 18 unmodified lines
357endfunc368endfunc
358 369
359func ff_flac_decorrelate_rs_16_rvv, zve32x, zba370func ff_flac_decorrelate_rs_16_rvv, zve32x, zba
371 lpad 0
360 ld a0, (a0)372 ld a0, (a0)
361 ld a2, 8(a1)373 ld a2, 8(a1)
362 ld a1, (a1)374 ld a1, (a1)
@@ -381,6 +393,7 @@ func ff_flac_decorrelate_rs_16_rvv, zve32x, zba · 18 unmodified lines
381endfunc393endfunc
382 394
383func ff_flac_decorrelate_ms_16_rvv, zve32x, zba395func ff_flac_decorrelate_ms_16_rvv, zve32x, zba
396 lpad 0
384 ld a0, (a0)397 ld a0, (a0)
385 ld a2, 8(a1)398 ld a2, 8(a1)
386 ld a1, (a1)399 ld a1, (a1)
@@ -407,6 +420,7 @@ func ff_flac_decorrelate_ms_16_rvv, zve32x, zba · 20 unmodified lines
407endfunc420endfunc
408 421
409func ff_flac_decorrelate_indep2_32_rvv, zve32x, zba422func ff_flac_decorrelate_indep2_32_rvv, zve32x, zba
423 lpad 0
410 ld a0, (a0)424 ld a0, (a0)
411 ld a2, 8(a1)425 ld a2, 8(a1)
412 ld a1, (a1)426 ld a1, (a1)
@@ -427,6 +441,7 @@ func ff_flac_decorrelate_indep2_32_rvv, zve32x, zba · 14 unmodified lines
427endfunc441endfunc
428 442
429func ff_flac_decorrelate_indep4_32_rvv, zve32x, zba443func ff_flac_decorrelate_indep4_32_rvv, zve32x, zba
444 lpad 0
430 ld a0, (a0)445 ld a0, (a0)
431 ld a2, 8(a1)446 ld a2, 8(a1)
432 ld t1, 16(a1)447 ld t1, 16(a1)
@@ -456,6 +471,7 @@ func ff_flac_decorrelate_indep4_32_rvv, zve32x, zba · 23 unmodified lines
456endfunc471endfunc
457 472
458func ff_flac_decorrelate_indep6_32_rvv, zve32x, zba473func ff_flac_decorrelate_indep6_32_rvv, zve32x, zba
474 lpad 0
459 ld a0, (a0)475 ld a0, (a0)
460 ld a2, 8(a1)476 ld a2, 8(a1)
461 ld t1, 16(a1)477 ld t1, 16(a1)
@@ -494,6 +510,7 @@ func ff_flac_decorrelate_indep6_32_rvv, zve32x, zba · 32 unmodified lines
494endfunc510endfunc
495 511
496func ff_flac_decorrelate_indep8_32_rvv, zve32x, zba512func ff_flac_decorrelate_indep8_32_rvv, zve32x, zba
513 lpad 0
497 ld a0, (a0)514 ld a0, (a0)
498 ld a2, 8(a1)515 ld a2, 8(a1)
499 ld t1, 16(a1)516 ld t1, 16(a1)
@@ -539,6 +556,7 @@ func ff_flac_decorrelate_indep8_32_rvv, zve32x, zba · 39 unmodified lines
539endfunc556endfunc
540 557
541func ff_flac_decorrelate_ls_32_rvv, zve32x, zba558func ff_flac_decorrelate_ls_32_rvv, zve32x, zba
559 lpad 0
542 ld a0, (a0)560 ld a0, (a0)
543 ld a2, 8(a1)561 ld a2, 8(a1)
544 ld a1, (a1)562 ld a1, (a1)
@@ -560,6 +578,7 @@ func ff_flac_decorrelate_ls_32_rvv, zve32x, zba · 15 unmodified lines
560endfunc578endfunc
561 579
562func ff_flac_decorrelate_rs_32_rvv, zve32x, zba580func ff_flac_decorrelate_rs_32_rvv, zve32x, zba
581 lpad 0
563 ld a0, (a0)582 ld a0, (a0)
564 ld a2, 8(a1)583 ld a2, 8(a1)
565 ld a1, (a1)584 ld a1, (a1)
@@ -581,6 +600,7 @@ func ff_flac_decorrelate_rs_32_rvv, zve32x, zba · 15 unmodified lines
581endfunc600endfunc
582 601
583func ff_flac_decorrelate_ms_32_rvv, zve32x, zba602func ff_flac_decorrelate_ms_32_rvv, zve32x, zba
603 lpad 0
584 ld a0, (a0)604 ld a0, (a0)
585 ld a2, 8(a1)605 ld a2, 8(a1)
586 ld a1, (a1)606 ld a1, (a1)
libavcodec/riscv/fmtconvert_rvv.S+2−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_int32_to_float_fmul_scalar_rvv, zve32f, zba23func ff_int32_to_float_fmul_scalar_rvv, zve32f, zba
24 lpad 0
24NOHWF fmv.w.x fa0, a225NOHWF fmv.w.x fa0, a2
25NOHWF mv a2, a326NOHWF mv a2, a3
261:271:
@@ -38,6 +39,7 @@ NOHWF mv a2, a3 · 11 unmodified lines
38endfunc39endfunc
39 40
40func ff_int32_to_float_fmul_array8_rvv, zve32f, zba41func ff_int32_to_float_fmul_array8_rvv, zve32f, zba
42 lpad 0
41 srai a4, a4, 343 srai a4, a4, 3
42 44
431: vsetvli t0, a4, e32, m1, ta, ma451: vsetvli t0, a4, e32, m1, ta, ma
libavcodec/riscv/g722dsp_rvv.S+1−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_g722_apply_qmf_rvv, zve32x23func ff_g722_apply_qmf_rvv, zve32x
24 lpad 0
24 lla t0, qmf_coeffs25 lla t0, qmf_coeffs
25 vsetivli zero, 12, e16, m2, ta, ma26 vsetivli zero, 12, e16, m2, ta, ma
26 vlseg2e16.v v28, (a0)27 vlseg2e16.v v28, (a0)
libavcodec/riscv/h263dsp_rvv.S+2−0
@@ -23,6 +23,7 @@ · 22 unmodified lines
23 .option push23 .option push
24 .option norelax24 .option norelax
25func ff_h263_h_loop_filter_rvv, zve32x25func ff_h263_h_loop_filter_rvv, zve32x
26 lpad 0
26 addi a0, a0, -227 addi a0, a0, -2
27 vsetivli zero, 8, e8, mf2, ta, ma28 vsetivli zero, 8, e8, mf2, ta, ma
28 vlsseg4e8.v v8, (a0), a129 vlsseg4e8.v v8, (a0), a1
@@ -83,6 +84,7 @@ endfunc · 54 unmodified lines
83 .option pop84 .option pop
84 85
85func ff_h263_v_loop_filter_rvv, zve32x86func ff_h263_v_loop_filter_rvv, zve32x
87 lpad 0
86 sub a4, a0, a188 sub a4, a0, a1
87 vsetivli zero, 8, e8, mf2, ta, ma89 vsetivli zero, 8, e8, mf2, ta, ma
88 vle8.v v10, (a0)90 vle8.v v10, (a0)
libavcodec/riscv/h264_mc_chroma.S+8−0
@@ -325,6 +325,7 @@ · 324 unmodified lines
325 ret325 ret
326.endm326.endm
327 327
328 .variant_cc h264_put_chroma_mc_rvv
328func h264_put_chroma_mc_rvv, zve32x, zba329func h264_put_chroma_mc_rvv, zve32x, zba
32911:33011:
330 li a7, 3331 li a7, 3
@@ -334,6 +335,7 @@ func h264_put_chroma_mc_rvv, zve32x, zba · 3 unmodified lines
334 do_chroma_mc put 0335 do_chroma_mc put 0
335endfunc336endfunc
336 337
338 .variant_cc h264_avg_chroma_mc_rvv
337func h264_avg_chroma_mc_rvv, zve32x, zba339func h264_avg_chroma_mc_rvv, zve32x, zba
33821:34021:
339 li a7, 3341 li a7, 3
@@ -344,31 +346,37 @@ func h264_avg_chroma_mc_rvv, zve32x, zba · 4 unmodified lines
344endfunc346endfunc
345 347
346func h264_put_chroma_mc8_rvv, zve32x348func h264_put_chroma_mc8_rvv, zve32x
349 lpad 0
347 li t6, 8350 li t6, 8
348 j 11b351 j 11b
349endfunc352endfunc
350 353
351func h264_put_chroma_mc4_rvv, zve32x354func h264_put_chroma_mc4_rvv, zve32x
355 lpad 0
352 li t6, 4356 li t6, 4
353 j 11b357 j 11b
354endfunc358endfunc
355 359
356func h264_put_chroma_mc2_rvv, zve32x360func h264_put_chroma_mc2_rvv, zve32x
361 lpad 0
357 li t6, 2362 li t6, 2
358 j 11b363 j 11b
359endfunc364endfunc
360 365
361func h264_avg_chroma_mc8_rvv, zve32x366func h264_avg_chroma_mc8_rvv, zve32x
367 lpad 0
362 li t6, 8368 li t6, 8
363 j 21b369 j 21b
364endfunc370endfunc
365 371
366func h264_avg_chroma_mc4_rvv, zve32x372func h264_avg_chroma_mc4_rvv, zve32x
373 lpad 0
367 li t6, 4374 li t6, 4
368 j 21b375 j 21b
369endfunc376endfunc
370 377
371func h264_avg_chroma_mc2_rvv, zve32x378func h264_avg_chroma_mc2_rvv, zve32x
379 lpad 0
372 li t6, 2380 li t6, 2
373 j 21b381 j 21b
374endfunc382endfunc
libavcodec/riscv/h264addpx_rvv.S+4−0
@@ -37,6 +37,7 @@ · 36 unmodified lines
37 .endm37 .endm
38 38
39func ff_h264_add_pixels4_8_rvv, zve32x39func ff_h264_add_pixels4_8_rvv, zve32x
40 lpad 0
40 vsetivli zero, 4, e8, mf4, ta, ma41 vsetivli zero, 4, e8, mf4, ta, ma
41 vlse32.v v8, (a0), a242 vlse32.v v8, (a0), a2
42 vsetivli zero, 4 * 4, e8, m1, ta, ma43 vsetivli zero, 4 * 4, e8, m1, ta, ma
@@ -54,6 +55,7 @@ func ff_h264_add_pixels4_8_rvv, zve32x · 11 unmodified lines
54endfunc55endfunc
55 56
56func ff_h264_add_pixels4_16_rvv, zve64x57func ff_h264_add_pixels4_16_rvv, zve64x
58 lpad 0
57 vsetivli zero, 4, e16, mf2, ta, ma59 vsetivli zero, 4, e16, mf2, ta, ma
58 vlse64.v v8, (a0), a260 vlse64.v v8, (a0), a2
59 vsetivli zero, 4 * 4, e16, m2, ta, ma61 vsetivli zero, 4 * 4, e16, m2, ta, ma
@@ -71,6 +73,7 @@ func ff_h264_add_pixels4_16_rvv, zve64x · 11 unmodified lines
71endfunc73endfunc
72 74
73func ff_h264_add_pixels8_8_rvv, zve64x75func ff_h264_add_pixels8_8_rvv, zve64x
76 lpad 0
74 li t0, 8 * 877 li t0, 8 * 8
75 vsetivli zero, 8, e8, mf2, ta, ma78 vsetivli zero, 8, e8, mf2, ta, ma
76 vlse64.v v8, (a0), a279 vlse64.v v8, (a0), a2
@@ -89,6 +92,7 @@ func ff_h264_add_pixels8_8_rvv, zve64x · 12 unmodified lines
89endfunc92endfunc
90 93
91func ff_h264_add_pixels8_16_rvv, zve32x94func ff_h264_add_pixels8_16_rvv, zve32x
95 lpad 0
92 li t0, 896 li t0, 8
93 vsetivli zero, 8, e16, m1, ta, ma97 vsetivli zero, 8, e16, m1, ta, ma
941:981:
libavcodec/riscv/h264dsp_rvv.S+5−0
@@ -164,6 +164,7 @@ endfunc · 163 unmodified lines
164 164
165.irp w, 16, 8, 4, 2165.irp w, 16, 8, 4, 2
166func ff_h264_weight_pixels\w\()_8_rvv, zve32x166func ff_h264_weight_pixels\w\()_8_rvv, zve32x
167 lpad 0
167 li a6, \w168 li a6, \w
168 .if \w == 16169 .if \w == 16
169 j ff_h264_weight_pixels_simple_8_rvv170 j ff_h264_weight_pixels_simple_8_rvv
@@ -173,6 +174,7 @@ func ff_h264_weight_pixels\w\()_8_rvv, zve32x · 3 unmodified lines
173endfunc174endfunc
174 175
175func ff_h264_biweight_pixels\w\()_8_rvv, zve32x176func ff_h264_biweight_pixels\w\()_8_rvv, zve32x
177 lpad 0
176 li t6, \w178 li t6, \w
177 .if \w == 16179 .if \w == 16
178 j ff_h264_biweight_pixels_simple_8_rvv180 j ff_h264_biweight_pixels_simple_8_rvv
@@ -272,6 +274,7 @@ func ff_h264_loop_filter_luma_8_rvv, zve32x · 93 unmodified lines
272endfunc274endfunc
273 275
274func ff_h264_v_loop_filter_luma_8_rvv, zve32x276func ff_h264_v_loop_filter_luma_8_rvv, zve32x
277 lpad 0
275 vsetivli zero, 4, e32, m1, ta, ma278 vsetivli zero, 4, e32, m1, ta, ma
276 vle8.v v4, (a4)279 vle8.v v4, (a4)
277 li t0, 0x01010101280 li t0, 0x01010101
@@ -299,6 +302,7 @@ func ff_h264_v_loop_filter_luma_8_rvv, zve32x · 21 unmodified lines
299endfunc302endfunc
300 303
301func ff_h264_h_loop_filter_luma_8_rvv, zve32x304func ff_h264_h_loop_filter_luma_8_rvv, zve32x
305 lpad 0
302 vsetivli zero, 4, e32, m1, ta, ma306 vsetivli zero, 4, e32, m1, ta, ma
303 vle8.v v4, (a4)307 vle8.v v4, (a4)
304 li t0, 0x01010101308 li t0, 0x01010101
@@ -313,6 +317,7 @@ func ff_h264_h_loop_filter_luma_8_rvv, zve32x · 8 unmodified lines
313endfunc317endfunc
314 318
315func ff_h264_h_loop_filter_luma_mbaff_8_rvv, zve32x319func ff_h264_h_loop_filter_luma_mbaff_8_rvv, zve32x
320 lpad 0
316 vsetivli zero, 4, e16, mf2, ta, ma321 vsetivli zero, 4, e16, mf2, ta, ma
317 vle8.v v4, (a4)322 vle8.v v4, (a4)
318 li t0, 0x0101323 li t0, 0x0101
libavcodec/riscv/h264idct_rvv.S+16−0
@@ -55,6 +55,7 @@ func ff_h264_idct4_rvv, zve32x · 54 unmodified lines
55endfunc55endfunc
56 56
57func ff_h264_idct_add_8_rvv, zve32x57func ff_h264_idct_add_8_rvv, zve32x
58 lpad 0
58 csrwi vxrm, 059 csrwi vxrm, 0
59.Lidct_add4_8_rvv:60.Lidct_add4_8_rvv:
60 vsetivli zero, 4, e16, mf2, ta, ma61 vsetivli zero, 4, e16, mf2, ta, ma
@@ -213,6 +214,7 @@ func ff_h264_idct8_rvv, zve32x · 152 unmodified lines
213endfunc214endfunc
214 215
215func ff_h264_idct8_add_8_rvv, zve32x216func ff_h264_idct8_add_8_rvv, zve32x
217 lpad 0
216 csrwi vxrm, 0218 csrwi vxrm, 0
217.Lidct8_add_8_rvv:219.Lidct8_add_8_rvv:
218 vsetivli zero, 8, e16, m1, ta, ma220 vsetivli zero, 8, e16, m1, ta, ma
@@ -405,11 +407,13 @@ endfunc · 186 unmodified lines
405 407
406.irp depth, 9, 10, 12, 14408.irp depth, 9, 10, 12, 14
407func ff_h264_idct_add_\depth\()_rvv, zve32x409func ff_h264_idct_add_\depth\()_rvv, zve32x
410 lpad 0
408 li a5, (1 << \depth) - 1411 li a5, (1 << \depth) - 1
409 j ff_h264_idct_add_16_rvv412 j ff_h264_idct_add_16_rvv
410endfunc413endfunc
411 414
412func ff_h264_idct8_add_\depth\()_rvv, zve32x415func ff_h264_idct8_add_\depth\()_rvv, zve32x
416 lpad 0
413 li a5, (1 << \depth) - 1417 li a5, (1 << \depth) - 1
414 j ff_h264_idct8_add_16_rvv418 j ff_h264_idct8_add_16_rvv
415endfunc419endfunc
@@ -417,6 +421,7 @@ endfunc · 1 unmodified line
417 421
418.macro idct_dc_add8 width422.macro idct_dc_add8 width
419func ff_h264_idct\width\()_dc_add_8_rvv, zve64x423func ff_h264_idct\width\()_dc_add_8_rvv, zve64x
424 lpad 0
420.if \width == 8425.if \width == 8
421 vsetivli zero, \width, e8, mf2, ta, ma426 vsetivli zero, \width, e8, mf2, ta, ma
422.else427.else
@@ -517,11 +522,13 @@ idct_dc_add 8 · 94 unmodified lines
517 522
518.irp depth,9,10,12,14523.irp depth,9,10,12,14
519func ff_h264_idct4_dc_add_\depth\()_rvv, zve64x524func ff_h264_idct4_dc_add_\depth\()_rvv, zve64x
525 lpad 0
520 li a5, (1 << \depth) - 1526 li a5, (1 << \depth) - 1
521 j ff_h264_idct4_dc_add_16_rvv527 j ff_h264_idct4_dc_add_16_rvv
522endfunc528endfunc
523 529
524func ff_h264_idct8_dc_add_\depth\()_rvv, zve64x530func ff_h264_idct8_dc_add_\depth\()_rvv, zve64x
531 lpad 0
525 li a5, (1 << \depth) - 1532 li a5, (1 << \depth) - 1
526 j ff_h264_idct8_dc_add_16_rvv533 j ff_h264_idct8_dc_add_16_rvv
527endfunc534endfunc
@@ -534,6 +541,9 @@ endconst · 6 unmodified lines
534 541
535.macro idct4_adds type, depth542.macro idct4_adds type, depth
536func ff_h264_idct_add\type\()_\depth\()_rvv, zve32x, b543func ff_h264_idct_add\type\()_\depth\()_rvv, zve32x, b
544.if \depth == 8
545 lpad 0
546.endif
537 csrwi vxrm, 0547 csrwi vxrm, 0
538 lla t0, ff_h264_scan8548 lla t0, ff_h264_scan8
539 li t1, 32 * (\depth / 8)549 li t1, 32 * (\depth / 8)
@@ -609,6 +619,9 @@ idct4_adds 16intra, \depth · 69 unmodified lines
609 619
610#if (__riscv_xlen == 64)620#if (__riscv_xlen == 64)
611func ff_h264_idct8_add4_\depth\()_rvv, zve32x, b621func ff_h264_idct8_add4_\depth\()_rvv, zve32x, b
622.if \depth == 8
623 lpad 0
624.endif
612 csrwi vxrm, 0625 csrwi vxrm, 0
613 addi sp, sp, -48626 addi sp, sp, -48
614 lla t0, ff_h264_scan8627 lla t0, ff_h264_scan8
@@ -686,17 +699,20 @@ endfunc · 71 unmodified lines
686 699
687.irp depth, 9, 10, 12, 14700.irp depth, 9, 10, 12, 14
688func ff_h264_idct_add16_\depth\()_rvv, zve32x701func ff_h264_idct_add16_\depth\()_rvv, zve32x
702 lpad 0
689 li a5, (1 << \depth) - 1703 li a5, (1 << \depth) - 1
690 j ff_h264_idct_add16_16_rvv704 j ff_h264_idct_add16_16_rvv
691endfunc705endfunc
692 706
693func ff_h264_idct_add16intra_\depth\()_rvv, zve32x707func ff_h264_idct_add16intra_\depth\()_rvv, zve32x
708 lpad 0
694 li a5, (1 << \depth) - 1709 li a5, (1 << \depth) - 1
695 j ff_h264_idct_add16intra_16_rvv710 j ff_h264_idct_add16intra_16_rvv
696endfunc711endfunc
697 712
698#if (__riscv_xlen == 64)713#if (__riscv_xlen == 64)
699func ff_h264_idct8_add4_\depth\()_rvv, zve32x714func ff_h264_idct8_add4_\depth\()_rvv, zve32x
715 lpad 0
700 li a5, (1 << \depth) - 1716 li a5, (1 << \depth) - 1
701 j ff_h264_idct8_add4_16_rvv717 j ff_h264_idct8_add4_16_rvv
702endfunc718endfunc
libavcodec/riscv/huffyuvdsp_rvv.S+2−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_add_int16_rvv, zve32x, zba23func ff_add_int16_rvv, zve32x, zba
24 lpad 0
241:251:
25 vsetvli t0, a3, e16, m8, ta, ma26 vsetvli t0, a3, e16, m8, ta, ma
26 vle16.v v16, (a0)27 vle16.v v16, (a0)
@@ -37,6 +38,7 @@ func ff_add_int16_rvv, zve32x, zba · 10 unmodified lines
37endfunc38endfunc
38 39
39func ff_add_hfyu_left_pred_bgr32_rvv, zve32x, b40func ff_add_hfyu_left_pred_bgr32_rvv, zve32x, b
41 lpad 0
40 vtype_ivli t1, 4, e8, ta, ma42 vtype_ivli t1, 4, e8, ta, ma
41 li t0, 443 li t0, 4
42 vsetvl zero, t0, t144 vsetvl zero, t0, t1
libavcodec/riscv/idctdsp_rvv.S+3−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_put_pixels_clamped_rvv, zve64x23func ff_put_pixels_clamped_rvv, zve64x
24 lpad 0
24 li t0, 8 * 825 li t0, 8 * 8
25 vsetvli zero, t0, e16, m8, ta, ma26 vsetvli zero, t0, e16, m8, ta, ma
26 vle16.v v24, (a0)27 vle16.v v24, (a0)
@@ -35,6 +36,7 @@ func ff_put_pixels_clamped_rvv, zve64x · 8 unmodified lines
35endfunc36endfunc
36 37
37func ff_put_signed_pixels_clamped_rvv, zve64x38func ff_put_signed_pixels_clamped_rvv, zve64x
39 lpad 0
38 li t0, 8 * 840 li t0, 8 * 8
39 vsetvli zero, t0, e8, m4, ta, ma41 vsetvli zero, t0, e8, m4, ta, ma
40 vle16.v v24, (a0)42 vle16.v v24, (a0)
@@ -47,6 +49,7 @@ func ff_put_signed_pixels_clamped_rvv, zve64x · 6 unmodified lines
47endfunc49endfunc
48 50
49func ff_add_pixels_clamped_rvv, zve64x51func ff_add_pixels_clamped_rvv, zve64x
52 lpad 0
50 vsetivli zero, 8, e8, mf2, ta, ma53 vsetivli zero, 8, e8, mf2, ta, ma
51 li t0, 8 * 854 li t0, 8 * 8
52 vlse64.v v16, (a1), a255 vlse64.v v16, (a1), a2
libavcodec/riscv/jpeg2000dsp_rvv.S+2−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_ict_float_rvv, zve32f, zba23func ff_ict_float_rvv, zve32f, zba
24 lpad 0
24 lla t0, ff_jpeg2000_f_ict_params25 lla t0, ff_jpeg2000_f_ict_params
25 flw ft0, 0(t0)26 flw ft0, 0(t0)
26 flw ft1, 4(t0)27 flw ft1, 4(t0)
@@ -49,6 +50,7 @@ func ff_ict_float_rvv, zve32f, zba · 22 unmodified lines
49endfunc50endfunc
50 51
51func ff_rct_int_rvv, zve32x, zba52func ff_rct_int_rvv, zve32x, zba
53 lpad 0
521:541:
53 vsetvli t0, a3, e32, m8, ta, ma55 vsetvli t0, a3, e32, m8, ta, ma
54 vle32.v v16, (a1)56 vle32.v v16, (a1)
libavcodec/riscv/llauddsp_rvv.S+2−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_scalarproduct_and_madd_int16_rvv, zve32x, zba23func ff_scalarproduct_and_madd_int16_rvv, zve32x, zba
24 lpad 0
24 vsetvli t0, zero, e32, m8, ta, ma25 vsetvli t0, zero, e32, m8, ta, ma
25 vmv.v.x v0, zero26 vmv.v.x v0, zero
261:271:
@@ -45,6 +46,7 @@ func ff_scalarproduct_and_madd_int16_rvv, zve32x, zba · 18 unmodified lines
45endfunc46endfunc
46 47
47func ff_scalarproduct_and_madd_int32_rvv, zve32x, zba48func ff_scalarproduct_and_madd_int32_rvv, zve32x, zba
49 lpad 0
48 vsetvli t0, zero, e32, m8, ta, ma50 vsetvli t0, zero, e32, m8, ta, ma
49 vmv.v.x v0, zero51 vmv.v.x v0, zero
501:521:
libavcodec/riscv/llviddsp_rvv.S+1−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_llvid_add_bytes_rvv, zve32x23func ff_llvid_add_bytes_rvv, zve32x
24 lpad 0
241:251:
25 vsetvli t0, a2, e8, m8, ta, ma26 vsetvli t0, a2, e8, m8, ta, ma
26 vle8.v v0, (a1)27 vle8.v v0, (a1)
libavcodec/riscv/llvidencdsp_rvv.S+1−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_llvidenc_diff_bytes_rvv, zve32x23func ff_llvidenc_diff_bytes_rvv, zve32x
24 lpad 0
241:251:
25 vsetvli t0, a3, e8, m8, ta, ma26 vsetvli t0, a3, e8, m8, ta, ma
26 vle8.v v0, (a1)27 vle8.v v0, (a1)
libavcodec/riscv/lpc_rvv.S+2−0
@@ -22,6 +22,7 @@ · 21 unmodified lines
22 22
23#if __riscv_xlen >= 6423#if __riscv_xlen >= 64
24func ff_lpc_apply_welch_window_rvv, zve64d, zba24func ff_lpc_apply_welch_window_rvv, zve64d, zba
25 lpad 0
25 vsetvli t0, zero, e64, m8, ta, ma26 vsetvli t0, zero, e64, m8, ta, ma
26 vid.v v027 vid.v v0
27 addi t2, a1, -128 addi t2, a1, -1
@@ -87,6 +88,7 @@ func ff_lpc_apply_welch_window_rvv, zve64d, zba · 59 unmodified lines
87endfunc88endfunc
88 89
89func ff_lpc_compute_autocorr_rvv, zve64d, b90func ff_lpc_compute_autocorr_rvv, zve64d, b
91 lpad 0
90 vtype_vli t1, a2, t2, e64, ta, ma, 192 vtype_vli t1, a2, t2, e64, ta, ma, 1
91 addi a2, a2, 193 addi a2, a2, 1
92 li t0, 194 li t0, 1
libavcodec/riscv/me_cmp_rvv.S+17−0
@@ -27,6 +27,7 @@ · 26 unmodified lines
27.endm27.endm
28 28
29func ff_pix_abs16_rvv, zve32x29func ff_pix_abs16_rvv, zve32x
30 lpad 0
30 vsetivli zero, 1, e32, m1, ta, ma31 vsetivli zero, 1, e32, m1, ta, ma
31 vmv.s.x v0, zero32 vmv.s.x v0, zero
321:331:
@@ -47,6 +48,7 @@ func ff_pix_abs16_rvv, zve32x · 14 unmodified lines
47endfunc48endfunc
48 49
49func ff_pix_abs8_rvv, zve32x50func ff_pix_abs8_rvv, zve32x
51 lpad 0
50 vsetivli zero, 1, e32, m1, ta, ma52 vsetivli zero, 1, e32, m1, ta, ma
51 vmv.s.x v0, zero53 vmv.s.x v0, zero
521:541:
@@ -67,6 +69,7 @@ func ff_pix_abs8_rvv, zve32x · 14 unmodified lines
67endfunc69endfunc
68 70
69func ff_pix_abs16_x2_rvv, zve32x71func ff_pix_abs16_x2_rvv, zve32x
72 lpad 0
70 csrwi vxrm, 073 csrwi vxrm, 0
71 vsetivli zero, 1, e32, m1, ta, ma74 vsetivli zero, 1, e32, m1, ta, ma
72 li t5, 175 li t5, 1
@@ -92,6 +95,7 @@ func ff_pix_abs16_x2_rvv, zve32x · 19 unmodified lines
92endfunc95endfunc
93 96
94func ff_pix_abs8_x2_rvv, zve32x97func ff_pix_abs8_x2_rvv, zve32x
98 lpad 0
95 csrwi vxrm, 099 csrwi vxrm, 0
96 vsetivli zero, 1, e32, m1, ta, ma100 vsetivli zero, 1, e32, m1, ta, ma
97 li t5, 1101 li t5, 1
@@ -117,6 +121,7 @@ func ff_pix_abs8_x2_rvv, zve32x · 19 unmodified lines
117endfunc121endfunc
118 122
119func ff_pix_abs16_y2_rvv, zve32x123func ff_pix_abs16_y2_rvv, zve32x
124 lpad 0
120 csrwi vxrm, 0125 csrwi vxrm, 0
121 vsetivli zero, 1, e32, m1, ta, ma126 vsetivli zero, 1, e32, m1, ta, ma
122 add t1, a2, a3127 add t1, a2, a3
@@ -142,6 +147,7 @@ func ff_pix_abs16_y2_rvv, zve32x · 19 unmodified lines
142endfunc147endfunc
143 148
144func ff_pix_abs8_y2_rvv, zve32x149func ff_pix_abs8_y2_rvv, zve32x
150 lpad 0
145 csrwi vxrm, 0151 csrwi vxrm, 0
146 vsetivli zero, 1, e32, m1, ta, ma152 vsetivli zero, 1, e32, m1, ta, ma
147 add t1, a2, a3153 add t1, a2, a3
@@ -167,6 +173,7 @@ func ff_pix_abs8_y2_rvv, zve32x · 19 unmodified lines
167endfunc173endfunc
168 174
169func ff_sse16_rvv, zve32x175func ff_sse16_rvv, zve32x
176 lpad 0
170 vsetivli t0, 16, e32, m4, ta, ma177 vsetivli t0, 16, e32, m4, ta, ma
171 vmv.v.x v24, zero178 vmv.v.x v24, zero
172 vmv.s.x v0, zero179 vmv.s.x v0, zero
@@ -189,6 +196,7 @@ func ff_sse16_rvv, zve32x · 16 unmodified lines
189endfunc196endfunc
190 197
191func ff_sse8_rvv, zve32x198func ff_sse8_rvv, zve32x
199 lpad 0
192 vsetivli t0, 8, e32, m2, ta, ma200 vsetivli t0, 8, e32, m2, ta, ma
193 vmv.v.x v24, zero201 vmv.v.x v24, zero
194 vmv.s.x v0, zero202 vmv.s.x v0, zero
@@ -211,6 +219,7 @@ func ff_sse8_rvv, zve32x · 16 unmodified lines
211endfunc219endfunc
212 220
213func ff_sse4_rvv, zve32x221func ff_sse4_rvv, zve32x
222 lpad 0
214 vsetivli t0, 4, e32, m1, ta, ma223 vsetivli t0, 4, e32, m1, ta, ma
215 vmv.v.x v24, zero224 vmv.v.x v24, zero
216 vmv.s.x v0, zero225 vmv.s.x v0, zero
@@ -239,6 +248,7 @@ endfunc · 22 unmodified lines
239.endm248.endm
240 249
241.macro vsad_vsse16 type250.macro vsad_vsse16 type
251 lpad 0
242 vsetivli t0, 16, e32, m4, ta, ma252 vsetivli t0, 16, e32, m4, ta, ma
243 addi a4, a4, -1253 addi a4, a4, -1
244 add t1, a1, a3254 add t1, a1, a3
@@ -277,6 +287,7 @@ endfunc · 32 unmodified lines
277.endm287.endm
278 288
279.macro vsad_vsse8 type289.macro vsad_vsse8 type
290 lpad 0
280 vsetivli t0, 8, e32, m2, ta, ma291 vsetivli t0, 8, e32, m2, ta, ma
281 addi a4, a4, -1292 addi a4, a4, -1
282 add t1, a1, a3293 add t1, a1, a3
@@ -315,6 +326,7 @@ endfunc · 32 unmodified lines
315.endm326.endm
316 327
317.macro vsad_vsse_intra16 type328.macro vsad_vsse_intra16 type
329 lpad 0
318 vsetivli t0, 16, e32, m4, ta, ma330 vsetivli t0, 16, e32, m4, ta, ma
319 addi a4, a4, -1331 addi a4, a4, -1
320 add t1, a1, a3332 add t1, a1, a3
@@ -346,6 +358,7 @@ endfunc · 25 unmodified lines
346.endm358.endm
347 359
348.macro vsad_vsse_intra8 type360.macro vsad_vsse_intra8 type
361 lpad 0
349 vsetivli t0, 8, e32, m2, ta, ma362 vsetivli t0, 8, e32, m2, ta, ma
350 addi a4, a4, -1363 addi a4, a4, -1
351 add t1, a1, a3364 add t1, a1, a3
@@ -409,6 +422,8 @@ func ff_vsad_intra8_rvv, zve32x · 57 unmodified lines
409endfunc422endfunc
410 423
411func ff_nsse16_rvv, zve32x424func ff_nsse16_rvv, zve32x
425 lpad 0
426
412 .macro squarediff16427 .macro squarediff16
413 vsetivli zero, 16, e8, m1, tu, ma428 vsetivli zero, 16, e8, m1, tu, ma
414 vle8.v v4, (a1)429 vle8.v v4, (a1)
@@ -468,6 +483,8 @@ func ff_nsse16_rvv, zve32x · 53 unmodified lines
468endfunc483endfunc
469 484
470func ff_nsse8_rvv, zve32x485func ff_nsse8_rvv, zve32x
486 lpad 0
487
471 .macro squarediff8488 .macro squarediff8
472 vsetivli zero, 8, e8, mf2, tu, ma489 vsetivli zero, 8, e8, mf2, tu, ma
473 vle8.v v4, (a1)490 vle8.v v4, (a1)
libavcodec/riscv/opusdsp_rvv.S+1−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_opus_postfilter_rvv, zve32f, b23func ff_opus_postfilter_rvv, zve32f, b
24 lpad 0
24 flw fa0, 0(a2) // g025 flw fa0, 0(a2) // g0
25 slli t1, a1, 226 slli t1, a1, 2
26 flw fa1, 4(a2) // g127 flw fa1, 4(a2) // g1
libavcodec/riscv/pixblockdsp_rvi.S+2−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_get_pixels_8_rvi23func ff_get_pixels_8_rvi
24 lpad 0
24.irp row, 0, 1, 2, 3, 4, 5, 6, 725.irp row, 0, 1, 2, 3, 4, 5, 6, 7
25 ld t0, (a1)26 ld t0, (a1)
26 add a1, a1, a227 add a1, a1, a2
@@ -47,6 +48,7 @@ func ff_get_pixels_8_rvi · 20 unmodified lines
47endfunc48endfunc
48 49
49func ff_get_pixels_16_rvi50func ff_get_pixels_16_rvi
51 lpad 0
50.irp row, 0, 1, 2, 3, 4, 5, 6, 752.irp row, 0, 1, 2, 3, 4, 5, 6, 7
51 ld t0, 0(a1)53 ld t0, 0(a1)
52 ld t1, 8(a1)54 ld t1, 8(a1)
libavcodec/riscv/pixblockdsp_rvv.S+4−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_get_pixels_8_rvv, zve64x23func ff_get_pixels_8_rvv, zve64x
24 lpad 0
24 vsetivli zero, 8, e8, mf2, ta, ma25 vsetivli zero, 8, e8, mf2, ta, ma
25 li t0, 8 * 826 li t0, 8 * 8
261:271:
@@ -32,6 +33,7 @@ func ff_get_pixels_8_rvv, zve64x · 5 unmodified lines
32endfunc33endfunc
33 34
34func ff_get_pixels_unaligned_8_rvv, zve64x35func ff_get_pixels_unaligned_8_rvv, zve64x
36 lpad 0
35 andi t1, a1, 737 andi t1, a1, 7
36 vsetivli zero, 8, e64, m4, ta, ma38 vsetivli zero, 8, e64, m4, ta, ma
37 li t0, 8 * 839 li t0, 8 * 8
@@ -52,6 +54,7 @@ func ff_get_pixels_unaligned_8_rvv, zve64x · 14 unmodified lines
52endfunc54endfunc
53 55
54func ff_diff_pixels_rvv, zve64x56func ff_diff_pixels_rvv, zve64x
57 lpad 0
55 vsetivli zero, 8, e8, mf2, ta, ma58 vsetivli zero, 8, e8, mf2, ta, ma
56 li t0, 8 * 859 li t0, 8 * 8
57 vlse64.v v16, (a1), a360 vlse64.v v16, (a1), a3
@@ -63,6 +66,7 @@ func ff_diff_pixels_rvv, zve64x · 5 unmodified lines
63endfunc66endfunc
64 67
65func ff_diff_pixels_unaligned_rvv, zve32x68func ff_diff_pixels_unaligned_rvv, zve32x
69 lpad 0
66 vsetivli zero, 8, e8, mf2, ta, ma70 vsetivli zero, 8, e8, mf2, ta, ma
67 vlsseg8e8.v v16, (a1), a371 vlsseg8e8.v v16, (a1), a3
68 vlsseg8e8.v v24, (a2), a372 vlsseg8e8.v v24, (a2), a3
libavcodec/riscv/rv34dsp_rvv.S+2−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_rv34_inv_transform_dc_rvv, zve32x23func ff_rv34_inv_transform_dc_rvv, zve32x
24 lpad 0
24 lh t1, 0(a0)25 lh t1, 0(a0)
25 li t0, 13 * 13 * 326 li t0, 13 * 13 * 3
26 mul t2, t0, t127 mul t2, t0, t1
@@ -33,6 +34,7 @@ func ff_rv34_inv_transform_dc_rvv, zve32x · 6 unmodified lines
33endfunc34endfunc
34 35
35func ff_rv34_idct_dc_add_rvv, zve32x36func ff_rv34_idct_dc_add_rvv, zve32x
37 lpad 0
36 vsetivli zero, 4, e8, mf4, ta, ma38 vsetivli zero, 4, e8, mf4, ta, ma
37 vlse32.v v0, (a0), a139 vlse32.v v0, (a0), a1
38 li t1, 16940 li t1, 169
libavcodec/riscv/rv40dsp_rvv.S+4−0
@@ -351,21 +351,25 @@ func ff_avg_rv40_chroma_mc_rvv, zve32x, zba · 350 unmodified lines
351endfunc351endfunc
352 352
353func ff_put_rv40_chroma_mc8_rvv, zve32x353func ff_put_rv40_chroma_mc8_rvv, zve32x
354 lpad 0
354 li t6, 8355 li t6, 8
355 j 11b356 j 11b
356endfunc357endfunc
357 358
358func ff_put_rv40_chroma_mc4_rvv, zve32x359func ff_put_rv40_chroma_mc4_rvv, zve32x
360 lpad 0
359 li t6, 4361 li t6, 4
360 j 11b362 j 11b
361endfunc363endfunc
362 364
363func ff_avg_rv40_chroma_mc8_rvv, zve32x365func ff_avg_rv40_chroma_mc8_rvv, zve32x
366 lpad 0
364 li t6, 8367 li t6, 8
365 j 21b368 j 21b
366endfunc369endfunc
367 370
368func ff_avg_rv40_chroma_mc4_rvv, zve32x371func ff_avg_rv40_chroma_mc4_rvv, zve32x
372 lpad 0
369 li t6, 4373 li t6, 4
370 j 21b374 j 21b
371endfunc375endfunc
libavcodec/riscv/sbrdsp_rvv.S+9−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_sbr_sum64x5_rvv, zve32f, zba23func ff_sbr_sum64x5_rvv, zve32f, zba
24 lpad 0
24 li a5, 6425 li a5, 64
25 addi a1, a0, 64 * 426 addi a1, a0, 64 * 4
26 addi a2, a0, 128 * 427 addi a2, a0, 128 * 4
@@ -50,6 +51,7 @@ func ff_sbr_sum64x5_rvv, zve32f, zba · 23 unmodified lines
50endfunc51endfunc
51 52
52func ff_sbr_sum_square_rvv, zve32f, zba53func ff_sbr_sum_square_rvv, zve32f, zba
54 lpad 0
53 vsetvli t0, zero, e32, m8, ta, ma55 vsetvli t0, zero, e32, m8, ta, ma
54 slli a1, a1, 156 slli a1, a1, 1
55 vmv.v.x v8, zero57 vmv.v.x v8, zero
@@ -69,6 +71,7 @@ NOHWF fmv.x.w a0, fa0 · 13 unmodified lines
69endfunc71endfunc
70 72
71func ff_sbr_autocorrelate_rvv, zve32f73func ff_sbr_autocorrelate_rvv, zve32f
74 lpad 0
72 vsetvli t0, zero, e32, m4, ta, ma75 vsetvli t0, zero, e32, m4, ta, ma
73 vmv.v.x v0, zero76 vmv.v.x v0, zero
74 flw fa0, (a0)77 flw fa0, (a0)
@@ -158,6 +161,7 @@ func ff_sbr_autocorrelate_rvv, zve32f · 83 unmodified lines
158endfunc161endfunc
159 162
160func ff_sbr_hf_gen_rvv, zve32f, zba163func ff_sbr_hf_gen_rvv, zve32f, zba
164 lpad 0
161NOHWF fmv.w.x fa0, a4165NOHWF fmv.w.x fa0, a4
162NOHWF mv a4, a5166NOHWF mv a4, a5
163NOHWF mv a5, a6167NOHWF mv a5, a6
@@ -208,6 +212,7 @@ NOHWF mv a5, a6 · 44 unmodified lines
208endfunc212endfunc
209 213
210func ff_sbr_hf_g_filt_rvv, zve32f, zba214func ff_sbr_hf_g_filt_rvv, zve32f, zba
215 lpad 0
211 li t1, 40 * 2 * 4216 li t1, 40 * 2 * 4
212 sh3add a1, a4, a1217 sh3add a1, a4, a1
2131:2181:
@@ -273,15 +278,18 @@ endfunc · 59 unmodified lines
273.endm278.endm
274 279
275func ff_sbr_hf_apply_noise_0_rvv, zve32f, b280func ff_sbr_hf_apply_noise_0_rvv, zve32f, b
281 lpad 0
276 hf_apply_noise 0282 hf_apply_noise 0
277endfunc283endfunc
278 284
279func ff_sbr_hf_apply_noise_3_rvv, zve32f, b285func ff_sbr_hf_apply_noise_3_rvv, zve32f, b
286 lpad 0
280 not a4, a4 // invert parity of kx287 not a4, a4 // invert parity of kx
281 // fall through288 // fall through
282endfunc289endfunc
283 290
284func ff_sbr_hf_apply_noise_1_rvv, zve32f, b291func ff_sbr_hf_apply_noise_1_rvv, zve32f, b
292 lpad 0
285 vsetvli t0, zero, e32, m4, ta, ma293 vsetvli t0, zero, e32, m4, ta, ma
286 vid.v v4294 vid.v v4
287 vxor.vx v4, v4, a4295 vxor.vx v4, v4, a4
@@ -290,5 +298,6 @@ func ff_sbr_hf_apply_noise_1_rvv, zve32f, b · 2 unmodified lines
290endfunc298endfunc
291 299
292func ff_sbr_hf_apply_noise_2_rvv, zve32f, b300func ff_sbr_hf_apply_noise_2_rvv, zve32f, b
301 lpad 0
293 hf_apply_noise 2302 hf_apply_noise 2
294endfunc303endfunc
libavcodec/riscv/startcode_rvb.S+1−0
@@ -37,6 +37,7 @@ · 36 unmodified lines
37 .endm37 .endm
38 38
39func ff_startcode_find_candidate_rvb, zbb39func ff_startcode_find_candidate_rvb, zbb
40 lpad 0
40 add a1, a0, a141 add a1, a0, a1
41 42
42 // Potentially unaligned head43 // Potentially unaligned head
libavcodec/riscv/startcode_rvv.S+1−0
@@ -27,6 +27,7 @@ · 26 unmodified lines
27#include "libavutil/riscv/asm.S"27#include "libavutil/riscv/asm.S"
28 28
29func ff_startcode_find_candidate_rvv, zve32x29func ff_startcode_find_candidate_rvv, zve32x
30 lpad 0
30 mv t0, a031 mv t0, a0
311:321:
32 vsetvli t1, a1, e8, m8, ta, ma33 vsetvli t1, a1, e8, m8, ta, ma
libavcodec/riscv/svqenc_rvv.S+1−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_ssd_int8_vs_int16_rvv, zve32x, zba23func ff_ssd_int8_vs_int16_rvv, zve32x, zba
24 lpad 0
24 vsetvli t0, zero, e32, m8, ta, ma25 vsetvli t0, zero, e32, m8, ta, ma
25 vmv.v.x v24, zero26 vmv.v.x v24, zero
261:271:
libavcodec/riscv/takdsp_rvv.S+4−0
@@ -22,6 +22,7 @@ · 21 unmodified lines
22#include "libavutil/riscv/asm.S"22#include "libavutil/riscv/asm.S"
23 23
24func ff_decorrelate_ls_rvv, zve32x, zba24func ff_decorrelate_ls_rvv, zve32x, zba
25 lpad 0
251:261:
26 vsetvli t0, a2, e32, m8, ta, ma27 vsetvli t0, a2, e32, m8, ta, ma
27 sub a2, a2, t028 sub a2, a2, t0
@@ -36,6 +37,7 @@ func ff_decorrelate_ls_rvv, zve32x, zba · 8 unmodified lines
36endfunc37endfunc
37 38
38func ff_decorrelate_sr_rvv, zve32x, zba39func ff_decorrelate_sr_rvv, zve32x, zba
40 lpad 0
391:411:
40 vsetvli t0, a2, e32, m8, ta, ma42 vsetvli t0, a2, e32, m8, ta, ma
41 vle32.v v0, (a0)43 vle32.v v0, (a0)
@@ -50,6 +52,7 @@ func ff_decorrelate_sr_rvv, zve32x, zba · 8 unmodified lines
50endfunc52endfunc
51 53
52func ff_decorrelate_sm_rvv, zve32x, zba54func ff_decorrelate_sm_rvv, zve32x, zba
55 lpad 0
531:561:
54 vsetvli t0, a2, e32, m8, ta, ma57 vsetvli t0, a2, e32, m8, ta, ma
55 vle32.v v8, (a1)58 vle32.v v8, (a1)
@@ -68,6 +71,7 @@ func ff_decorrelate_sm_rvv, zve32x, zba · 12 unmodified lines
68endfunc71endfunc
69 72
70func ff_decorrelate_sf_rvv, zve32x, zba73func ff_decorrelate_sf_rvv, zve32x, zba
74 lpad 0
71 csrwi vxrm, 075 csrwi vxrm, 0
721:761:
73 vsetvli t0, a2, e32, m8, ta, ma77 vsetvli t0, a2, e32, m8, ta, ma
libavcodec/riscv/utvideodsp_rvv.S+2−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_restore_rgb_planes_rvv, zve32x, zba23func ff_restore_rgb_planes_rvv, zve32x, zba
24 lpad 0
24 li t1, -0x8025 li t1, -0x80
25 sub a3, a3, a626 sub a3, a3, a6
26 sub a4, a4, a627 sub a4, a4, a6
@@ -53,6 +54,7 @@ func ff_restore_rgb_planes_rvv, zve32x, zba · 26 unmodified lines
53endfunc54endfunc
54 55
55func ff_restore_rgb_planes10_rvv, zve32x, zba56func ff_restore_rgb_planes10_rvv, zve32x, zba
57 lpad 0
56 li t1, -0x20058 li t1, -0x200
57 li t2, 0x3FF59 li t2, 0x3FF
58 sub a3, a3, a660 sub a3, a3, a6
libavcodec/riscv/vc1dsp_rvi.S+2−0
@@ -22,6 +22,7 @@ · 21 unmodified lines
22 22
23#if __riscv_xlen >= 6423#if __riscv_xlen >= 64
24func ff_put_pixels8x8_rvi24func ff_put_pixels8x8_rvi
25 lpad 0
25.rept 826.rept 8
26 ld t0, (a1)27 ld t0, (a1)
27 sd t0, (a0)28 sd t0, (a0)
@@ -33,6 +34,7 @@ func ff_put_pixels8x8_rvi · 5 unmodified lines
33endfunc34endfunc
34 35
35func ff_put_pixels16x16_rvi36func ff_put_pixels16x16_rvi
37 lpad 0
36.rept 1638.rept 16
37 ld t0, (a1)39 ld t0, (a1)
38 ld t1, 8(a1)40 ld t1, 8(a1)
libavcodec/riscv/vc1dsp_rvv.S+11−0
@@ -22,6 +22,7 @@ · 21 unmodified lines
22#include "libavutil/riscv/asm.S"22#include "libavutil/riscv/asm.S"
23 23
24func ff_vc1_inv_trans_8x8_dc_rvv, zve64x, zba24func ff_vc1_inv_trans_8x8_dc_rvv, zve64x, zba
25 lpad 0
25 lh t2, (a2)26 lh t2, (a2)
26 vsetivli zero, 8, e8, mf2, ta, ma27 vsetivli zero, 8, e8, mf2, ta, ma
27 vlse64.v v0, (a0), a128 vlse64.v v0, (a0), a1
@@ -44,6 +45,7 @@ func ff_vc1_inv_trans_8x8_dc_rvv, zve64x, zba · 16 unmodified lines
44endfunc45endfunc
45 46
46func ff_vc1_inv_trans_4x8_dc_rvv, zve32x, zba47func ff_vc1_inv_trans_4x8_dc_rvv, zve32x, zba
48 lpad 0
47 lh t2, (a2)49 lh t2, (a2)
48 vsetivli zero, 8, e8, mf2, ta, ma50 vsetivli zero, 8, e8, mf2, ta, ma
49 vlse32.v v0, (a0), a151 vlse32.v v0, (a0), a1
@@ -68,6 +70,7 @@ func ff_vc1_inv_trans_4x8_dc_rvv, zve32x, zba · 18 unmodified lines
68endfunc70endfunc
69 71
70func ff_vc1_inv_trans_8x4_dc_rvv, zve64x, zba72func ff_vc1_inv_trans_8x4_dc_rvv, zve64x, zba
73 lpad 0
71 lh t2, (a2)74 lh t2, (a2)
72 vsetivli zero, 4, e8, mf4, ta, ma75 vsetivli zero, 4, e8, mf4, ta, ma
73 vlse64.v v0, (a0), a176 vlse64.v v0, (a0), a1
@@ -91,6 +94,7 @@ func ff_vc1_inv_trans_8x4_dc_rvv, zve64x, zba · 17 unmodified lines
91endfunc94endfunc
92 95
93func ff_vc1_inv_trans_4x4_dc_rvv, zve32x96func ff_vc1_inv_trans_4x4_dc_rvv, zve32x
97 lpad 0
94 lh t2, (a2)98 lh t2, (a2)
95 vsetivli zero, 4, e8, mf4, ta, ma99 vsetivli zero, 4, e8, mf4, ta, ma
96 vlse32.v v0, (a0), a1100 vlse32.v v0, (a0), a1
@@ -203,6 +207,7 @@ func ff_vc1_inv_trans_4_rvv, zve32x · 106 unmodified lines
203endfunc207endfunc
204 208
205func ff_vc1_inv_trans_8x8_rvv, zve32x209func ff_vc1_inv_trans_8x8_rvv, zve32x
210 lpad 0
206 csrwi vxrm, 0211 csrwi vxrm, 0
207 vsetivli zero, 8, e16, m1, ta, ma212 vsetivli zero, 8, e16, m1, ta, ma
208 addi a1, a0, 1 * 8 * 2213 addi a1, a0, 1 * 8 * 2
@@ -240,6 +245,7 @@ func ff_vc1_inv_trans_8x8_rvv, zve32x · 31 unmodified lines
240endfunc245endfunc
241 246
242func ff_vc1_inv_trans_8x4_rvv, zve32x247func ff_vc1_inv_trans_8x4_rvv, zve32x
248 lpad 0
243 csrwi vxrm, 0249 csrwi vxrm, 0
244 vsetivli zero, 4, e16, mf2, ta, ma250 vsetivli zero, 4, e16, mf2, ta, ma
245 vlseg8e16.v v0, (a2)251 vlseg8e16.v v0, (a2)
@@ -285,6 +291,7 @@ func ff_vc1_inv_trans_8x4_rvv, zve32x · 39 unmodified lines
285endfunc291endfunc
286 292
287func ff_vc1_inv_trans_4x8_rvv, zve32x293func ff_vc1_inv_trans_4x8_rvv, zve32x
294 lpad 0
288 li a3, 8 * 2295 li a3, 8 * 2
289 csrwi vxrm, 0296 csrwi vxrm, 0
290 vsetivli zero, 8, e16, m1, ta, ma297 vsetivli zero, 8, e16, m1, ta, ma
@@ -359,6 +366,7 @@ func ff_vc1_inv_trans_4x8_rvv, zve32x · 68 unmodified lines
359endfunc366endfunc
360 367
361func ff_vc1_inv_trans_4x4_rvv, zve32x368func ff_vc1_inv_trans_4x4_rvv, zve32x
369 lpad 0
362 li a3, 8 * 2370 li a3, 8 * 2
363 csrwi vxrm, 0371 csrwi vxrm, 0
364 vsetivli zero, 4, e16, mf2, ta, ma372 vsetivli zero, 4, e16, mf2, ta, ma
@@ -422,12 +430,14 @@ endfunc · 57 unmodified lines
422.endm430.endm
423 431
424func ff_avg_pixels16x16_rvv, zve32x432func ff_avg_pixels16x16_rvv, zve32x
433 lpad 0
425 li t0, 16434 li t0, 16
426 vsetivli zero, 16, e8, m1, ta, ma435 vsetivli zero, 16, e8, m1, ta, ma
427 j 1f436 j 1f
428endfunc437endfunc
429 438
430func ff_avg_pixels8x8_rvv, zve32x439func ff_avg_pixels8x8_rvv, zve32x
440 lpad 0
431 li t0, 8441 li t0, 8
432 vsetivli zero, 8, e8, mf2, ta, ma442 vsetivli zero, 8, e8, mf2, ta, ma
4331:4431:
@@ -446,6 +456,7 @@ func ff_avg_pixels8x8_rvv, zve32x · 12 unmodified lines
446endfunc456endfunc
447 457
448func ff_vc1_unescape_buffer_rvv, zve32x458func ff_vc1_unescape_buffer_rvv, zve32x
459 lpad 0
449 vsetivli zero, 2, e8, m1, ta, ma460 vsetivli zero, 2, e8, m1, ta, ma
450 vmv.v.i v8, -1461 vmv.v.i v8, -1
451 li t4, 1462 li t4, 1
libavcodec/riscv/vorbisdsp_rvv.S+1−0
@@ -21,6 +21,7 @@ · 20 unmodified lines
21#include "libavutil/riscv/asm.S"21#include "libavutil/riscv/asm.S"
22 22
23func ff_vorbis_inverse_coupling_rvv, zve32f, zba23func ff_vorbis_inverse_coupling_rvv, zve32f, zba
24 lpad 0
24 fmv.w.x ft0, zero25 fmv.w.x ft0, zero
251:261:
26 vsetvli t0, a2, e32, m4, ta, ma27 vsetvli t0, a2, e32, m4, ta, ma
libavcodec/riscv/vp7dsp_rvv.S+3−0
@@ -22,6 +22,7 @@ · 21 unmodified lines
22 22
23#if __riscv_xlen >= 6423#if __riscv_xlen >= 64
24func ff_vp7_luma_dc_wht_rvv, zve32x, zba24func ff_vp7_luma_dc_wht_rvv, zve32x, zba
25 lpad 0
25 li a2, 4 * 16 * 226 li a2, 4 * 16 * 2
26 li a7, 16 * 227 li a7, 16 * 2
27 jal t0, 1f28 jal t0, 1f
@@ -99,6 +100,7 @@ func ff_vp7_luma_dc_wht_rvv, zve32x, zba · 71 unmodified lines
99endfunc100endfunc
100 101
101func ff_vp7_idct_add_rvv, zve32x102func ff_vp7_idct_add_rvv, zve32x
103 lpad 0
102 jal t0, 1b104 jal t0, 1b
103 csrwi vxrm, 2105 csrwi vxrm, 2
104 vsetvli zero, zero, e8, mf4, ta, ma106 vsetvli zero, zero, e8, mf4, ta, ma
@@ -130,6 +132,7 @@ endfunc · 25 unmodified lines
130 132
131.irp type, y, uv133.irp type, y, uv
132func ff_vp7_idct_dc_add4\type\()_rvv, zve32x134func ff_vp7_idct_dc_add4\type\()_rvv, zve32x
135 lpad 0
133 li t0, 32136 li t0, 32
134 vsetivli zero, 4, e16, mf2, ta, ma137 vsetivli zero, 4, e16, mf2, ta, ma
135 li t1, 23170138 li t1, 23170
libavcodec/riscv/vp8dsp_rvi.S+3−0
@@ -22,6 +22,7 @@ · 21 unmodified lines
22 22
23#if __riscv_xlen >= 6423#if __riscv_xlen >= 64
24func ff_put_vp8_pixels16_rvi24func ff_put_vp8_pixels16_rvi
25 lpad 0
251:261:
26 addi a4, a4, -127 addi a4, a4, -1
27 ld t0, (a2)28 ld t0, (a2)
@@ -36,6 +37,7 @@ func ff_put_vp8_pixels16_rvi · 8 unmodified lines
36endfunc37endfunc
37 38
38func ff_put_vp8_pixels8_rvi39func ff_put_vp8_pixels8_rvi
40 lpad 0
391:411:
40 addi a4, a4, -142 addi a4, a4, -1
41 ld t0, (a2)43 ld t0, (a2)
@@ -49,6 +51,7 @@ endfunc · 7 unmodified lines
49#endif51#endif
50 52
51func ff_put_vp8_pixels4_rvi53func ff_put_vp8_pixels4_rvi
54 lpad 0
521:551:
53 addi a4, a4, -156 addi a4, a4, -1
54 lw t0, (a2)57 lw t0, (a2)
libavcodec/riscv/vp8dsp_rvv.S+12−0
@@ -45,6 +45,7 @@ · 44 unmodified lines
45 45
46#if __riscv_xlen >= 6446#if __riscv_xlen >= 64
47func ff_vp8_luma_dc_wht_rvv, zve64x47func ff_vp8_luma_dc_wht_rvv, zve64x
48 lpad 0
48 vsetivli zero, 1, e64, m1, ta, ma49 vsetivli zero, 1, e64, m1, ta, ma
49 vlseg4e64.v v4, (a1)50 vlseg4e64.v v4, (a1)
50 vsetivli zero, 4, e16, mf2, ta, ma51 vsetivli zero, 4, e16, mf2, ta, ma
@@ -99,6 +100,7 @@ endfunc · 48 unmodified lines
99#endif100#endif
100 101
101func ff_vp8_idct_add_rvv, zve32x102func ff_vp8_idct_add_rvv, zve32x
103 lpad 0
102 csrwi vxrm, 0104 csrwi vxrm, 0
103 vsetivli zero, 4, e16, mf2, ta, ma105 vsetivli zero, 4, e16, mf2, ta, ma
104 addi a3, a1, 1 * 4 * 2106 addi a3, a1, 1 * 4 * 2
@@ -158,6 +160,7 @@ func ff_vp8_idct_add_rvv, zve32x · 53 unmodified lines
158endfunc160endfunc
159 161
160func ff_vp8_idct_dc_add_rvv, zve32x162func ff_vp8_idct_dc_add_rvv, zve32x
163 lpad 0
161 lh a3, (a1)164 lh a3, (a1)
162 addi a3, a3, 4165 addi a3, a3, 4
163 srai a3, a3, 3166 srai a3, a3, 3
@@ -182,6 +185,7 @@ func ff_vp78_idct_dc_add_rvv, zve32x · 18 unmodified lines
182endfunc185endfunc
183 186
184func ff_vp8_idct_dc_add4y_rvv, zve32x187func ff_vp8_idct_dc_add4y_rvv, zve32x
188 lpad 0
185 li t0, 32189 li t0, 32
186 vsetivli zero, 4, e16, mf2, ta, ma190 vsetivli zero, 4, e16, mf2, ta, ma
187 li t1, 4 - (128 << 3)191 li t1, 4 - (128 << 3)
@@ -217,6 +221,7 @@ func ff_vp78_idct_dc_add4y_rvv, zve32x · 29 unmodified lines
217endfunc221endfunc
218 222
219func ff_vp8_idct_dc_add4uv_rvv, zve32x223func ff_vp8_idct_dc_add4uv_rvv, zve32x
224 lpad 0
220 li t0, 32225 li t0, 32
221 vsetivli zero, 4, e16, mf2, ta, ma226 vsetivli zero, 4, e16, mf2, ta, ma
222 li t1, 4 - (128 << 3)227 li t1, 4 - (128 << 3)
@@ -265,6 +270,7 @@ endfunc · 42 unmodified lines
265 270
266.macro put_vp8_bilin_h_v type mn271.macro put_vp8_bilin_h_v type mn
267func ff_put_vp8_bilin4_\type\()_rvv, zve32x272func ff_put_vp8_bilin4_\type\()_rvv, zve32x
273 lpad 0
268 vsetvlstatic8 4274 vsetvlstatic8 4
269.Lbilin_\type:275.Lbilin_\type:
270 li t1, 8276 li t1, 8
@@ -310,6 +316,7 @@ put_vp8_bilin_h_v h a5 · 39 unmodified lines
310put_vp8_bilin_h_v v a6316put_vp8_bilin_h_v v a6
311 317
312func ff_put_vp8_bilin4_hv_rvv, zve32x318func ff_put_vp8_bilin4_hv_rvv, zve32x
319 lpad 0
313 vsetvlstatic8 4320 vsetvlstatic8 4
314.Lbilin_hv:321.Lbilin_hv:
315 li t3, 8322 li t3, 8
@@ -335,16 +342,19 @@ endfunc · 19 unmodified lines
335 342
336.irp len,16,8343.irp len,16,8
337func ff_put_vp8_bilin\len\()_h_rvv, zve32x344func ff_put_vp8_bilin\len\()_h_rvv, zve32x
345 lpad 0
338 vsetvlstatic8 \len346 vsetvlstatic8 \len
339 j .Lbilin_h347 j .Lbilin_h
340endfunc348endfunc
341 349
342func ff_put_vp8_bilin\len\()_v_rvv, zve32x350func ff_put_vp8_bilin\len\()_v_rvv, zve32x
351 lpad 0
343 vsetvlstatic8 \len352 vsetvlstatic8 \len
344 j .Lbilin_v353 j .Lbilin_v
345endfunc354endfunc
346 355
347func ff_put_vp8_bilin\len\()_hv_rvv, zve32x356func ff_put_vp8_bilin\len\()_hv_rvv, zve32x
357 lpad 0
348 vsetvlstatic8 \len358 vsetvlstatic8 \len
349 j .Lbilin_hv359 j .Lbilin_hv
350endfunc360endfunc
@@ -441,6 +451,7 @@ endconst · 90 unmodified lines
441 451
442.macro epel len size type452.macro epel len size type
443func ff_put_vp8_epel\len\()_\type\()\size\()_rvv, zve32x, zba453func ff_put_vp8_epel\len\()_\type\()\size\()_rvv, zve32x, zba
454 lpad 0
444 epel_filter \size \type t455 epel_filter \size \type t
445 vsetvlstatic8 \len456 vsetvlstatic8 \len
4461:4571:
@@ -456,6 +467,7 @@ endfunc · 9 unmodified lines
456 467
457.macro epel_hv len hsize vsize468.macro epel_hv len hsize vsize
458func ff_put_vp8_epel\len\()_h\hsize\()v\vsize\()_rvv, zve32x, zba469func ff_put_vp8_epel\len\()_h\hsize\()v\vsize\()_rvv, zve32x, zba
470 lpad 0
459#if __riscv_xlen == 64471#if __riscv_xlen == 64
460 addi sp, sp, -48472 addi sp, sp, -48
461 .irp n,0,1,2,3,4,5473 .irp n,0,1,2,3,4,5
libavcodec/riscv/vp9_intra_rvi.S+3−0
@@ -22,6 +22,7 @@ · 21 unmodified lines
22 22
23#if __riscv_xlen >= 6423#if __riscv_xlen >= 64
24func ff_v_32x32_rvi, zba24func ff_v_32x32_rvi, zba
25 lpad 0
25 ld t0, (a3)26 ld t0, (a3)
26 ld t1, 8(a3)27 ld t1, 8(a3)
27 ld t2, 16(a3)28 ld t2, 16(a3)
@@ -43,6 +44,7 @@ func ff_v_32x32_rvi, zba · 15 unmodified lines
43endfunc44endfunc
44 45
45func ff_v_16x16_rvi, zba46func ff_v_16x16_rvi, zba
47 lpad 0
46 ld t0, (a3)48 ld t0, (a3)
47 ld t1, 8(a3)49 ld t1, 8(a3)
48 .rept 850 .rept 8
@@ -58,6 +60,7 @@ func ff_v_16x16_rvi, zba · 9 unmodified lines
58endfunc60endfunc
59 61
60func ff_v_8x8_rvi, zba62func ff_v_8x8_rvi, zba
63 lpad 0
61 ld t0, (a3)64 ld t0, (a3)
62 .rept 465 .rept 4
63 add a7, a0, a166 add a7, a0, a1
libavcodec/riscv/vp9_intra_rvv.S+7−0
@@ -91,6 +91,7 @@ · 90 unmodified lines
91 91
92.macro func_dc name size type n restore ext92.macro func_dc name size type n restore ext
93func ff_\()\name\()_\()\size\()x\size\()_rvv, \ext93func ff_\()\name\()_\()\size\()x\size\()_rvv, \ext
94 lpad 0
94.if \size == 895.if \size == 8
95 dc_e64 \type \size \n \restore96 dc_e64 \type \size \n \restore
96.else97.else
@@ -119,6 +120,7 @@ func_dc dc_top 16 top 4 1 zve32x · 22 unmodified lines
119func_dc dc_top 8 top 3 0 zve64x120func_dc dc_top 8 top 3 0 zve64x
120 121
121func ff_h_32x32_rvv, zve32x122func ff_h_32x32_rvv, zve32x
123 lpad 0
122 li t0, 32124 li t0, 32
123 addi a2, a2, 31125 addi a2, a2, 31
124 vsetvli zero, t0, e8, m2, ta, ma126 vsetvli zero, t0, e8, m2, ta, ma
@@ -139,6 +141,7 @@ func ff_h_32x32_rvv, zve32x · 14 unmodified lines
139endfunc141endfunc
140 142
141func ff_h_16x16_rvv, zve32x143func ff_h_16x16_rvv, zve32x
144 lpad 0
142 addi a2, a2, 15145 addi a2, a2, 15
143 vsetivli zero, 16, e8, m1, ta, ma146 vsetivli zero, 16, e8, m1, ta, ma
144 147
@@ -157,6 +160,7 @@ func ff_h_16x16_rvv, zve32x · 12 unmodified lines
157endfunc160endfunc
158 161
159func ff_h_8x8_rvv, zve32x162func ff_h_8x8_rvv, zve32x
163 lpad 0
160 addi a2, a2, 7164 addi a2, a2, 7
161 vsetivli zero, 8, e8, mf2, ta, ma165 vsetivli zero, 8, e8, mf2, ta, ma
162 166
@@ -190,6 +194,7 @@ endfunc · 27 unmodified lines
190.endm194.endm
191 195
192func ff_tm_32x32_rvv, zve32x196func ff_tm_32x32_rvv, zve32x
197 lpad 0
193 lbu a4, -1(a3)198 lbu a4, -1(a3)
194 li t5, 32199 li t5, 32
195 200
@@ -244,6 +249,7 @@ func ff_tm_16x16_rvv, zve32x · 48 unmodified lines
244endfunc249endfunc
245 250
246func ff_tm_8x8_rvv, zve32x251func ff_tm_8x8_rvv, zve32x
252 lpad 0
247 vsetivli zero, 8, e16, m1, ta, ma253 vsetivli zero, 8, e16, m1, ta, ma
248 vle8.v v8, (a3)254 vle8.v v8, (a3)
249 vzext.vf2 v28, v8255 vzext.vf2 v28, v8
@@ -269,6 +275,7 @@ func ff_tm_8x8_rvv, zve32x · 19 unmodified lines
269endfunc275endfunc
270 276
271func ff_tm_4x4_rvv, zve32x277func ff_tm_4x4_rvv, zve32x
278 lpad 0
272 vsetivli zero, 4, e16, mf2, ta, ma279 vsetivli zero, 4, e16, mf2, ta, ma
273 vle8.v v8, (a3)280 vle8.v v8, (a3)
274 vzext.vf2 v28, v8281 vzext.vf2 v28, v8
libavcodec/riscv/vp9_mc_rvi.S+5−0
@@ -22,6 +22,7 @@ · 21 unmodified lines
22 22
23#if __riscv_xlen >= 6423#if __riscv_xlen >= 64
24func ff_copy64_rvi24func ff_copy64_rvi
25 lpad 0
251:261:
26 addi a4, a4, -127 addi a4, a4, -1
27 ld t0, (a2)28 ld t0, (a2)
@@ -48,6 +49,7 @@ func ff_copy64_rvi · 20 unmodified lines
48endfunc49endfunc
49 50
50func ff_copy32_rvi51func ff_copy32_rvi
52 lpad 0
511:531:
52 addi a4, a4, -154 addi a4, a4, -1
53 ld t0, (a2)55 ld t0, (a2)
@@ -66,6 +68,7 @@ func ff_copy32_rvi · 12 unmodified lines
66endfunc68endfunc
67 69
68func ff_copy16_rvi70func ff_copy16_rvi
71 lpad 0
691:721:
70 addi a4, a4, -173 addi a4, a4, -1
71 ld t0, (a2)74 ld t0, (a2)
@@ -80,6 +83,7 @@ func ff_copy16_rvi · 8 unmodified lines
80endfunc83endfunc
81 84
82func ff_copy8_rvi85func ff_copy8_rvi
86 lpad 0
831:871:
84 addi a4, a4, -188 addi a4, a4, -1
85 ld t0, (a2)89 ld t0, (a2)
@@ -93,6 +97,7 @@ endfunc · 7 unmodified lines
93#endif97#endif
94 98
95func ff_copy4_rvi99func ff_copy4_rvi
100 lpad 0
961:1011:
97 addi a4, a4, -1102 addi a4, a4, -1
98 lw t0, (a2)103 lw t0, (a2)
libavcodec/riscv/vp9_mc_rvv.S+1−0
@@ -38,6 +38,7 @@ · 37 unmodified lines
38 38
39.macro copy_avg len39.macro copy_avg len
40func ff_vp9_avg\len\()_rvv, zve32x40func ff_vp9_avg\len\()_rvv, zve32x
41 lpad 0
41 csrwi vxrm, 042 csrwi vxrm, 0
42 vsetvlstatic8 \len, t0, 6443 vsetvlstatic8 \len, t0, 64
431:441:

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t