Skip to content

Commit 4c282b0

Browse files
committed
More workarounds for old clang
1 parent d2c20a7 commit 4c282b0

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

include/private/dsp/arch/x86/sse/complex.h

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,8 @@ namespace lsp
298298
(
299299
__ASM_EMIT ("xor %[off], %[off]")
300300
// x4 blocks
301-
__ASM_EMIT ("sub $4, %[count]")
301+
__ASM_EMIT32("subl $4, %[count]") \
302+
__ASM_EMIT64("sub $4, %[count]") \
302303
__ASM_EMIT ("jb 2f")
303304
__ASM_EMIT ("1:")
304305
__ASM_EMIT32("mov %[t_re], %[ptr_re]")
@@ -333,11 +334,13 @@ namespace lsp
333334
__ASM_EMIT64("movups %%xmm0, 0x00(%[dst_re], %[off])")
334335
__ASM_EMIT64("movups %%xmm1, 0x00(%[dst_im], %[off])")
335336
__ASM_EMIT ("add $0x10, %[off]")
336-
__ASM_EMIT ("sub $4, %[count]")
337+
__ASM_EMIT32("subl $4, %[count]") \
338+
__ASM_EMIT64("sub $4, %[count]") \
337339
__ASM_EMIT ("jae 1b")
338340
__ASM_EMIT ("2:")
339341
// x1 blocks
340-
__ASM_EMIT ("add $3, %[count]")
342+
__ASM_EMIT32("addl $4, %[count]") \
343+
__ASM_EMIT64("add $4, %[count]") \
341344
__ASM_EMIT ("jl 4f")
342345
__ASM_EMIT ("3:")
343346
__ASM_EMIT32("mov %[t_re], %[ptr_re]")
@@ -372,15 +375,16 @@ namespace lsp
372375
__ASM_EMIT64("movss %%xmm0, 0x00(%[dst_re], %[off])")
373376
__ASM_EMIT64("movss %%xmm1, 0x00(%[dst_im], %[off])")
374377
__ASM_EMIT ("add $0x04, %[off]")
375-
__ASM_EMIT ("dec %[count]")
378+
__ASM_EMIT32("decl %[count]") \
379+
__ASM_EMIT64("dec %[count]") \
376380
__ASM_EMIT ("jge 3b")
377381
__ASM_EMIT ("4:")
378382
/* end */
379383

380384
: __IF_32(
381385
[ptr_re] "=&r" (ptr_re), [ptr_im] "=&r" (ptr_im),
382386
)
383-
[count] "+r" (count), [off] "=&r" (off)
387+
[count] X86_PGREG(count), [off] "=&r" (off)
384388
: [dst_re] X86_GREG (dst_re), [dst_im] X86_GREG (dst_im),
385389
[t_re] X86_GREG (t_re), [t_im] X86_GREG (t_im),
386390
[b_re] "r" (b_re), [b_im] "r" (b_im),

0 commit comments

Comments
 (0)