aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authortgingold <tgingold@users.noreply.github.com>2016-06-30 19:54:10 +0200
committerGitHub <noreply@github.com>2016-06-30 19:54:10 +0200
commit50d05077aee0a8ff8020d2dcf08a7145fdc74b1e (patch)
tree4a20863ad14b0bf810b7c2c00333d9af4084253a /src
parentecf964d43cfb36def48809fe47e43f60a5f2e4b1 (diff)
parent030a49838de92cb8c2bf77e025cd9ca64314b75b (diff)
downloadghdl-50d05077aee0a8ff8020d2dcf08a7145fdc74b1e.tar.gz
ghdl-50d05077aee0a8ff8020d2dcf08a7145fdc74b1e.tar.bz2
ghdl-50d05077aee0a8ff8020d2dcf08a7145fdc74b1e.zip
Merge pull request #108 from Paebbels/paebbels/mingw32-mingw64
A first change set for MinGW32 and MinGW64
Diffstat (limited to 'src')
-rw-r--r--src/grt/Makefile.inc5
-rw-r--r--src/grt/config/win32.c4
-rw-r--r--src/ortho/mcode/ortho_code-x86-flags_windows64.ads34
3 files changed, 39 insertions, 4 deletions
diff --git a/src/grt/Makefile.inc b/src/grt/Makefile.inc
index f8a4d327a..7ac0c96d2 100644
--- a/src/grt/Makefile.inc
+++ b/src/grt/Makefile.inc
@@ -47,8 +47,9 @@ endif
GRT_ELF_OPTS:=-Wl,--version-script=@/grt.ver -Wl,--export-dynamic
# Set target files.
-ifeq ($(filter-out mingw32,$(osys)),)
- GRT_TARGET_OBJS=jumps.o math.o clock.o
+ifeq ($(filter-out mingw32 mingw64,$(osys)),)
+ GRT_TARGET_OBJS=win32.o clock.o
+ GRT_EXTRA_LIB=-ldbghelp
else
GRT_TARGET_OBJS=jumps.o times.o
ifeq ($(filter-out linux,$(osys)),)
diff --git a/src/grt/config/win32.c b/src/grt/config/win32.c
index 79935e6f0..c473b246c 100644
--- a/src/grt/config/win32.c
+++ b/src/grt/config/win32.c
@@ -79,9 +79,9 @@ get_bt_from_context (struct backtrace_addrs *bt, CONTEXT *ctxt, int skip)
frame.AddrPC.Offset = ctxt->Rip;
frame.AddrPC.Mode = AddrModeFlat;
- frame.AddrFrame.Offset = ctx->Rsp;
+ frame.AddrFrame.Offset = ctxt->Rsp;
frame.AddrFrame.Mode = AddrModeFlat;
- frame.AddrStack.Offset = ctx->Rsp;
+ frame.AddrStack.Offset = ctxt->Rsp;
frame.AddrStack.Mode = AddrModeFlat;
#else
diff --git a/src/ortho/mcode/ortho_code-x86-flags_windows64.ads b/src/ortho/mcode/ortho_code-x86-flags_windows64.ads
new file mode 100644
index 000000000..1e7550012
--- /dev/null
+++ b/src/ortho/mcode/ortho_code-x86-flags_windows64.ads
@@ -0,0 +1,34 @@
+-- X86 ABI flags.
+-- Copyright (C) 2006 Tristan Gingold
+--
+-- GHDL is free software; you can redistribute it and/or modify it under
+-- the terms of the GNU General Public License as published by the Free
+-- Software Foundation; either version 2, or (at your option) any later
+-- version.
+--
+-- GHDL 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 General Public License
+-- for more details.
+--
+-- You should have received a copy of the GNU General Public License
+-- along with GCC; see the file COPYING. If not, write to the Free
+-- Software Foundation, 59 Temple Place - Suite 330, Boston, MA
+-- 02111-1307, USA.
+with Interfaces; use Interfaces;
+
+package Ortho_Code.X86.Flags_Windows64 is
+ -- If true, OE_Alloca calls __chkstk (Windows), otherwise OE_Alloc
+ -- modifies ESP directly.
+ Flag_Alloca_Call : constant Boolean := True;
+
+ -- Prefered stack alignment.
+ -- Must be a power of 2.
+ Stack_Boundary : constant Unsigned_32 := 2 ** 3;
+
+ -- Alignment for double (64 bit float).
+ Mode_F64_Align : constant Natural := 3;
+
+ -- 32 bits.
+ M64 : constant Boolean := False;
+end Ortho_Code.X86.Flags_Windows64;