Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/videolan/dav1d.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHenrik Gramner <gramner@twoorioles.com>2018-12-20 02:43:42 +0300
committerHenrik Gramner <gramner@twoorioles.com>2018-12-20 23:24:33 +0300
commit0f25db1ab9fad46e134a037b85342a0d886d2ec7 (patch)
tree2ff6c8158d473a409e708b55b69b9a24c4d1ccf2 /meson.build
parent276973ecebea1fa7657253af26f6af3ac1e85513 (diff)
Use 16-byte stack alignment on 32-bit x86
We don't support AVX2 on x86-32 so having 32-byte alignment is redundant.
Diffstat (limited to 'meson.build')
-rw-r--r--meson.build45
1 files changed, 25 insertions, 20 deletions
diff --git a/meson.build b/meson.build
index 220f6d7..aa55236 100644
--- a/meson.build
+++ b/meson.build
@@ -194,30 +194,35 @@ stackalign_flag = []
stackrealign_flag = []
if host_machine.cpu_family().startswith('x86')
- if cc.has_argument('-mpreferred-stack-boundary=5')
- stackalign_flag = ['-mpreferred-stack-boundary=5']
- stackrealign_flag = ['-mincoming-stack-boundary=4']
- cdata_asm.set('STACK_ALIGNMENT', 32)
- cdata.set('STACK_ALIGNMENT', 32)
- elif cc.has_argument('-mpreferred-stack-boundary=4')
- stackalign_flag = ['-mpreferred-stack-boundary=4']
- stackrealign_flag = ['-mincoming-stack-boundary=4']
- cdata_asm.set('STACK_ALIGNMENT', 16)
- cdata.set('STACK_ALIGNMENT', 16)
- elif cc.has_argument('-mstack-alignment=32')
- stackalign_flag = ['-mstack-alignment=32']
- stackrealign_flag = ['-mstackrealign']
- cdata_asm.set('STACK_ALIGNMENT', 32)
- cdata.set('STACK_ALIGNMENT', 32)
+ if host_machine.cpu_family() == 'x86_64'
+ if cc.has_argument('-mpreferred-stack-boundary=5')
+ stackalign_flag = ['-mpreferred-stack-boundary=5']
+ stackrealign_flag = ['-mincoming-stack-boundary=4']
+ stack_alignment = 32
+ elif cc.has_argument('-mstack-alignment=32')
+ stackalign_flag = ['-mstack-alignment=32']
+ stackrealign_flag = ['-mstackrealign']
+ stack_alignment = 32
+ else
+ stack_alignment = 16
+ endif
else
- if host_machine.cpu_family() == 'x86_64'
- cdata_asm.set('STACK_ALIGNMENT', 16)
- cdata.set('STACK_ALIGNMENT', 16)
+ if host_machine.system() == 'linux' or host_machine.system() == 'darwin'
+ stack_alignment = 16
+ elif cc.has_argument('-mpreferred-stack-boundary=4')
+ stackalign_flag = ['-mpreferred-stack-boundary=4']
+ stackrealign_flag = ['-mincoming-stack-boundary=2']
+ stack_alignment = 16
+ elif cc.has_argument('-mstack-alignment=16')
+ stackalign_flag = ['-mstack-alignment=16']
+ stackrealign_flag = ['-mstackrealign']
+ stack_alignment = 16
else
- cdata_asm.set('STACK_ALIGNMENT', 4)
- cdata.set('STACK_ALIGNMENT', 4)
+ stack_alignment = 4
endif
endif
+ cdata_asm.set('STACK_ALIGNMENT', stack_alignment)
+ cdata.set('STACK_ALIGNMENT', stack_alignment)
endif
cdata.set10('ARCH_AARCH64', host_machine.cpu_family() == 'aarch64')