aboutsummaryrefslogtreecommitdiffstats
path: root/runtime/x86_64/sysdeps.h
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@college-de-france.fr>2020-10-05 15:52:58 +0200
committerXavier Leroy <xavier.leroy@college-de-france.fr>2020-10-05 15:52:58 +0200
commit26ddb90280b45e92d90eead89edb237f2922824a (patch)
treeff18b31abdbb97133f9708ca085467f25758e507 /runtime/x86_64/sysdeps.h
parente9c738e3bd156f68905968e25c70ec796d3119c4 (diff)
downloadcompcert-kvx-26ddb90280b45e92d90eead89edb237f2922824a.tar.gz
compcert-kvx-26ddb90280b45e92d90eead89edb237f2922824a.zip
Support Cygwin 64 bits
- Add support for the Win64 ABI to the x86_64 port - Update vararg support to handle Win64 conventions - Configure support for x86_64-cygwin64
Diffstat (limited to 'runtime/x86_64/sysdeps.h')
-rw-r--r--runtime/x86_64/sysdeps.h18
1 files changed, 15 insertions, 3 deletions
diff --git a/runtime/x86_64/sysdeps.h b/runtime/x86_64/sysdeps.h
index e9d456af..aacef8f0 100644
--- a/runtime/x86_64/sysdeps.h
+++ b/runtime/x86_64/sysdeps.h
@@ -63,13 +63,25 @@ _##f:
#if defined(SYS_cygwin)
-#define GLOB(x) _##x
+#define GLOB(x) x
#define FUNCTION(f) \
.text; \
- .globl _##f; \
+ .globl f; \
.align 16; \
-_##f:
+f:
#define ENDFUNCTION(f)
#endif
+
+// Names for argument and result registers
+
+#if defined(SYS_cygwin)
+#define INT_ARG_1 %rcx
+#else
+#define INT_ARG_1 %rdi
+#endif
+#define FP_ARG_1 %xmm0
+#define INT_RES %rax
+#define FP_RES %xmm0
+