summaryrefslogtreecommitdiff
path: root/asm/i386/src_nasm/asminit.def
diff options
context:
space:
mode:
Diffstat (limited to 'asm/i386/src_nasm/asminit.def')
-rw-r--r--asm/i386/src_nasm/asminit.def72
1 files changed, 45 insertions, 27 deletions
diff --git a/asm/i386/src_nasm/asminit.def b/asm/i386/src_nasm/asminit.def
index 3f2e0d6..0ccdb8d 100644
--- a/asm/i386/src_nasm/asminit.def
+++ b/asm/i386/src_nasm/asminit.def
@@ -2,22 +2,7 @@
;
; This file is part of the LZO real-time data compression library.
;
-; Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer
-; Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer
-; Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer
-; Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer
-; Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer
-; Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer
-; Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer
-; Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer
-; Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer
-; Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer
-; Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer
-; Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer
-; Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer
-; Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer
-; Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer
-; Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer
+; Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
; All Rights Reserved.
;
; The LZO library is free software; you can redistribute it and/or
@@ -40,9 +25,30 @@
; http://www.oberhumer.com/opensource/lzo/
;
+bits 32
+%ifndef __OUTPUT_FORMAT__
+%error "__OUTPUT_FORMAT__ is not defined"
+%endif
+%ifidni __OUTPUT_FORMAT__,elf
+%undef __OUTPUT_FORMAT__
+%define __OUTPUT_FORMAT__ elf32
+%endif
%ifidni __OUTPUT_FORMAT__,macho
-%define NAME1(x) _ %+ x
-%elifidni __OUTPUT_FORMAT__,macho32
+%undef __OUTPUT_FORMAT__
+%define __OUTPUT_FORMAT__ macho32
+%endif
+%ifidni __OUTPUT_FORMAT__,win
+%undef __OUTPUT_FORMAT__
+%define __OUTPUT_FORMAT__ win32
+%endif
+%ifdef __YASM_MAJOR__
+%ifidni __OUTPUT_FORMAT__,x64
+%undef __OUTPUT_FORMAT__
+%define __OUTPUT_FORMAT__ win64
+%endif
+%endif
+
+%ifidni __OUTPUT_FORMAT__,macho32
%define NAME1(x) _ %+ x
%elifidni __OUTPUT_FORMAT__,macho64
%define NAME1(x) _ %+ x
@@ -51,10 +57,7 @@
%define NAME2(x) x
%endif
-%ifidni __OUTPUT_FORMAT__,elf
-%define globalf(x) global x:function (x %+ _end - x)
-%define globalf_end(x) x %+ _end:
-%elifidni __OUTPUT_FORMAT__,elf32
+%ifidni __OUTPUT_FORMAT__,elf32
%define globalf(x) global x:function (x %+ _end - x)
%define globalf_end(x) x %+ _end:
%elifidni __OUTPUT_FORMAT__,elf64
@@ -65,17 +68,32 @@
%define globalf_end(x)
%endif
-bits 32
-%ifidni __OUTPUT_FORMAT__,elf
-section .note.GNU-stack noalloc noexec nowrite progbits
-%elifidni __OUTPUT_FORMAT__,elf32
+%ifidni __OUTPUT_FORMAT__,elf32
section .note.GNU-stack noalloc noexec nowrite progbits
%elifidni __OUTPUT_FORMAT__,elf64
section .note.GNU-stack noalloc noexec nowrite progbits
%endif
%ifidni __OUTPUT_FORMAT__,obj
-segment _TEXT class=CODE public use32 flat align=16
+%if __BITS__==16
+segment _TEXT class=CODE public use16
+%else
+segment _TEXT class=CODE public use32 flat
+%endif
%else
section .text
%endif
+%ifidni __OUTPUT_FORMAT__,elf32
+align 64
+%elifidni __OUTPUT_FORMAT__,elf64
+align 64
+%elifidni __OUTPUT_FORMAT__,macho32
+align 64
+%elifidni __OUTPUT_FORMAT__,macho64
+align 64
+%elifidni __OUTPUT_FORMAT__,win32
+align 64
+%elifidni __OUTPUT_FORMAT__,win64
+align 64
+%else
align 16
+%endif