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

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/machine/x86_64/x86_64mach.h')
-rw-r--r--newlib/libc/machine/x86_64/x86_64mach.h113
1 files changed, 113 insertions, 0 deletions
diff --git a/newlib/libc/machine/x86_64/x86_64mach.h b/newlib/libc/machine/x86_64/x86_64mach.h
new file mode 100644
index 000000000..84cb2f85d
--- /dev/null
+++ b/newlib/libc/machine/x86_64/x86_64mach.h
@@ -0,0 +1,113 @@
+/*
+ ** This file is distributed WITHOUT ANY WARRANTY; without even the implied
+ ** warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ */
+
+#ifndef __USER_LABEL_PREFIX__
+#define __USER_LABEL_PREFIX__ _
+#endif
+
+#define __REG_PREFIX__ %
+
+/* ANSI concatenation macros. */
+
+#define CONCAT1(a, b) CONCAT2(a, b)
+#define CONCAT2(a, b) a##b
+
+/* Use the right prefix for global labels. */
+
+#define SYM(x) CONCAT1(__USER_LABEL_PREFIX__, x)
+
+/* Use the right prefix for registers. */
+
+#define REG(x) CONCAT1(__REG_PREFIX__, x)
+
+#define rax REG(rax)
+#define rbx REG(rbx)
+#define rcx REG(rcx)
+#define rdx REG(rdx)
+#define rsi REG(rsi)
+#define rdi REG(rdi)
+#define rbp REG(rbp)
+#define rsp REG(rsp)
+
+#define r8 REG(r8)
+#define r9 REG(r9)
+#define r10 REG(r10)
+#define r11 REG(r11)
+#define r12 REG(r12)
+#define r13 REG(r13)
+#define r14 REG(r14)
+#define r15 REG(r15)
+
+#define eax REG(eax)
+#define ebx REG(ebx)
+#define ecx REG(ecx)
+#define edx REG(edx)
+#define esi REG(esi)
+#define edi REG(edi)
+#define ebp REG(ebp)
+#define esp REG(esp)
+
+#define st0 REG(st)
+#define st1 REG(st(1))
+#define st2 REG(st(2))
+#define st3 REG(st(3))
+#define st4 REG(st(4))
+#define st5 REG(st(5))
+#define st6 REG(st(6))
+#define st7 REG(st(7))
+
+#define ax REG(ax)
+#define bx REG(bx)
+#define cx REG(cx)
+#define dx REG(dx)
+
+#define ah REG(ah)
+#define bh REG(bh)
+#define ch REG(ch)
+#define dh REG(dh)
+
+#define al REG(al)
+#define bl REG(bl)
+#define cl REG(cl)
+#define dl REG(dl)
+
+#define sil REG(sil)
+
+#define mm1 REG(mm1)
+#define mm2 REG(mm2)
+#define mm3 REG(mm3)
+#define mm4 REG(mm4)
+#define mm5 REG(mm5)
+#define mm6 REG(mm6)
+#define mm7 REG(mm7)
+
+#define xmm0 REG(xmm0)
+#define xmm1 REG(xmm1)
+#define xmm2 REG(xmm2)
+#define xmm3 REG(xmm3)
+#define xmm4 REG(xmm4)
+#define xmm5 REG(xmm5)
+#define xmm6 REG(xmm6)
+#define xmm7 REG(xmm7)
+
+#define cr0 REG(cr0)
+#define cr1 REG(cr1)
+#define cr2 REG(cr2)
+#define cr3 REG(cr3)
+#define cr4 REG(cr4)
+
+#ifdef _I386MACH_NEED_SOTYPE_FUNCTION
+#define SOTYPE_FUNCTION(sym) .type SYM(sym),@function
+#else
+#define SOTYPE_FUNCTION(sym)
+#endif
+
+#ifdef _I386MACH_ALLOW_HW_INTERRUPTS
+#define __CLI
+#define __STI
+#else
+#define __CLI cli
+#define __STI sti
+#endif