diff options
author | Vladimir Glazounov <vg@openoffice.org> | 2009-01-20 16:36:21 +0000 |
---|---|---|
committer | Vladimir Glazounov <vg@openoffice.org> | 2009-01-20 16:36:21 +0000 |
commit | 4cd7a9b5d6262abdacf92e61793620a4eadf84f5 (patch) | |
tree | 97c4055a720371ec058aad3a422e67af78ab2889 /basic | |
parent | 12214aaae3fb53ae0da2715d216e1ae192607147 (diff) |
CWS-TOOLING: integrate CWS mingwport16
2009-01-15 13:11:20 +0100 releng r266363 : tidy-up tabs
2008-11-28 15:33:23 +0100 tono r264557 : i95203: mingw build without stlport
2008-11-22 07:19:50 +0100 tono r264180 : i96436: make mingw bridge conform with reg-struct-return
2008-11-22 05:14:58 +0100 tono r264179 : i96436: make mingw bridge conform with reg-struct-return
2008-11-21 17:09:04 +0100 tono r264153 : i95203: mingw build without stlport
2008-11-21 16:59:55 +0100 tono r264152 : i96436: make mingw bridge conform with reg-struct-return
2008-11-21 16:59:18 +0100 tono r264151 : i96436: make mingw bridge conform with reg-struct-return
2008-11-21 16:57:01 +0100 tono r264150 : i96436: make mingw bridge conform with reg-struct-return
2008-11-21 16:53:19 +0100 tono r264149 : i96100: mingw port for icu 4.0
2008-11-13 13:41:13 +0100 tono r263643 : i95203: mingw: Build without stlport
2008-11-13 13:29:38 +0100 tono r263640 : i96100: MinGW port for icu 4.0
2008-11-13 13:17:10 +0100 tono r263634 : i96098: MinGW port fix for new Windows API
2008-11-09 15:22:59 +0100 tono r263497 : i95198: mingwport do not interfere with Cygwin
2008-11-09 14:44:54 +0100 tono r263496 : i95190: mingwport avoid use of MS assembler
2008-11-09 14:32:26 +0100 tono r263495 : i95190: mingwport trivial build fixes
Diffstat (limited to 'basic')
-rw-r--r-- | basic/source/runtime/makefile.mk | 13 | ||||
-rw-r--r-- | basic/source/runtime/wnt-mingw.s | 97 |
2 files changed, 109 insertions, 1 deletions
diff --git a/basic/source/runtime/makefile.mk b/basic/source/runtime/makefile.mk index 358376925555..9c9886e05f94 100644 --- a/basic/source/runtime/makefile.mk +++ b/basic/source/runtime/makefile.mk @@ -61,10 +61,14 @@ SLOFILES= \ SLOFILES+= $(SLO)$/win.obj .ENDIF -.IF "$(GUI)$(CPU)" == "WNTI" +.IF "$(GUI)$(COM)$(CPU)" == "WNTMSCI" SLOFILES+= $(SLO)$/wnt.obj .ENDIF +.IF "$(GUI)$(COM)$(CPU)" == "WNTGCCI" +SLOFILES+= $(SLO)$/wnt-mingw.obj +.ENDIF + .IF "$(GUI)$(CPU)" == "OS2I" #FIXME SLOFILES+= $(SLO)$/os2.obj .ENDIF @@ -80,3 +84,10 @@ EXCEPTIONSFILES=$(SLO)$/step0.obj \ .INCLUDE : target.mk +$(SLO)$/%.obj: %.s +#kendy: Cut'n'paste from bridges/source/cpp_uno/mingw_intel/makefile.mk +#cmc: Ideally --noexecstack would be in operations, but with #i51385# pyuno +#remote bridgeing breaks +# $(CC) -Wa,--noexecstack -c -o $(SLO)$/$(@:b).o $< + $(CC) -c -o $(SLO)$/$(@:b).obj $< + touch $@ diff --git a/basic/source/runtime/wnt-mingw.s b/basic/source/runtime/wnt-mingw.s new file mode 100644 index 000000000000..b42c5278c7e0 --- /dev/null +++ b/basic/source/runtime/wnt-mingw.s @@ -0,0 +1,97 @@ +#************************************************************************* +# +# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. +# +# Copyright 2008 by Sun Microsystems, Inc. +# +# OpenOffice.org - a multi-platform office productivity suite +# +# $RCSfile: wnt.asm,v $ +# +# $Revision: 1.4 $ +# +# This file is part of OpenOffice.org. +# +# OpenOffice.org is free software: you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License version 3 +# only, as published by the Free Software Foundation. +# +# OpenOffice.org 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 version 3 for more details +# (a copy is included in the LICENSE file that accompanied this code). +# +# You should have received a copy of the GNU Lesser General Public License +# version 3 along with OpenOffice.org. If not, see +# <http://www.openoffice.org/license.html> +# for a copy of the LGPLv3 License. +# +#************************************************************************* + +# Anmerkungen +# Direktaufruf von C- und PASCAL-Routinen, Windows und OS/2 +# +# Inhalt: +# type = CallXXX (far *pProc, char *pStack, short nStack) +# +# Kopie des Basic-Stacks (nStack Bytes) auf den C-Stack +# und Aufruf der Prozedur. + + .intel_syntax + #.386 + +#_TEXT SEGMENT DWORD PUBLIC 'CODE' USE32 + + #ASSUME CS:_TEXT + +.globl _CallINT +.globl _CallLNG +.globl _CallDBL +.globl _CallSTR +.globl _CallFIX + +_CallINT: +_CallLNG: +_CallDBL: +_CallSTR: + +_CallFIX: PUSH EBP + MOV EBP,ESP + PUSH ESI + PUSH EDI + + PUSH ECX + PUSH EDX + + MOV DX,DS + MOVZX EAX,WORD PTR [EBP+16] # EAX == nStack + SUB ESP,EAX # Stack um nStack Bytes vergroessern + MOV EDI,ESP + MOV AX,SS + MOV ES,AX # ES:EDI = Startadresse des fuer + # Parameter reservierten Stackbereichs + MOV ESI,[EBP+12] # DS:ESI == pStack + + MOVZX ECX,WORD PTR [EBP+16] # ECX == nStack + SHR ECX,1 + CLD + JCXZ $1 + REP MOVSW # Stack uebernehmen +$1: MOV DS,DX + CALL DWORD PTR [EBP+8] # Aufruf der Prozedur + # CLI # unter NT nicht erlaubt (privileged instruction) + MOV ESP,EBP + SUB ESP,16 # wegen gepushter Register + # (ESI, EDI) + # STI + POP EDX + POP ECX + POP EDI + POP ESI + POP EBP + RET 12 + +#_TEXT ENDS + + #END |