Files
stevia/include/cdecl16.inc

67 lines
1.4 KiB
PHP

; Copyright (C) 2025 Elaina Claus
;
; This program 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 3 of the License, or
; (at your option) any later version.
;
; This program 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 this program. If not, see <https://www.gnu.org/licenses/>.
%ifnmacro __CDECL16_ENTRY
%macro __CDECL16_ENTRY 0
push bp
mov bp, sp
sub sp, 0x10
push si
push di
push bx
%endmacro
%endif
%ifnmacro __CDECL16_EXIT
%macro __CDECL16_EXIT 0
pop bx
pop di
pop si
mov sp, bp
pop bp
%endmacro
%endif
%ifnmacro __CDECL16_CALLER_SAVE
%macro __CDECL16_CALLER_SAVE 0
push ax
push cx
push dx
%endmacro
%endif
%ifnmacro __CDECL16_CALLER_RESTORE
%macro __CDECL16_CALLER_RESTORE 0
pop dx
pop cx
pop ax
%endmacro
%endif
%ifnmacro __FASTCALL16_ENTRY
%macro __FASTCALL16_ENTRY 0
push bp
mov bp, sp
%endmacro
%endif
%ifnmacro __FASTCALL16_EXIT
%macro __FASTCALL16_EXIT 0
mov sp, bp
pop bp
%endmacro
%endif