forked from amazingfate/loongoffice
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
98 lines
2.3 KiB
ArmAsm
98 lines
2.3 KiB
ArmAsm
#*************************************************************************
|
|
#
|
|
# 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
|