]> git.proxmox.com Git - ceph.git/blob - ceph/src/erasure-code/isa/isa-l/include/reg_sizes.asm
bump version to 12.0.3-pve3
[ceph.git] / ceph / src / erasure-code / isa / isa-l / include / reg_sizes.asm
1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 ; Copyright(c) 2011-2015 Intel Corporation All rights reserved.
3 ;
4 ; Redistribution and use in source and binary forms, with or without
5 ; modification, are permitted provided that the following conditions
6 ; are met:
7 ; * Redistributions of source code must retain the above copyright
8 ; notice, this list of conditions and the following disclaimer.
9 ; * Redistributions in binary form must reproduce the above copyright
10 ; notice, this list of conditions and the following disclaimer in
11 ; the documentation and/or other materials provided with the
12 ; distribution.
13 ; * Neither the name of Intel Corporation nor the names of its
14 ; contributors may be used to endorse or promote products derived
15 ; from this software without specific prior written permission.
16 ;
17 ; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18 ; "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
19 ; LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
20 ; A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
21 ; OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
22 ; SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
23 ; LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
24 ; DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
25 ; THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 ; (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 ; OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
29
30 %ifndef _REG_SIZES_ASM_
31 %define _REG_SIZES_ASM_
32
33 %define EFLAGS_HAS_CPUID (1<<21)
34 %define FLAG_CPUID1_ECX_CLMUL (1<<1)
35 %define FLAG_CPUID1_EDX_SSE2 (1<<26)
36 %define FLAG_CPUID1_ECX_SSE3 (1)
37 %define FLAG_CPUID1_ECX_SSE4_1 (1<<19)
38 %define FLAG_CPUID1_ECX_SSE4_2 (1<<20)
39 %define FLAG_CPUID1_ECX_POPCNT (1<<23)
40 %define FLAG_CPUID1_ECX_AESNI (1<<25)
41 %define FLAG_CPUID1_ECX_OSXSAVE (1<<27)
42 %define FLAG_CPUID1_ECX_AVX (1<<28)
43 %define FLAG_CPUID1_EBX_AVX2 (1<<5)
44 %define FLAG_XGETBV_EAX_XMM_YMM 0x6
45
46 %define FLAG_CPUID1_EAX_AVOTON 0x000406d0
47
48 ; define d and w variants for registers
49
50 %define raxd eax
51 %define raxw ax
52 %define raxb al
53
54 %define rbxd ebx
55 %define rbxw bx
56 %define rbxb bl
57
58 %define rcxd ecx
59 %define rcxw cx
60 %define rcxb cl
61
62 %define rdxd edx
63 %define rdxw dx
64 %define rdxb dl
65
66 %define rsid esi
67 %define rsiw si
68 %define rsib sil
69
70 %define rdid edi
71 %define rdiw di
72 %define rdib dil
73
74 %define rbpd ebp
75 %define rbpw bp
76 %define rbpb bpl
77
78 %define ymm0x xmm0
79 %define ymm1x xmm1
80 %define ymm2x xmm2
81 %define ymm3x xmm3
82 %define ymm4x xmm4
83 %define ymm5x xmm5
84 %define ymm6x xmm6
85 %define ymm7x xmm7
86 %define ymm8x xmm8
87 %define ymm9x xmm9
88 %define ymm10x xmm10
89 %define ymm11x xmm11
90 %define ymm12x xmm12
91 %define ymm13x xmm13
92 %define ymm14x xmm14
93 %define ymm15x xmm15
94
95 %define DWORD(reg) reg %+ d
96 %define WORD(reg) reg %+ w
97 %define BYTE(reg) reg %+ b
98
99 %define XWORD(reg) reg %+ x
100
101 %ifidn __OUTPUT_FORMAT__,elf32
102 section .note.GNU-stack noalloc noexec nowrite progbits
103 section .text
104 %endif
105 %ifidn __OUTPUT_FORMAT__,elf64
106 section .note.GNU-stack noalloc noexec nowrite progbits
107 section .text
108 %endif
109 %ifidn __OUTPUT_FORMAT__, macho64
110 %define elf64 macho64
111 %endif
112
113 %macro slversion 4
114 section .text
115 global %1_slver_%2%3%4
116 global %1_slver
117 %1_slver:
118 %1_slver_%2%3%4:
119 dw 0x%4
120 db 0x%3, 0x%2
121 %endmacro
122
123 %endif ; ifndef _REG_SIZES_ASM_