about summary refs log tree commit diff
path: root/sysdeps/x86_64/x32/sysdep.h
blob: ad575f6850b353a11527773b72ce75adcfb7e944 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
/* Assembler macros for x32.
   Copyright (C) 2012-2019 Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, see
   <https://www.gnu.org/licenses/>.  */

#include <sysdeps/x86_64/sysdep.h>

#undef LP_SIZE
#undef LP_OP
#undef ASM_ADDR

#undef RAX_LP
#undef RBP_LP
#undef RBX_LP
#undef RCX_LP
#undef RDI_LP
#undef RDX_LP
#undef RSP_LP
#undef RSI_LP
#undef R8_LP
#undef R9_LP
#undef R10_LP
#undef R11_LP
#undef R12_LP
#undef R13_LP
#undef R14_LP
#undef R15_LP

#ifdef	__ASSEMBLER__

# define LP_SIZE 4

# define LP_OP(insn) insn##l

# define ASM_ADDR .long

# define RAX_LP	eax
# define RBP_LP	ebp
# define RBX_LP	ebx
# define RCX_LP	ecx
# define RDI_LP	edi
# define RDX_LP	edx
# define RSI_LP	esi
# define RSP_LP	esp
# define R8_LP	r8d
# define R9_LP	r9d
# define R10_LP	r10d
# define R11_LP	r11d
# define R12_LP	r12d
# define R13_LP	r13d
# define R14_LP	r14d
# define R15_LP	r15d

#else	/* __ASSEMBLER__ */

# define LP_SIZE "4"

# define LP_OP(insn) #insn "l"

# define ASM_ADDR ".long"

# define RAX_LP	"eax"
# define RBP_LP	"ebp"
# define RBX_LP	"ebx"
# define RCX_LP	"ecx"
# define RDI_LP	"edi"
# define RDX_LP	"edx"
# define RSI_LP	"esi"
# define RSP_LP	"esp"
# define R8_LP	"r8d"
# define R9_LP	"r9d"
# define R10_LP	"r10d"
# define R11_LP	"r11d"
# define R12_LP	"r12d"
# define R13_LP	"r13d"
# define R14_LP	"r14d"
# define R15_LP	"r15d"

#endif	/* __ASSEMBLER__ */