(root)/
glibc-2.38/
sysdeps/
x86_64/
multiarch/
reg-macros.h
       1  /* This file was generated by: gen-reg-macros.py.
       2  
       3     Copyright (C) 2022-2023 Free Software Foundation, Inc.
       4     This file is part of the GNU C Library.
       5  
       6     The GNU C Library is free software; you can redistribute it and/or
       7     modify it under the terms of the GNU Lesser General Public
       8     License as published by the Free Software Foundation; either
       9     version 2.1 of the License, or (at your option) any later version.
      10  
      11     The GNU C Library is distributed in the hope that it will be useful,
      12     but WITHOUT ANY WARRANTY; without even the implied warranty of
      13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      14     Lesser General Public License for more details.
      15  
      16     You should have received a copy of the GNU Lesser General Public
      17     License along with the GNU C Library; if not, see
      18     <https://www.gnu.org/licenses/>.  */
      19  
      20  #ifndef _REG_MACROS_H
      21  #define _REG_MACROS_H	1
      22  
      23  #define rax_8	al
      24  #define rax_16	ax
      25  #define rax_32	eax
      26  #define rax_64	rax
      27  #define rbx_8	bl
      28  #define rbx_16	bx
      29  #define rbx_32	ebx
      30  #define rbx_64	rbx
      31  #define rcx_8	cl
      32  #define rcx_16	cx
      33  #define rcx_32	ecx
      34  #define rcx_64	rcx
      35  #define rdx_8	dl
      36  #define rdx_16	dx
      37  #define rdx_32	edx
      38  #define rdx_64	rdx
      39  #define rbp_8	bpl
      40  #define rbp_16	bp
      41  #define rbp_32	ebp
      42  #define rbp_64	rbp
      43  #define rsp_8	spl
      44  #define rsp_16	sp
      45  #define rsp_32	esp
      46  #define rsp_64	rsp
      47  #define rsi_8	sil
      48  #define rsi_16	si
      49  #define rsi_32	esi
      50  #define rsi_64	rsi
      51  #define rdi_8	dil
      52  #define rdi_16	di
      53  #define rdi_32	edi
      54  #define rdi_64	rdi
      55  #define r8_8	r8b
      56  #define r8_16	r8w
      57  #define r8_32	r8d
      58  #define r8_64	r8
      59  #define r9_8	r9b
      60  #define r9_16	r9w
      61  #define r9_32	r9d
      62  #define r9_64	r9
      63  #define r10_8	r10b
      64  #define r10_16	r10w
      65  #define r10_32	r10d
      66  #define r10_64	r10
      67  #define r11_8	r11b
      68  #define r11_16	r11w
      69  #define r11_32	r11d
      70  #define r11_64	r11
      71  #define r12_8	r12b
      72  #define r12_16	r12w
      73  #define r12_32	r12d
      74  #define r12_64	r12
      75  #define r13_8	r13b
      76  #define r13_16	r13w
      77  #define r13_32	r13d
      78  #define r13_64	r13
      79  #define r14_8	r14b
      80  #define r14_16	r14w
      81  #define r14_32	r14d
      82  #define r14_64	r14
      83  #define r15_8	r15b
      84  #define r15_16	r15w
      85  #define r15_32	r15d
      86  #define r15_64	r15
      87  
      88  #define kmov_8	kmovb
      89  #define kmov_16	kmovw
      90  #define kmov_32	kmovd
      91  #define kmov_64	kmovq
      92  #define kortest_8	kortestb
      93  #define kortest_16	kortestw
      94  #define kortest_32	kortestd
      95  #define kortest_64	kortestq
      96  #define kor_8	korb
      97  #define kor_16	korw
      98  #define kor_32	kord
      99  #define kor_64	korq
     100  #define ktest_8	ktestb
     101  #define ktest_16	ktestw
     102  #define ktest_32	ktestd
     103  #define ktest_64	ktestq
     104  #define kand_8	kandb
     105  #define kand_16	kandw
     106  #define kand_32	kandd
     107  #define kand_64	kandq
     108  #define kxor_8	kxorb
     109  #define kxor_16	kxorw
     110  #define kxor_32	kxord
     111  #define kxor_64	kxorq
     112  #define knot_8	knotb
     113  #define knot_16	knotw
     114  #define knot_32	knotd
     115  #define knot_64	knotq
     116  #define kxnor_8	kxnorb
     117  #define kxnor_16	kxnorw
     118  #define kxnor_32	kxnord
     119  #define kxnor_64	kxnorq
     120  #define kunpack_8	kunpackbw
     121  #define kunpack_16	kunpackwd
     122  #define kunpack_32	kunpackdq
     123  
     124  /* Common API for accessing proper width GPR is V{upcase_GPR_name}.  */
     125  #define VRAX	VGPR(rax)
     126  #define VRBX	VGPR(rbx)
     127  #define VRCX	VGPR(rcx)
     128  #define VRDX	VGPR(rdx)
     129  #define VRBP	VGPR(rbp)
     130  #define VRSP	VGPR(rsp)
     131  #define VRSI	VGPR(rsi)
     132  #define VRDI	VGPR(rdi)
     133  #define VR8	VGPR(r8)
     134  #define VR9	VGPR(r9)
     135  #define VR10	VGPR(r10)
     136  #define VR11	VGPR(r11)
     137  #define VR12	VGPR(r12)
     138  #define VR13	VGPR(r13)
     139  #define VR14	VGPR(r14)
     140  #define VR15	VGPR(r15)
     141  
     142  /* Common API for accessing proper width mask insn is {upcase_mask_insn}.  */
     143  #define KMOV 	VKINSN(kmov)
     144  #define KORTEST 	VKINSN(kortest)
     145  #define KOR 	VKINSN(kor)
     146  #define KTEST 	VKINSN(ktest)
     147  #define KAND 	VKINSN(kand)
     148  #define KXOR 	VKINSN(kxor)
     149  #define KNOT 	VKINSN(knot)
     150  #define KXNOR 	VKINSN(kxnor)
     151  #define KUNPACK 	VKINSN(kunpack)
     152  
     153  #ifdef USE_WIDE_CHAR
     154  # define REG_WIDTH 32
     155  #else
     156  # define REG_WIDTH VEC_SIZE
     157  #endif
     158  
     159  #define VPASTER(x, y)	x##_##y
     160  #define VEVALUATOR(x, y)	VPASTER(x, y)
     161  
     162  #define VGPR_SZ(reg_name, reg_size)	VEVALUATOR(reg_name, reg_size)
     163  #define VKINSN_SZ(insn, reg_size)	VEVALUATOR(insn, reg_size)
     164  
     165  #define VGPR(reg_name)	VGPR_SZ(reg_name, REG_WIDTH)
     166  #define VKINSN(mask_insn)	VKINSN_SZ(mask_insn, REG_WIDTH)
     167  
     168  #endif