[FFmpeg-devel] [PATCH] lavc/ac3: add R-V Zbb extract_exponents
Rémi Denis-Courmont
remi at remlab.net
Sun Dec 3 22:18:53 EET 2023
Le 3 décembre 2023 19:50:18 GMT+02:00, Zhao Zhili <quinkblack at foxmail.com> a écrit :
>
>
>> On Oct 3, 2023, at 00:47, Rémi Denis-Courmont <remi at remlab.net> wrote:
>>
>>
>> diff --git a/libavcodec/riscv/ac3dsp_rvb.S b/libavcodec/riscv/ac3dsp_rvb.S
>> new file mode 100644
>> index 0000000000..48f8bb101e
>> --- /dev/null
>> +++ b/libavcodec/riscv/ac3dsp_rvb.S
>>
>> +func ff_extract_exponents_rvb, zbb
>> +1:
>> + lw t0, (a1)
>> + addi a0, a0, 1
>> + neg t1, t0
>> + addi a1, a1, 4
>> + max t0, t0, t1
>> + addi a2, a2, -1
>> + clz t0, t0
>> + addi t0, t0, 24 - __riscv_xlen
>> + sb t0, -1(a0)
>> + bgtz a2, 1b
>> +
>> + ret
>> +endfunc
>> —
>
>Got build failure with clang 14:
>
><instantiation>:6:21: warning: unknown option, expected 'push', 'pop', 'rvc', 'norvc', 'relax' or 'norelax'
> .option arch, +zbb
> ^
>src/libavcodec/riscv/ac3dsp_rvb.S:24:1: note: while in macro instantiation
>func ff_extract_exponents_rvb, zbb
>^
>src/libavcodec/riscv/ac3dsp_rvb.S:30:9: error: instruction requires the following: 'Zbb' (Basic Bit-Manipulation)
> max t0, t0, t1
> ^
>src/libavcodec/riscv/ac3dsp_rvb.S:32:9: error: instruction requires the following: 'Zbb' (Basic Bit-Manipulation)
> clz t0, t0
> ^
>make: *** [/home/quink/work/ffmpeg/ffbuild/common.mak:93: libavcodec/riscv/ac3dsp_rvb.o] Error 1
>make: *** Waiting for unfinished jobs....
><instantiation>:6:21: warning: unknown option, expected 'push', 'pop', 'rvc', 'norvc', 'relax' or 'norelax'
> .option arch, +f
> ^
>src/libavcodec/riscv/audiodsp_rvf.S:23:1: note: while in macro instantiation
>func ff_vector_clipf_rvf, f
>^
>
>Someone says clang 14 has Zbb extensions support. I don’t know what’s going on.
Forgot the explanation: the problem seems to be the arch option, not the Zbb extension.
I think you can get around it with -no-integrated-as, but then... what I said in the other mail.
Br,
More information about the ffmpeg-devel
mailing list