This commit is contained in:
John Reiser
2014-01-10 19:23:41 -08:00
352 changed files with 1295 additions and 1093 deletions
+1 -1
View File
@@ -8,7 +8,7 @@
The Ultimate Packer for eXecutables The Ultimate Packer for eXecutables
Copyright (c) 1996-2013 Markus Oberhumer, Laszlo Molnar & John Reiser Copyright (c) 1996-2014 Markus Oberhumer, Laszlo Molnar & John Reiser
http://upx.sourceforge.net http://upx.sourceforge.net
+1 -1
View File
@@ -1,7 +1,7 @@
# #
# UPX toplevel Makefile - needs GNU make 3.81 or better # UPX toplevel Makefile - needs GNU make 3.81 or better
# #
# Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer # Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
# #
MAKEFLAGS += -rR MAKEFLAGS += -rR
+2
View File
@@ -2,6 +2,8 @@
User visible changes for UPX User visible changes for UPX
================================================================== ==================================================================
Changes in 3.92 (XX XXX 2014):
Changes in 3.91 (30 Sep 2013): Changes in 3.91 (30 Sep 2013):
* Added experimental support for Windows 64-bit PE files, based on * Added experimental support for Windows 64-bit PE files, based on
work by Stefan Widmann. Please use for testing only! work by Stefan Widmann. Please use for testing only!
+1 -1
View File
@@ -8,7 +8,7 @@
The Ultimate Packer for eXecutables The Ultimate Packer for eXecutables
Copyright (c) 1996-2013 Markus Oberhumer, Laszlo Molnar & John Reiser Copyright (c) 1996-2014 Markus Oberhumer, Laszlo Molnar & John Reiser
http://upx.sourceforge.net http://upx.sourceforge.net
+4 -4
View File
@@ -8,7 +8,7 @@
The Ultimate Packer for eXecutables The Ultimate Packer for eXecutables
Copyright (c) 1996-2013 Markus Oberhumer, Laszlo Molnar & John Reiser Copyright (c) 1996-2014 Markus Oberhumer, Laszlo Molnar & John Reiser
http://upx.sourceforge.net http://upx.sourceforge.net
@@ -108,9 +108,9 @@ THE FUTURE
COPYRIGHT COPYRIGHT
========= =========
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
Copyright (C) 2000-2013 John F. Reiser Copyright (C) 2000-2014 John F. Reiser
This program may be used freely, and you are welcome to This program may be used freely, and you are welcome to
redistribute it under certain conditions. redistribute it under certain conditions.
+1 -1
View File
@@ -8,7 +8,7 @@
The Ultimate Packer for eXecutables The Ultimate Packer for eXecutables
Copyright (c) 1996-2013 Markus Oberhumer, Laszlo Molnar & John Reiser Copyright (c) 1996-2014 Markus Oberhumer, Laszlo Molnar & John Reiser
http://upx.sourceforge.net http://upx.sourceforge.net
+1 -1
View File
@@ -8,7 +8,7 @@
The Ultimate Packer for eXecutables The Ultimate Packer for eXecutables
Copyright (c) 1996-2013 Markus Oberhumer, Laszlo Molnar & John Reiser Copyright (c) 1996-2014 Markus Oberhumer, Laszlo Molnar & John Reiser
http://upx.sourceforge.net http://upx.sourceforge.net
+1 -1
View File
@@ -1,5 +1,5 @@
Decompressing ELF Directly to Memory on Linux/x86 Decompressing ELF Directly to Memory on Linux/x86
Copyright (C) 2000-2013 John F. Reiser jreiser@BitWagon.com Copyright (C) 2000-2014 John F. Reiser jreiser@BitWagon.com
References: References:
<elf.h> definitions for the ELF file format <elf.h> definitions for the ELF file format
+5 -5
View File
@@ -13,7 +13,7 @@ B<upx> S<[ I<command> ]> S<[ I<options> ]> I<filename>...
=head1 ABSTRACT =head1 ABSTRACT
The Ultimate Packer for eXecutables The Ultimate Packer for eXecutables
Copyright (c) 1996-2013 Markus Oberhumer, Laszlo Molnar & John Reiser Copyright (c) 1996-2014 Markus Oberhumer, Laszlo Molnar & John Reiser
http://upx.sourceforge.net http://upx.sourceforge.net
@@ -933,13 +933,13 @@ Please report all bugs immediately to the authors.
=head1 COPYRIGHT =head1 COPYRIGHT
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
Copyright (C) 2000-2013 John F. Reiser Copyright (C) 2000-2014 John F. Reiser
Copyright (C) 2002-2013 Jens Medoch Copyright (C) 2002-2014 Jens Medoch
This program may be used freely, and you are welcome to This program may be used freely, and you are welcome to
redistribute it under certain conditions. redistribute it under certain conditions.
+1 -1
View File
@@ -1,7 +1,7 @@
# #
# UPX Makefile - needs GNU make 3.81 or better # UPX Makefile - needs GNU make 3.81 or better
# #
# Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer # Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
# #
MAKEFLAGS += -rR MAKEFLAGS += -rR
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+3 -5
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
@@ -336,9 +336,7 @@ typedef acc_uintptr_t upx_uintptr_t;
#endif #endif
#if (ACC_CC_INTELC && (__INTEL_COMPILER < 800)) #if (ACC_CC_CLANG || ACC_CC_GNUC || (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) || ACC_CC_PATHSCALE)
#elif (0 && (ACC_ARCH_AMD64 || ACC_ARCH_I386))
#elif (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC_GNUC || ACC_CC_PATHSCALE)
# define __packed_struct(s) struct s { # define __packed_struct(s) struct s {
# define __packed_struct_end() } __attribute__((__packed__,__aligned__(1))); # define __packed_struct_end() } __attribute__((__packed__,__aligned__(1)));
#elif (ACC_CC_WATCOMC) #elif (ACC_CC_WATCOMC)
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
Copyright (C) 2000-2013 John F. Reiser Copyright (C) 2000-2014 John F. Reiser
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
Copyright (C) 2000-2013 John F. Reiser Copyright (C) 2000-2014 John F. Reiser
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
Copyright (C) 2000-2013 John F. Reiser Copyright (C) 2000-2014 John F. Reiser
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
Copyright (C) 2004-2013 John F. Reiser Copyright (C) 2004-2014 John F. Reiser
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+7 -6
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
@@ -290,6 +290,7 @@ void show_help(int verbose)
" --strip-relocs=0 do not strip relocations\n" " --strip-relocs=0 do not strip relocations\n"
" --strip-relocs=1 strip relocations [default]\n" " --strip-relocs=1 strip relocations [default]\n"
"\n"); "\n");
fg = con_fg(f,FG_YELLOW);
con_fprintf(f,"Options for linux/elf:\n"); con_fprintf(f,"Options for linux/elf:\n");
fg = con_fg(f,fg); fg = con_fg(f,fg);
con_fprintf(f, con_fprintf(f,
@@ -405,10 +406,10 @@ void show_version(int x)
if (v != NULL && v[0]) if (v != NULL && v[0])
fprintf(fp, "LZMA SDK version %s\n", v); fprintf(fp, "LZMA SDK version %s\n", v);
#endif #endif
fprintf(fp, "Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer\n"); fprintf(fp, "Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer\n");
fprintf(fp, "Copyright (C) 1996-2013 Laszlo Molnar\n"); fprintf(fp, "Copyright (C) 1996-2014 Laszlo Molnar\n");
fprintf(fp, "Copyright (C) 2000-2013 John F. Reiser\n"); fprintf(fp, "Copyright (C) 2000-2014 John F. Reiser\n");
fprintf(fp, "Copyright (C) 2002-2013 Jens Medoch\n"); fprintf(fp, "Copyright (C) 2002-2014 Jens Medoch\n");
#if (WITH_ZLIB) #if (WITH_ZLIB)
fprintf(fp, "Copyright (C) 1995" "-2005 Jean-loup Gailly and Mark Adler\n"); fprintf(fp, "Copyright (C) 1995" "-2005 Jean-loup Gailly and Mark Adler\n");
#endif #endif
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+428 -234
View File
@@ -2,7 +2,7 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
@@ -27,7 +27,7 @@
#ifndef __ACC_H_INCLUDED #ifndef __ACC_H_INCLUDED
#define __ACC_H_INCLUDED 1 #define __ACC_H_INCLUDED 1
#define ACC_VERSION 20130916L #define ACC_VERSION 20140107L
#if defined(__CYGWIN32__) && !defined(__CYGWIN__) #if defined(__CYGWIN32__) && !defined(__CYGWIN__)
# define __CYGWIN__ __CYGWIN32__ # define __CYGWIN__ __CYGWIN32__
#endif #endif
@@ -165,12 +165,14 @@
# include <limits.h> # include <limits.h>
#endif #endif
#if 0 #if 0
#define ACC_0xffffL 0xfffful #define ACC_0xffffUL 0xfffful
#define ACC_0xffffffffL 0xfffffffful #define ACC_0xffffffffUL 0xfffffffful
#else #else
#define ACC_0xffffL 65535ul #define ACC_0xffffUL 65535ul
#define ACC_0xffffffffL 4294967295ul #define ACC_0xffffffffUL 4294967295ul
#endif #endif
#define ACC_0xffffL ACC_0xffffUL
#define ACC_0xffffffffL ACC_0xffffffffUL
#if (ACC_0xffffL == ACC_0xffffffffL) #if (ACC_0xffffL == ACC_0xffffffffL)
# error "your preprocessor is broken 1" # error "your preprocessor is broken 1"
#endif #endif
@@ -675,8 +677,8 @@
# else # else
# define ACC_INFO_CCVER "unknown" # define ACC_INFO_CCVER "unknown"
# endif # endif
#elif defined(__IBMC__) #elif defined(__IBMC__) && ((__IBMC__-0) > 0)
# define ACC_CC_IBMC 1 # define ACC_CC_IBMC __IBMC__
# define ACC_INFO_CC "IBM C" # define ACC_INFO_CC "IBM C"
# define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__IBMC__) # define ACC_INFO_CCVER ACC_PP_MACRO_EXPAND(__IBMC__)
#elif defined(__KEIL__) && defined(__C166__) #elif defined(__KEIL__) && defined(__C166__)
@@ -1181,27 +1183,271 @@ extern "C" {
# define __acc_gnuc_extension__ __extension__ # define __acc_gnuc_extension__ __extension__
#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE) #elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
# define __acc_gnuc_extension__ __extension__ # define __acc_gnuc_extension__ __extension__
#elif (ACC_CC_IBMC >= 600)
# define __acc_gnuc_extension__ __extension__
#else #else
#endif
#endif
#if !defined(__acc_gnuc_extension__)
# define __acc_gnuc_extension__ /*empty*/ # define __acc_gnuc_extension__ /*empty*/
#endif #endif
#if !defined(__acc_inline)
#if (ACC_CC_TURBOC && (__TURBOC__ <= 0x0295))
#elif defined(__cplusplus)
# define __acc_inline inline
#elif defined(__STDC_VERSION__) && (__STDC_VERSION__-0 >= 199901L)
# define __acc_inline inline
#elif (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0550))
# define __acc_inline __inline
#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CILLY || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI)
# define __acc_inline __inline__
#elif (ACC_CC_DMC)
# define __acc_inline __inline
#elif (ACC_CC_IBMC >= 600)
# define __acc_inline __inline__
#elif (ACC_CC_INTELC)
# define __acc_inline __inline
#elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x2405))
# define __acc_inline __inline
#elif (ACC_CC_MSC && (_MSC_VER >= 900))
# define __acc_inline __inline
#elif (ACC_CC_SUNPROC >= 0x5100)
# define __acc_inline __inline__
#endif #endif
#if !defined(__acc_ua_volatile) #endif
# define __acc_ua_volatile volatile #if defined(__acc_inline)
# ifndef __acc_HAVE_inline
# define __acc_HAVE_inline 1
# endif
#else
# define __acc_inline /*empty*/
#endif
#if !defined(__acc_forceinline)
#if (ACC_CC_GNUC >= 0x030200ul)
# define __acc_forceinline __inline__ __attribute__((__always_inline__))
#elif (ACC_CC_IBMC >= 700)
# define __acc_forceinline __inline__ __attribute__((__always_inline__))
#elif (ACC_CC_INTELC_MSC && (__INTEL_COMPILER >= 450))
# define __acc_forceinline __forceinline
#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800))
# define __acc_forceinline __inline__ __attribute__((__always_inline__))
#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
# define __acc_forceinline __inline__ __attribute__((__always_inline__))
#elif (ACC_CC_MSC && (_MSC_VER >= 1200))
# define __acc_forceinline __forceinline
#elif (ACC_CC_SUNPROC >= 0x5100)
# define __acc_forceinline __inline__ __attribute__((__always_inline__))
#endif
#endif
#if defined(__acc_forceinline)
# ifndef __acc_HAVE_forceinline
# define __acc_HAVE_forceinline 1
# endif
#else
# define __acc_forceinline __acc_inline
#endif
#if !defined(__acc_noinline)
#if 1 && (ACC_ARCH_I386) && (ACC_CC_GNUC >= 0x040000ul) && (ACC_CC_GNUC < 0x040003ul)
# define __acc_noinline __attribute__((__noinline__,__used__))
#elif (ACC_CC_GNUC >= 0x030200ul)
# define __acc_noinline __attribute__((__noinline__))
#elif (ACC_CC_IBMC >= 700)
# define __acc_noinline __attribute__((__noinline__))
#elif (ACC_CC_INTELC_MSC && (__INTEL_COMPILER >= 600))
# define __acc_noinline __declspec(noinline)
#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800))
# define __acc_noinline __attribute__((__noinline__))
#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
# define __acc_noinline __attribute__((__noinline__))
#elif (ACC_CC_MSC && (_MSC_VER >= 1300))
# define __acc_noinline __declspec(noinline)
#elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x3200) && (ACC_OS_WIN32 || ACC_OS_WIN64))
# if defined(__cplusplus)
# else
# define __acc_noinline __declspec(noinline)
# endif
#elif (ACC_CC_SUNPROC >= 0x5100)
# define __acc_noinline __attribute__((__noinline__))
#endif
#endif
#if defined(__acc_noinline)
# ifndef __acc_HAVE_noinline
# define __acc_HAVE_noinline 1
# endif
#else
# define __acc_noinline /*empty*/
#endif
#if (__acc_HAVE_forceinline || __acc_HAVE_noinline) && !(__acc_HAVE_inline)
# error "unexpected configuration - check your compiler defines"
#endif
#if !defined(__acc_static_inline)
#if (ACC_CC_IBMC)
# define __acc_static_inline __acc_gnuc_extension__ static __acc_inline
#endif
#endif
#if !defined(__acc_static_inline)
# define __acc_static_inline static __acc_inline
#endif
#if !defined(__acc_static_forceinline)
#if (ACC_CC_IBMC)
# define __acc_static_forceinline __acc_gnuc_extension__ static __acc_forceinline
#endif
#endif
#if !defined(__acc_static_forceinline)
# define __acc_static_forceinline static __acc_forceinline
#endif
#if !defined(__acc_static_noinline)
#if (ACC_CC_IBMC)
# define __acc_static_noinline __acc_gnuc_extension__ static __acc_noinline
#endif
#endif
#if !defined(__acc_static_noinline)
# define __acc_static_noinline static __acc_noinline
#endif
#if !defined(__acc_c99_extern_inline)
#if defined(__GNUC_GNU_INLINE__)
# define __acc_c99_extern_inline __acc_inline
#elif defined(__GNUC_STDC_INLINE__)
# define __acc_c99_extern_inline extern __acc_inline
#elif defined(__STDC_VERSION__) && (__STDC_VERSION__-0 >= 199901L)
# define __acc_c99_extern_inline extern __acc_inline
#endif
#if !defined(__acc_c99_extern_inline) && (__acc_HAVE_inline)
# define __acc_c99_extern_inline __acc_inline
#endif
#endif
#if defined(__acc_c99_extern_inline)
# ifndef __acc_HAVE_c99_extern_inline
# define __acc_HAVE_c99_extern_inline 1
# endif
#else
# define __acc_c99_extern_inline /*empty*/
#endif
#if !defined(__acc_may_alias)
#if (ACC_CC_GNUC >= 0x030400ul)
# define __acc_may_alias __attribute__((__may_alias__))
#elif (ACC_CC_CLANG >= 0x020900ul)
# define __acc_may_alias __attribute__((__may_alias__))
#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 1210))
# define __acc_may_alias __attribute__((__may_alias__))
#endif
#endif
#if defined(__acc_may_alias)
# ifndef __acc_HAVE_may_alias
# define __acc_HAVE_may_alias 1
# endif
#else
# define __acc_may_alias /*empty*/
#endif
#if !defined(__acc_noreturn)
#if (ACC_CC_GNUC >= 0x020700ul)
# define __acc_noreturn __attribute__((__noreturn__))
#elif (ACC_CC_IBMC >= 700)
# define __acc_noreturn __attribute__((__noreturn__))
#elif (ACC_CC_INTELC_MSC && (__INTEL_COMPILER >= 450))
# define __acc_noreturn __declspec(noreturn)
#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600))
# define __acc_noreturn __attribute__((__noreturn__))
#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
# define __acc_noreturn __attribute__((__noreturn__))
#elif (ACC_CC_MSC && (_MSC_VER >= 1200))
# define __acc_noreturn __declspec(noreturn)
#endif
#endif
#if defined(__acc_noreturn)
# ifndef __acc_HAVE_noreturn
# define __acc_HAVE_noreturn 1
# endif
#else
# define __acc_noreturn /*empty*/
#endif
#if !defined(__acc_nothrow)
#if (ACC_CC_GNUC >= 0x030300ul)
# define __acc_nothrow __attribute__((__nothrow__))
#elif (ACC_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) && defined(__cplusplus)
# define __acc_nothrow __declspec(nothrow)
#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 900))
# define __acc_nothrow __attribute__((__nothrow__))
#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
# define __acc_nothrow __attribute__((__nothrow__))
#elif (ACC_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus)
# define __acc_nothrow __declspec(nothrow)
#endif
#endif
#if defined(__acc_nothrow)
# ifndef __acc_HAVE_nothrow
# define __acc_HAVE_nothrow 1
# endif
#else
# define __acc_nothrow /*empty*/
#endif
#if !defined(__acc_restrict)
#if (ACC_CC_GNUC >= 0x030400ul)
# define __acc_restrict __restrict__
#elif (ACC_CC_IBMC >= 800) && !defined(__cplusplus)
# define __acc_restrict __restrict__
#elif (ACC_CC_IBMC >= 1210)
# define __acc_restrict __restrict__
#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600))
# define __acc_restrict __restrict__
#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM)
# define __acc_restrict __restrict__
#elif (ACC_CC_MSC && (_MSC_VER >= 1400))
# define __acc_restrict __restrict
#endif
#endif
#if defined(__acc_restrict)
# ifndef __acc_HAVE_restrict
# define __acc_HAVE_restrict 1
# endif
#else
# define __acc_restrict /*empty*/
#endif #endif
#if !defined(__acc_alignof) #if !defined(__acc_alignof)
#if (ACC_CC_ARMCC || ACC_CC_CILLY || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI) #if (ACC_CC_ARMCC || ACC_CC_CILLY || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI)
# define __acc_alignof(e) __alignof__(e) # define __acc_alignof(e) __alignof__(e)
#elif (ACC_CC_IBMC >= 600)
# define __acc_alignof(e) (__acc_gnuc_extension__ __alignof__(e))
#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 700)) #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 700))
# define __acc_alignof(e) __alignof__(e) # define __acc_alignof(e) __alignof__(e)
#elif (ACC_CC_MSC && (_MSC_VER >= 1300)) #elif (ACC_CC_MSC && (_MSC_VER >= 1300))
# define __acc_alignof(e) __alignof(e) # define __acc_alignof(e) __alignof(e)
#elif (ACC_CC_SUNPROC && (ACC_CC_SUNPROC >= 0x5100)) #elif (ACC_CC_SUNPROC >= 0x5100)
# define __acc_alignof(e) __alignof__(e) # define __acc_alignof(e) __alignof__(e)
#endif #endif
#endif #endif
#if defined(__acc_alignof) && !defined(__acc_HAVE_alignof) #if defined(__acc_alignof)
# ifndef __acc_HAVE_alignof
# define __acc_HAVE_alignof 1 # define __acc_HAVE_alignof 1
# endif # endif
#endif
#if !defined(__acc_struct_packed)
#if (ACC_CC_PCC && (ACC_CC_PCC < 0x010100ul))
#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul))
#elif (ACC_CC_CLANG && (ACC_CC_CLANG < 0x020800ul)) && defined(__cplusplus)
#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
#elif (ACC_CC_SUNPROC && (ACC_CC_SUNPROC < 0x5110)) && !defined(__cplusplus)
#elif (ACC_CC_ARMCC || ACC_CC_CILLY || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI || (ACC_CC_SUNPROC >= 0x5100))
# define __acc_struct_packed(s) struct s {
# define __acc_struct_packed_end() } __acc_may_alias __attribute__((__packed__));
#elif (ACC_CC_IBMC >= 700)
# define __acc_struct_packed(s) __acc_gnuc_extension__ struct s {
# define __acc_struct_packed_end() } __acc_may_alias __attribute__((__packed__));
#elif (ACC_CC_INTELC_MSC) || (ACC_CC_MSC && (_MSC_VER >= 1300))
# define __acc_struct_packed(s) __pragma(pack(push,1)) struct s {
# define __acc_struct_packed_end() } __pragma(pack(pop));
#elif (ACC_CC_WATCOMC)
# define __acc_packed_struct(s) _Packed struct s {
# define __acc_packed_struct_end() };
#endif
#endif
#if !defined(__acc_byte_struct)
#if defined(__acc_struct_packed)
# define __acc_byte_struct(s,n) __acc_struct_packed(s) unsigned char a[n]; __acc_struct_packed_end()
#elif (ACC_CC_CLANG || (ACC_CC_SUNPROC >= 0x5100))
# define __acc_byte_struct(s,n) struct s { unsigned char a[n]; } __acc_may_alias __attribute__((__packed__));
#endif
#endif
#if !defined(__acc_struct_align16) && (__acc_HAVE_alignof) #if !defined(__acc_struct_align16) && (__acc_HAVE_alignof)
#if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x030000ul)) #if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x030000ul))
#elif (ACC_CC_CLANG && (ACC_CC_CLANG < 0x020800ul)) && defined(__cplusplus) #elif (ACC_CC_CLANG && (ACC_CC_CLANG < 0x020800ul)) && defined(__cplusplus)
@@ -1213,7 +1459,7 @@ extern "C" {
# define __acc_struct_align32_end() }; # define __acc_struct_align32_end() };
# define __acc_struct_align64(s) struct __declspec(align(64)) s { # define __acc_struct_align64(s) struct __declspec(align(64)) s {
# define __acc_struct_align64_end() }; # define __acc_struct_align64_end() };
#elif (ACC_CC_ARMCC || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE) #elif (ACC_CC_ARMCC || ACC_CC_CLANG || ACC_CC_GNUC || (ACC_CC_IBMC >= 700) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE)
# define __acc_struct_align16(s) struct s { # define __acc_struct_align16(s) struct s {
# define __acc_struct_align16_end() } __attribute__((__aligned__(16))); # define __acc_struct_align16_end() } __attribute__((__aligned__(16)));
# define __acc_struct_align32(s) struct s { # define __acc_struct_align32(s) struct s {
@@ -1232,8 +1478,10 @@ extern "C" {
#endif #endif
#endif #endif
#if defined(__acc_constructor) #if defined(__acc_constructor)
# ifndef __acc_HAVE_constructor
# define __acc_HAVE_constructor 1 # define __acc_HAVE_constructor 1
# endif # endif
#endif
#if !defined(__acc_destructor) #if !defined(__acc_destructor)
#if (ACC_CC_GNUC >= 0x030400ul) #if (ACC_CC_GNUC >= 0x030400ul)
# define __acc_destructor __attribute__((__destructor__,__used__)) # define __acc_destructor __attribute__((__destructor__,__used__))
@@ -1244,175 +1492,20 @@ extern "C" {
#endif #endif
#endif #endif
#if defined(__acc_destructor) #if defined(__acc_destructor)
# ifndef __acc_HAVE_destructor
# define __acc_HAVE_destructor 1 # define __acc_HAVE_destructor 1
# endif # endif
#endif
#if (__acc_HAVE_destructor) && !(__acc_HAVE_constructor) #if (__acc_HAVE_destructor) && !(__acc_HAVE_constructor)
# error "unexpected configuration - check your compiler defines" # error "unexpected configuration - check your compiler defines"
#endif #endif
#if !defined(__acc_inline)
#if (ACC_CC_TURBOC && (__TURBOC__ <= 0x0295))
#elif defined(__cplusplus)
# define __acc_inline inline
#elif (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0550))
# define __acc_inline __inline
#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CILLY || ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_LLVM || ACC_CC_PATHSCALE || ACC_CC_PGI)
# define __acc_inline __inline__
#elif (ACC_CC_DMC)
# define __acc_inline __inline
#elif (ACC_CC_INTELC)
# define __acc_inline __inline
#elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x2405))
# define __acc_inline __inline
#elif (ACC_CC_MSC && (_MSC_VER >= 900))
# define __acc_inline __inline
#elif (ACC_CC_SUNPROC && (ACC_CC_SUNPROC >= 0x5100))
# define __acc_inline __inline__
#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L)
# define __acc_inline inline
#endif
#endif
#if defined(__acc_inline)
# define __acc_HAVE_inline 1
#else
# define __acc_inline /*empty*/
#endif
#if !defined(__acc_forceinline)
#if (ACC_CC_GNUC >= 0x030200ul)
# define __acc_forceinline __inline__ __attribute__((__always_inline__))
#elif (ACC_CC_INTELC_MSC && (__INTEL_COMPILER >= 450))
# define __acc_forceinline __forceinline
#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800))
# define __acc_forceinline __inline__ __attribute__((__always_inline__))
#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
# define __acc_forceinline __inline__ __attribute__((__always_inline__))
#elif (ACC_CC_MSC && (_MSC_VER >= 1200))
# define __acc_forceinline __forceinline
#elif (ACC_CC_SUNPROC && (ACC_CC_SUNPROC >= 0x5100))
# define __acc_forceinline __inline__ __attribute__((__always_inline__))
#endif
#endif
#if defined(__acc_forceinline)
# define __acc_HAVE_forceinline 1
#else
# define __acc_forceinline __acc_inline
#endif
#if !defined(__acc_noinline)
#if 1 && (ACC_ARCH_I386) && (ACC_CC_GNUC >= 0x040000ul) && (ACC_CC_GNUC < 0x040003ul)
# define __acc_noinline __attribute__((__noinline__,__used__))
#elif (ACC_CC_GNUC >= 0x030200ul)
# define __acc_noinline __attribute__((__noinline__))
#elif (ACC_CC_INTELC_MSC && (__INTEL_COMPILER >= 600))
# define __acc_noinline __declspec(noinline)
#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800))
# define __acc_noinline __attribute__((__noinline__))
#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
# define __acc_noinline __attribute__((__noinline__))
#elif (ACC_CC_MSC && (_MSC_VER >= 1300))
# define __acc_noinline __declspec(noinline)
#elif (ACC_CC_MWERKS && (__MWERKS__ >= 0x3200) && (ACC_OS_WIN32 || ACC_OS_WIN64))
# if defined(__cplusplus)
# else
# define __acc_noinline __declspec(noinline)
# endif
#elif (ACC_CC_SUNPROC && (ACC_CC_SUNPROC >= 0x5100))
# define __acc_noinline __attribute__((__noinline__))
#endif
#endif
#if defined(__acc_noinline)
# define __acc_HAVE_noinline 1
#else
# define __acc_noinline /*empty*/
#endif
#if (__acc_HAVE_forceinline || __acc_HAVE_noinline) && !(__acc_HAVE_inline)
# error "unexpected configuration - check your compiler defines"
#endif
#if !defined(__acc_c99_extern_inline)
#if defined(__GNUC_GNU_INLINE__)
# define __acc_c99_extern_inline __acc_inline
#elif defined(__GNUC_STDC_INLINE__)
# define __acc_c99_extern_inline extern __acc_inline
#elif ((__STDC_VERSION__ + 0) >= 199901L)
# define __acc_c99_extern_inline extern __acc_inline
#endif
#if !defined(__acc_c99_extern_inline) && (__acc_HAVE_inline)
# define __acc_c99_extern_inline __acc_inline
#endif
#endif
#if defined(__acc_c99_extern_inline)
# define __acc_HAVE_c99_extern_inline 1
#else
# define __acc_c99_extern_inline /*empty*/
#endif
#if !defined(__acc_may_alias)
#if (ACC_CC_GNUC >= 0x030400ul)
# define __acc_may_alias __attribute__((__may_alias__))
#elif (ACC_CC_CLANG >= 0x020900ul)
# define __acc_may_alias __attribute__((__may_alias__))
#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 1210))
# define __acc_may_alias __attribute__((__may_alias__))
#endif
#endif
#if defined(__acc_may_alias)
# define __acc_HAVE_may_alias 1
#else
# define __acc_may_alias /*empty*/
#endif
#if !defined(__acc_noreturn)
#if (ACC_CC_GNUC >= 0x020700ul)
# define __acc_noreturn __attribute__((__noreturn__))
#elif (ACC_CC_INTELC_MSC && (__INTEL_COMPILER >= 450))
# define __acc_noreturn __declspec(noreturn)
#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600))
# define __acc_noreturn __attribute__((__noreturn__))
#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
# define __acc_noreturn __attribute__((__noreturn__))
#elif (ACC_CC_MSC && (_MSC_VER >= 1200))
# define __acc_noreturn __declspec(noreturn)
#endif
#endif
#if defined(__acc_noreturn)
# define __acc_HAVE_noreturn 1
#else
# define __acc_noreturn /*empty*/
#endif
#if !defined(__acc_nothrow)
#if (ACC_CC_GNUC >= 0x030300ul)
# define __acc_nothrow __attribute__((__nothrow__))
#elif (ACC_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) && defined(__cplusplus)
# define __acc_nothrow __declspec(nothrow)
#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 900))
# define __acc_nothrow __attribute__((__nothrow__))
#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM || ACC_CC_PATHSCALE)
# define __acc_nothrow __attribute__((__nothrow__))
#elif (ACC_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus)
# define __acc_nothrow __declspec(nothrow)
#endif
#endif
#if defined(__acc_nothrow)
# define __acc_HAVE_nothrow 1
#else
# define __acc_nothrow /*empty*/
#endif
#if !defined(__acc_restrict)
#if (ACC_CC_GNUC >= 0x030400ul)
# define __acc_restrict __restrict__
#elif (ACC_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600))
# define __acc_restrict __restrict__
#elif (ACC_CC_ARMCC_GNUC || ACC_CC_CLANG || ACC_CC_LLVM)
# define __acc_restrict __restrict__
#elif (ACC_CC_MSC && (_MSC_VER >= 1400))
# define __acc_restrict __restrict
#endif
#endif
#if defined(__acc_restrict)
# define __acc_HAVE_restrict 1
#else
# define __acc_restrict /*empty*/
#endif
#if !defined(__acc_likely) && !defined(__acc_unlikely) #if !defined(__acc_likely) && !defined(__acc_unlikely)
#if (ACC_CC_GNUC >= 0x030200ul) #if (ACC_CC_GNUC >= 0x030200ul)
# define __acc_likely(e) (__builtin_expect(!!(e),1)) # define __acc_likely(e) (__builtin_expect(!!(e),1))
# define __acc_unlikely(e) (__builtin_expect(!!(e),0)) # define __acc_unlikely(e) (__builtin_expect(!!(e),0))
#elif (ACC_CC_IBMC >= 1010)
# define __acc_likely(e) (__builtin_expect(!!(e),1))
# define __acc_unlikely(e) (__builtin_expect(!!(e),0))
#elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800)) #elif (ACC_CC_INTELC && (__INTEL_COMPILER >= 800))
# define __acc_likely(e) (__builtin_expect(!!(e),1)) # define __acc_likely(e) (__builtin_expect(!!(e),1))
# define __acc_unlikely(e) (__builtin_expect(!!(e),0)) # define __acc_unlikely(e) (__builtin_expect(!!(e),0))
@@ -1422,15 +1515,40 @@ extern "C" {
#endif #endif
#endif #endif
#if defined(__acc_likely) #if defined(__acc_likely)
# ifndef __acc_HAVE_likely
# define __acc_HAVE_likely 1 # define __acc_HAVE_likely 1
# endif
#else #else
# define __acc_likely(e) (e) # define __acc_likely(e) (e)
#endif #endif
#if defined(__acc_unlikely) #if defined(__acc_unlikely)
# ifndef __acc_HAVE_unlikely
# define __acc_HAVE_unlikely 1 # define __acc_HAVE_unlikely 1
# endif
#else #else
# define __acc_unlikely(e) (e) # define __acc_unlikely(e) (e)
#endif #endif
#if !defined(__acc_cte)
#endif
#if defined(__acc_cte)
# ifndef __acc_HAVE_cte
# define __acc_HAVE_cte 1
# endif
#else
# define __acc_cte(e) (e)
#endif
#if !defined(__acc_unreachable)
#if (ACC_CC_GNUC >= 0x040500ul)
# define __acc_unreachable() __builtin_unreachable();
#endif
#endif
#if defined(__acc_unreachable)
# ifndef __acc_HAVE_unreachable
# define __acc_HAVE_unreachable 1
# endif
#else
# define __acc_unreachable(e) /*empty*/
#endif
#if !defined(ACC_UNUSED) #if !defined(ACC_UNUSED)
# if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) # if (ACC_CC_BORLANDC && (__BORLANDC__ >= 0x0600))
# define ACC_UNUSED(var) ((void) &var) # define ACC_UNUSED(var) ((void) &var)
@@ -1520,10 +1638,10 @@ extern "C" {
#if !defined(ACC_BLOCK_BEGIN) #if !defined(ACC_BLOCK_BEGIN)
# if (ACC_CC_MSC) # if (ACC_CC_MSC)
# define ACC_BLOCK_BEGIN do { # define ACC_BLOCK_BEGIN do {
# define ACC_BLOCK_END } while (0,0); # define ACC_BLOCK_END } while (((void)0),0);
# else # else
# define ACC_BLOCK_BEGIN do { # define ACC_BLOCK_BEGIN do {
# define ACC_BLOCK_END } while (0); # define ACC_BLOCK_END } while __acc_cte(0);
# endif # endif
#endif #endif
#ifndef __ACC_CTA_NAME #ifndef __ACC_CTA_NAME
@@ -2083,35 +2201,96 @@ ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
# define ACC_INFO_LIBC "default" # define ACC_INFO_LIBC "default"
#endif #endif
#endif #endif
#if (ACC_ARCH_I386 && (ACC_OS_DOS32 || ACC_OS_WIN32) && (ACC_CC_DMC || ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC))
# define ACC_ASM_SYNTAX_MSC 1
#elif (ACC_OS_WIN64 && (ACC_CC_DMC || ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC))
#elif (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC == 0x011f00ul))
#elif (ACC_ARCH_I386 && (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE))
# define ACC_ASM_SYNTAX_GNUC 1
#elif (ACC_ARCH_AMD64 && (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE))
# define ACC_ASM_SYNTAX_GNUC 1
#elif (ACC_CC_GNUC)
# define ACC_ASM_SYNTAX_GNUC 1
#endif
#if (ACC_ASM_SYNTAX_GNUC)
#if (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
# define __ACC_ASM_CLOBBER "ax"
# define __ACC_ASM_CLOBBER_LIST_CC /*empty*/
# define __ACC_ASM_CLOBBER_LIST_CC_MEMORY /*empty*/
# define __ACC_ASM_CLOBBER_LIST_EMPTY /*empty*/
#elif (ACC_CC_INTELC && (__INTEL_COMPILER < 1000))
# define __ACC_ASM_CLOBBER "memory"
# define __ACC_ASM_CLOBBER_LIST_CC /*empty*/
# define __ACC_ASM_CLOBBER_LIST_CC_MEMORY : "memory"
# define __ACC_ASM_CLOBBER_LIST_EMPTY /*empty*/
#else
# define __ACC_ASM_CLOBBER "cc", "memory"
# define __ACC_ASM_CLOBBER_LIST_CC : "cc"
# define __ACC_ASM_CLOBBER_LIST_CC_MEMORY : "cc", "memory"
# define __ACC_ASM_CLOBBER_LIST_EMPTY /*empty*/
#endif
#endif
#if (ACC_ARCH_ALPHA) #if (ACC_ARCH_ALPHA)
# define ACC_OPT_AVOID_UINT_INDEX 1 # define ACC_OPT_AVOID_UINT_INDEX 1
#elif (ACC_ARCH_AMD64) #elif (ACC_ARCH_AMD64)
# define ACC_OPT_AVOID_INT_INDEX 1 # define ACC_OPT_AVOID_INT_INDEX 1
# define ACC_OPT_AVOID_UINT_INDEX 1 # define ACC_OPT_AVOID_UINT_INDEX 1
# ifndef ACC_OPT_UNALIGNED16
# define ACC_OPT_UNALIGNED16 1 # define ACC_OPT_UNALIGNED16 1
# define ACC_OPT_UNALIGNED32 1 # endif
# define ACC_OPT_UNALIGNED64 1 # ifndef ACC_OPT_UNALIGNED32
#elif (ACC_ARCH_ARM)
# if defined(__ARM_FEATURE_UNALIGNED)
# define ACC_OPT_UNALIGNED16 1
# define ACC_OPT_UNALIGNED32 1
# elif defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM+0) >= 7)
# define ACC_OPT_UNALIGNED16 1
# define ACC_OPT_UNALIGNED32 1
# elif defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM+0) >= 6) && !defined(__TARGET_PROFILE_M)
# define ACC_OPT_UNALIGNED16 1
# define ACC_OPT_UNALIGNED32 1 # define ACC_OPT_UNALIGNED32 1
# endif # endif
#elif (ACC_ARCH_ARM64) # ifndef ACC_OPT_UNALIGNED64
# define ACC_OPT_UNALIGNED16 1
# define ACC_OPT_UNALIGNED32 1
# define ACC_OPT_UNALIGNED64 1 # define ACC_OPT_UNALIGNED64 1
# endif
#elif (ACC_ARCH_ARM)
# if defined(__ARM_FEATURE_UNALIGNED)
# ifndef ACC_OPT_UNALIGNED16
# define ACC_OPT_UNALIGNED16 1
# endif
# ifndef ACC_OPT_UNALIGNED32
# define ACC_OPT_UNALIGNED32 1
# endif
# elif defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM+0) >= 7)
# ifndef ACC_OPT_UNALIGNED16
# define ACC_OPT_UNALIGNED16 1
# endif
# ifndef ACC_OPT_UNALIGNED32
# define ACC_OPT_UNALIGNED32 1
# endif
# elif defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM+0) >= 6) && !defined(__TARGET_PROFILE_M)
# ifndef ACC_OPT_UNALIGNED16
# define ACC_OPT_UNALIGNED16 1
# endif
# ifndef ACC_OPT_UNALIGNED32
# define ACC_OPT_UNALIGNED32 1
# endif
# endif
#elif (ACC_ARCH_ARM64)
# ifndef ACC_OPT_UNALIGNED16
# define ACC_OPT_UNALIGNED16 1
# endif
# ifndef ACC_OPT_UNALIGNED32
# define ACC_OPT_UNALIGNED32 1
# endif
# ifndef ACC_OPT_UNALIGNED64
# define ACC_OPT_UNALIGNED64 1
# endif
#elif (ACC_ARCH_CRIS) #elif (ACC_ARCH_CRIS)
# ifndef ACC_OPT_UNALIGNED16
# define ACC_OPT_UNALIGNED16 1 # define ACC_OPT_UNALIGNED16 1
# endif
# ifndef ACC_OPT_UNALIGNED32
# define ACC_OPT_UNALIGNED32 1 # define ACC_OPT_UNALIGNED32 1
# endif
#elif (ACC_ARCH_I386) #elif (ACC_ARCH_I386)
# ifndef ACC_OPT_UNALIGNED16
# define ACC_OPT_UNALIGNED16 1 # define ACC_OPT_UNALIGNED16 1
# endif
# ifndef ACC_OPT_UNALIGNED32
# define ACC_OPT_UNALIGNED32 1 # define ACC_OPT_UNALIGNED32 1
# endif
#elif (ACC_ARCH_IA64) #elif (ACC_ARCH_IA64)
# define ACC_OPT_AVOID_INT_INDEX 1 # define ACC_OPT_AVOID_INT_INDEX 1
# define ACC_OPT_AVOID_UINT_INDEX 1 # define ACC_OPT_AVOID_UINT_INDEX 1
@@ -2120,27 +2299,43 @@ ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
# define ACC_OPT_PREFER_POSTINC 1 # define ACC_OPT_PREFER_POSTINC 1
# define ACC_OPT_PREFER_PREDEC 1 # define ACC_OPT_PREFER_PREDEC 1
# if defined(__mc68020__) && !defined(__mcoldfire__) # if defined(__mc68020__) && !defined(__mcoldfire__)
# ifndef ACC_OPT_UNALIGNED16
# define ACC_OPT_UNALIGNED16 1 # define ACC_OPT_UNALIGNED16 1
# endif
# ifndef ACC_OPT_UNALIGNED32
# define ACC_OPT_UNALIGNED32 1 # define ACC_OPT_UNALIGNED32 1
# endif # endif
# endif
#elif (ACC_ARCH_MIPS) #elif (ACC_ARCH_MIPS)
# define ACC_OPT_AVOID_UINT_INDEX 1 # define ACC_OPT_AVOID_UINT_INDEX 1
#elif (ACC_ARCH_POWERPC) #elif (ACC_ARCH_POWERPC)
# define ACC_OPT_PREFER_PREINC 1 # define ACC_OPT_PREFER_PREINC 1
# define ACC_OPT_PREFER_PREDEC 1 # define ACC_OPT_PREFER_PREDEC 1
# if (ACC_ABI_BIG_ENDIAN) # if (ACC_ABI_BIG_ENDIAN)
# ifndef ACC_OPT_UNALIGNED16
# define ACC_OPT_UNALIGNED16 1 # define ACC_OPT_UNALIGNED16 1
# endif
# ifndef ACC_OPT_UNALIGNED32
# define ACC_OPT_UNALIGNED32 1 # define ACC_OPT_UNALIGNED32 1
# endif
# if (ACC_WORDSIZE == 8) # if (ACC_WORDSIZE == 8)
# ifndef ACC_OPT_UNALIGNED64
# define ACC_OPT_UNALIGNED64 1 # define ACC_OPT_UNALIGNED64 1
# endif # endif
# endif # endif
# endif
#elif (ACC_ARCH_S390) #elif (ACC_ARCH_S390)
# ifndef ACC_OPT_UNALIGNED16
# define ACC_OPT_UNALIGNED16 1 # define ACC_OPT_UNALIGNED16 1
# endif
# ifndef ACC_OPT_UNALIGNED32
# define ACC_OPT_UNALIGNED32 1 # define ACC_OPT_UNALIGNED32 1
# endif
# if (ACC_WORDSIZE == 8) # if (ACC_WORDSIZE == 8)
# ifndef ACC_OPT_UNALIGNED64
# define ACC_OPT_UNALIGNED64 1 # define ACC_OPT_UNALIGNED64 1
# endif # endif
# endif
#elif (ACC_ARCH_SH) #elif (ACC_ARCH_SH)
# define ACC_OPT_PREFER_POSTINC 1 # define ACC_OPT_PREFER_POSTINC 1
# define ACC_OPT_PREFER_PREDEC 1 # define ACC_OPT_PREFER_PREDEC 1
@@ -2156,6 +2351,9 @@ ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
# undef ACC_ASM_SYNTAX_MSC # undef ACC_ASM_SYNTAX_MSC
# undef ACC_ASM_SYNTAX_GNUC # undef ACC_ASM_SYNTAX_GNUC
# undef __ACC_ASM_CLOBBER # undef __ACC_ASM_CLOBBER
# undef __ACC_ASM_CLOBBER_LIST_CC
# undef __ACC_ASM_CLOBBER_LIST_CC_MEMORY
# undef __ACC_ASM_CLOBBER_LIST_EMPTY
#endif #endif
#ifndef ACC_CFG_NO_UNALIGNED #ifndef ACC_CFG_NO_UNALIGNED
#if (ACC_ABI_NEUTRAL_ENDIAN) || (ACC_ARCH_GENERIC) #if (ACC_ABI_NEUTRAL_ENDIAN) || (ACC_ARCH_GENERIC)
@@ -2167,26 +2365,6 @@ ACC_COMPILE_TIME_ASSERT_HEADER(ACC_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t))
# undef ACC_OPT_UNALIGNED32 # undef ACC_OPT_UNALIGNED32
# undef ACC_OPT_UNALIGNED64 # undef ACC_OPT_UNALIGNED64
#endif #endif
#if (ACC_ARCH_I386 && (ACC_OS_DOS32 || ACC_OS_WIN32) && (ACC_CC_DMC || ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC))
# define ACC_ASM_SYNTAX_MSC 1
#elif (ACC_OS_WIN64 && (ACC_CC_DMC || ACC_CC_INTELC || ACC_CC_MSC || ACC_CC_PELLESC))
#elif (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC == 0x011f00ul))
#elif (ACC_ARCH_I386 && (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE))
# define ACC_ASM_SYNTAX_GNUC 1
#elif (ACC_ARCH_AMD64 && (ACC_CC_CLANG || ACC_CC_GNUC || ACC_CC_INTELC || ACC_CC_PATHSCALE))
# define ACC_ASM_SYNTAX_GNUC 1
#elif (ACC_CC_GNUC)
# define ACC_ASM_SYNTAX_GNUC 1
#endif
#if (ACC_ASM_SYNTAX_GNUC)
#if (ACC_ARCH_I386 && ACC_CC_GNUC && (ACC_CC_GNUC < 0x020000ul))
# define __ACC_ASM_CLOBBER "ax"
#elif (ACC_CC_INTELC)
# define __ACC_ASM_CLOBBER "memory"
#else
# define __ACC_ASM_CLOBBER "cc", "memory"
#endif
#endif
#if defined(__ACC_INFOSTR_MM) #if defined(__ACC_INFOSTR_MM)
#elif (ACC_MM_FLAT) && (defined(__ACC_INFOSTR_PM) || defined(ACC_INFO_ABI_PM)) #elif (ACC_MM_FLAT) && (defined(__ACC_INFOSTR_PM) || defined(ACC_INFO_ABI_PM))
# define __ACC_INFOSTR_MM "" # define __ACC_INFOSTR_MM ""
@@ -2450,7 +2628,7 @@ __acc_gnuc_extension__ typedef unsigned long long acc_ullong_t__;
#endif #endif
#if !defined(acc_word_t) #if !defined(acc_word_t)
#if defined(ACC_WORDSIZE) && (ACC_WORDSIZE+0 > 0) #if defined(ACC_WORDSIZE) && (ACC_WORDSIZE+0 > 0)
#if (ACC_WORDSIZE == ACC_SIZEOF_ACC_INTPTR_T) && !defined(__ACC_INTPTR_T_IS_POINTER) #if (ACC_WORDSIZE == ACC_SIZEOF_ACC_INTPTR_T) && !(__ACC_INTPTR_T_IS_POINTER)
# define acc_word_t acc_uintptr_t # define acc_word_t acc_uintptr_t
# define acc_sword_t acc_intptr_t # define acc_sword_t acc_intptr_t
# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INTPTR_T # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INTPTR_T
@@ -2487,6 +2665,10 @@ __acc_gnuc_extension__ typedef unsigned long long acc_ullong_t__;
#endif #endif
#endif #endif
#endif #endif
#if 1 && defined(acc_word_t)
ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_word_t) == ACC_WORDSIZE)
ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_sword_t) == ACC_WORDSIZE)
#endif
#if 1 #if 1
#define acc_int8_t signed char #define acc_int8_t signed char
#define acc_uint8_t unsigned char #define acc_uint8_t unsigned char
@@ -3227,6 +3409,9 @@ typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
} }
#endif #endif
# if !(ACC_CFG_SKIP_ACC_UA) # if !(ACC_CFG_SKIP_ACC_UA)
#if !defined(__acc_ua_volatile)
# define __acc_ua_volatile volatile
#endif
#if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul)) #if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul))
#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus) #elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
#elif (ACC_CC_INTELC) && defined(_WIN32) #elif (ACC_CC_INTELC) && defined(_WIN32)
@@ -3259,7 +3444,7 @@ typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
#if (__acc_HAVE_forceinline) #if (__acc_HAVE_forceinline)
#if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_ASM_SYNTAX_GNUC) && (ACC_CC_GNUC) #if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_ASM_SYNTAX_GNUC) && (ACC_CC_GNUC)
#if !defined(ACC_UA_GET_LE16) #if !defined(ACC_UA_GET_LE16)
static __acc_forceinline __acc_static_forceinline
#if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM) #if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
__attribute__((__unused__)) __attribute__((__unused__))
#endif #endif
@@ -3272,7 +3457,7 @@ unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp) {
#define ACC_UA_GET_LE16(p) __ACC_UA_GET_LE16(p) #define ACC_UA_GET_LE16(p) __ACC_UA_GET_LE16(p)
#endif #endif
#if !defined(ACC_UA_SET_LE16) #if !defined(ACC_UA_SET_LE16)
static __acc_forceinline __acc_static_forceinline
#if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM) #if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
__attribute__((__unused__)) __attribute__((__unused__))
#endif #endif
@@ -3301,7 +3486,7 @@ void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v) {
#if (__acc_HAVE_forceinline) #if (__acc_HAVE_forceinline)
#if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_ASM_SYNTAX_GNUC) && (ACC_CC_GNUC) #if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_ASM_SYNTAX_GNUC) && (ACC_CC_GNUC)
#if !defined(ACC_UA_GET_LE32) #if !defined(ACC_UA_GET_LE32)
static __acc_forceinline __acc_static_forceinline
#if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM) #if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
__attribute__((__unused__)) __attribute__((__unused__))
#endif #endif
@@ -3314,7 +3499,7 @@ unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp) {
#define ACC_UA_GET_LE32(p) __ACC_UA_GET_LE32(p) #define ACC_UA_GET_LE32(p) __ACC_UA_GET_LE32(p)
#endif #endif
#if !defined(ACC_UA_SET_LE32) #if !defined(ACC_UA_SET_LE32)
static __acc_forceinline __acc_static_forceinline
#if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM) #if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
__attribute__((__unused__)) __attribute__((__unused__))
#endif #endif
@@ -3571,7 +3756,7 @@ __acc_gnuc_extension__ typedef unsigned long long acc_ullong_t__;
#endif #endif
#if !defined(acc_word_t) #if !defined(acc_word_t)
#if defined(ACC_WORDSIZE) && (ACC_WORDSIZE+0 > 0) #if defined(ACC_WORDSIZE) && (ACC_WORDSIZE+0 > 0)
#if (ACC_WORDSIZE == ACC_SIZEOF_ACC_INTPTR_T) && !defined(__ACC_INTPTR_T_IS_POINTER) #if (ACC_WORDSIZE == ACC_SIZEOF_ACC_INTPTR_T) && !(__ACC_INTPTR_T_IS_POINTER)
# define acc_word_t acc_uintptr_t # define acc_word_t acc_uintptr_t
# define acc_sword_t acc_intptr_t # define acc_sword_t acc_intptr_t
# define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INTPTR_T # define ACC_SIZEOF_ACC_WORD_T ACC_SIZEOF_ACC_INTPTR_T
@@ -3608,6 +3793,10 @@ __acc_gnuc_extension__ typedef unsigned long long acc_ullong_t__;
#endif #endif
#endif #endif
#endif #endif
#if 1 && defined(acc_word_t)
ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_word_t) == ACC_WORDSIZE)
ACC_COMPILE_TIME_ASSERT_HEADER(sizeof(acc_sword_t) == ACC_WORDSIZE)
#endif
#if 1 #if 1
#define acc_int8_t signed char #define acc_int8_t signed char
#define acc_uint8_t unsigned char #define acc_uint8_t unsigned char
@@ -3738,6 +3927,9 @@ typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
} }
#endif #endif
# if !(ACC_CFG_SKIP_ACC_UA) # if !(ACC_CFG_SKIP_ACC_UA)
#if !defined(__acc_ua_volatile)
# define __acc_ua_volatile volatile
#endif
#if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul)) #if (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020700ul))
#elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus) #elif (ACC_CC_GNUC && (ACC_CC_GNUC < 0x020800ul)) && defined(__cplusplus)
#elif (ACC_CC_INTELC) && defined(_WIN32) #elif (ACC_CC_INTELC) && defined(_WIN32)
@@ -3770,7 +3962,7 @@ typedef void (__acc_cdecl_sighandler *acc_sighandler_t)(acc_signo_t);
#if (__acc_HAVE_forceinline) #if (__acc_HAVE_forceinline)
#if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_ASM_SYNTAX_GNUC) && (ACC_CC_GNUC) #if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_ASM_SYNTAX_GNUC) && (ACC_CC_GNUC)
#if !defined(ACC_UA_GET_LE16) #if !defined(ACC_UA_GET_LE16)
static __acc_forceinline __acc_static_forceinline
#if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM) #if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
__attribute__((__unused__)) __attribute__((__unused__))
#endif #endif
@@ -3783,7 +3975,7 @@ unsigned long __ACC_UA_GET_LE16(__acc_ua_volatile const void* pp) {
#define ACC_UA_GET_LE16(p) __ACC_UA_GET_LE16(p) #define ACC_UA_GET_LE16(p) __ACC_UA_GET_LE16(p)
#endif #endif
#if !defined(ACC_UA_SET_LE16) #if !defined(ACC_UA_SET_LE16)
static __acc_forceinline __acc_static_forceinline
#if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM) #if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
__attribute__((__unused__)) __attribute__((__unused__))
#endif #endif
@@ -3812,7 +4004,7 @@ void __ACC_UA_SET_LE16(__acc_ua_volatile void* pp, unsigned long v) {
#if (__acc_HAVE_forceinline) #if (__acc_HAVE_forceinline)
#if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_ASM_SYNTAX_GNUC) && (ACC_CC_GNUC) #if (ACC_ARCH_POWERPC && ACC_ABI_BIG_ENDIAN) && (ACC_ASM_SYNTAX_GNUC) && (ACC_CC_GNUC)
#if !defined(ACC_UA_GET_LE32) #if !defined(ACC_UA_GET_LE32)
static __acc_forceinline __acc_static_forceinline
#if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM) #if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
__attribute__((__unused__)) __attribute__((__unused__))
#endif #endif
@@ -3825,7 +4017,7 @@ unsigned long __ACC_UA_GET_LE32(__acc_ua_volatile const void* pp) {
#define ACC_UA_GET_LE32(p) __ACC_UA_GET_LE32(p) #define ACC_UA_GET_LE32(p) __ACC_UA_GET_LE32(p)
#endif #endif
#if !defined(ACC_UA_SET_LE32) #if !defined(ACC_UA_SET_LE32)
static __acc_forceinline __acc_static_forceinline
#if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM) #if (ACC_CC_CLANG || (ACC_CC_GNUC >= 0x020800ul) || ACC_CC_INTELC_GNUC || ACC_CC_LLVM)
__attribute__((__unused__)) __attribute__((__unused__))
#endif #endif
@@ -5407,9 +5599,11 @@ void* volatile acc_vget_ptr__ = (void *) 0;
#ifndef __ACCLIB_VGET_BODY #ifndef __ACCLIB_VGET_BODY
#define __ACCLIB_VGET_BODY(T) \ #define __ACCLIB_VGET_BODY(T) \
if __acc_unlikely(acc_vget_ptr__) { \ if __acc_unlikely(acc_vget_ptr__) { \
* (T *) acc_vget_ptr__ = v; \ typedef T __acc_may_alias TT; \
* (int *) acc_vget_ptr__ = expr; \ unsigned char e; expr &= 255; e = (unsigned char) expr; \
v = * (T *) acc_vget_ptr__; \ * (TT *) acc_vget_ptr__ = v; \
* (unsigned char *) acc_vget_ptr__ = e; \
v = * (TT *) acc_vget_ptr__; \
} \ } \
return v; return v;
#endif #endif
@@ -6300,10 +6494,10 @@ ACCLIB_PUBLIC(long, acc_safe_hwrite) (int fd, const acc_hvoid_p buf, long size)
#ifndef acc_pclock_syscall_clock_gettime #ifndef acc_pclock_syscall_clock_gettime
#define acc_pclock_syscall_clock_gettime acc_pclock_syscall_clock_gettime #define acc_pclock_syscall_clock_gettime acc_pclock_syscall_clock_gettime
#endif #endif
static __acc_noinline long acc_pclock_syscall_clock_gettime(long clockid, struct timespec *ts) __acc_static_noinline long acc_pclock_syscall_clock_gettime(long clockid, struct timespec *ts)
{ {
unsigned long r = 228; unsigned long r = 228;
__asm__ __volatile__("syscall\n" : "=a" (r) : "0" (r), "D" (clockid), "S" (ts) : __ACC_ASM_CLOBBER); __asm__ __volatile__("syscall\n" : "=a" (r) : "0" (r), "D" (clockid), "S" (ts) __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
return (long) r; return (long) r;
} }
#endif #endif
@@ -6311,10 +6505,10 @@ static __acc_noinline long acc_pclock_syscall_clock_gettime(long clockid, struct
#ifndef acc_pclock_syscall_clock_gettime #ifndef acc_pclock_syscall_clock_gettime
#define acc_pclock_syscall_clock_gettime acc_pclock_syscall_clock_gettime #define acc_pclock_syscall_clock_gettime acc_pclock_syscall_clock_gettime
#endif #endif
static __acc_noinline long acc_pclock_syscall_clock_gettime(long clockid, struct timespec *ts) __acc_static_noinline long acc_pclock_syscall_clock_gettime(long clockid, struct timespec *ts)
{ {
unsigned long r = 265; unsigned long r = 265;
__asm__ __volatile__("pushl %%ebx\n pushl %%edx\n popl %%ebx\n int $0x80\n popl %%ebx\n" : "=a" (r) : "0" (r), "d" (clockid), "c" (ts) : __ACC_ASM_CLOBBER); __asm__ __volatile__("pushl %%ebx\n pushl %%edx\n popl %%ebx\n int $0x80\n popl %%ebx\n" : "=a" (r) : "0" (r), "d" (clockid), "c" (ts) __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
return (long) r; return (long) r;
} }
#endif #endif
@@ -6945,7 +7139,7 @@ ACCLIB_PUBLIC_NOINLINE(void, acc_debug_break) (void)
#elif (ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H) #elif (ACC_OS_WIN64) && (ACC_HAVE_WINDOWS_H)
DebugBreak(); DebugBreak();
#elif (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC) #elif (ACC_ARCH_AMD64 || ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
__asm__ __volatile__("int $3\n" : : : __ACC_ASM_CLOBBER); __asm__ __volatile__("int $3\n" : : __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
#elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC) #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
__asm { int 3 } __asm { int 3 }
#elif (ACC_OS_WIN32) && (ACC_HAVE_WINDOWS_H) #elif (ACC_OS_WIN32) && (ACC_HAVE_WINDOWS_H)
@@ -6966,7 +7160,7 @@ ACCLIB_PUBLIC_NOINLINE(int, acc_debug_align_check_query) (void)
# else # else
size_t r = 0; size_t r = 0;
# endif # endif
__asm__ __volatile__("pushf\n pop %0\n" : "=a" (r) : : __ACC_ASM_CLOBBER); __asm__ __volatile__("pushf\n pop %0\n" : "=a" (r) : __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
return (int)(r >> 18) & 1; return (int)(r >> 18) & 1;
#elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC) #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
unsigned long r; unsigned long r;
@@ -6984,16 +7178,16 @@ ACCLIB_PUBLIC_NOINLINE(int, acc_debug_align_check_enable) (int v)
{ {
#if (ACC_ARCH_AMD64) && (ACC_ASM_SYNTAX_GNUC) #if (ACC_ARCH_AMD64) && (ACC_ASM_SYNTAX_GNUC)
if (v) { if (v) {
__asm__ __volatile__("pushf\n orl $262144,(%%rsp)\n popf\n" : : : __ACC_ASM_CLOBBER); __asm__ __volatile__("pushf\n orl $262144,(%%rsp)\n popf\n" : : __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
} else { } else {
__asm__ __volatile__("pushf\n andl $-262145,(%%rsp)\n popf\n" : : : __ACC_ASM_CLOBBER); __asm__ __volatile__("pushf\n andl $-262145,(%%rsp)\n popf\n" : : __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
} }
return 0; return 0;
#elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC) #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_GNUC)
if (v) { if (v) {
__asm__ __volatile__("pushf\n orl $262144,(%%esp)\n popf\n" : : : __ACC_ASM_CLOBBER); __asm__ __volatile__("pushf\n orl $262144,(%%esp)\n popf\n" : : __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
} else { } else {
__asm__ __volatile__("pushf\n andl $-262145,(%%esp)\n popf\n" : : : __ACC_ASM_CLOBBER); __asm__ __volatile__("pushf\n andl $-262145,(%%esp)\n popf\n" : : __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
} }
return 0; return 0;
#elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC) #elif (ACC_ARCH_I386) && (ACC_ASM_SYNTAX_MSC)
@@ -7034,9 +7228,9 @@ ACCLIB_PUBLIC_NOINLINE(unsigned, acc_debug_running_on_valgrind) (void)
size_t r = 0; size_t r = 0;
a[0] = 0x1001; a[1] = 0; a[2] = 0; a[3] = 0; a[4] = 0; a[5] = 0; a[0] = 0x1001; a[1] = 0; a[2] = 0; a[3] = 0; a[4] = 0; a[5] = 0;
# if (ACC_ARCH_AMD64) # if (ACC_ARCH_AMD64)
__asm__ __volatile__(".byte 0x48,0xc1,0xc7,0x03,0x48,0xc1,0xc7,0x0d,0x48,0xc1,0xc7,0x3d,0x48,0xc1,0xc7,0x33,0x48,0x87,0xdb\n" : "=d" (r) : "a" (&a[0]), "d" (r) : __ACC_ASM_CLOBBER); __asm__ __volatile__(".byte 0x48,0xc1,0xc7,0x03,0x48,0xc1,0xc7,0x0d,0x48,0xc1,0xc7,0x3d,0x48,0xc1,0xc7,0x33,0x48,0x87,0xdb\n" : "=d" (r) : "a" (&a[0]), "d" (r) __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
# elif (ACC_ARCH_I386) # elif (ACC_ARCH_I386)
__asm__ __volatile__(".byte 0xc1,0xc7,0x03,0xc1,0xc7,0x0d,0xc1,0xc7,0x1d,0xc1,0xc7,0x13,0x87,0xdb\n" : "=d" (r) : "a" (&a[0]), "d" (r) : __ACC_ASM_CLOBBER); __asm__ __volatile__(".byte 0xc1,0xc7,0x03,0xc1,0xc7,0x0d,0xc1,0xc7,0x1d,0xc1,0xc7,0x13,0x87,0xdb\n" : "=d" (r) : "a" (&a[0]), "d" (r) __ACC_ASM_CLOBBER_LIST_CC_MEMORY);
# endif # endif
return (unsigned) r; return (unsigned) r;
#else #else
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
Copyright (C) 2000-2013 John F. Reiser Copyright (C) 2000-2014 John F. Reiser
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
Copyright (C) 2000-2013 John F. Reiser Copyright (C) 2000-2014 John F. Reiser
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
Copyright (C) 2001-2013 John F. Reiser Copyright (C) 2001-2014 John F. Reiser
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
Copyright (C) 2000-2013 John F. Reiser Copyright (C) 2000-2014 John F. Reiser
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
Copyright (C) 2000-2013 John F. Reiser Copyright (C) 2000-2014 John F. Reiser
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
Copyright (C) 2000-2013 John F. Reiser Copyright (C) 2000-2014 John F. Reiser
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
Copyright (C) 2000-2013 John F. Reiser Copyright (C) 2000-2014 John F. Reiser
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+1 -1
View File
@@ -2,7 +2,7 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 2004-2013 John Reiser Copyright (C) 2004-2014 John Reiser
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+1 -1
View File
@@ -2,7 +2,7 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 2007-2013 John F. Reiser Copyright (C) 2007-2014 John F. Reiser
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
Copyright (C) 2002-2013 Jens Medoch Copyright (C) 2002-2014 Jens Medoch
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
Copyright (C) 2002-2013 Jens Medoch Copyright (C) 2002-2014 Jens Medoch
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+3 -3
View File
@@ -2,9 +2,9 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 2004-2013 John Reiser Copyright (C) 2004-2014 John Reiser
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+20 -13
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
@@ -243,12 +243,12 @@ class ImportLinker : public ElfLinkerAMD64
unsigned len = 1 + 2 * strlen(dll) + 1 + 2 * strlen(proc) + 1 + 1; unsigned len = 1 + 2 * strlen(dll) + 1 + 2 * strlen(proc) + 1 + 1;
tstr dlln(name_for_dll(dll, first_char)); tstr dlln(name_for_dll(dll, first_char));
char *procn = new char[len]; char *procn = new char[len];
snprintf(procn, len - 1, "%s%c", (const char*) dlln, separator); upx_snprintf(procn, len - 1, "%s%c", (const char*) dlln, separator);
encode_name(proc, procn + strlen(procn)); encode_name(proc, procn + strlen(procn));
return procn; return procn;
} }
static char zeros[sizeof(import_desc)]; static const char zeros[sizeof(import_desc)];
enum { enum {
// the order of identifiers is very important below!! // the order of identifiers is very important below!!
@@ -347,15 +347,18 @@ public:
template <typename C> template <typename C>
void add(const C *dll, unsigned ordinal) void add(const C *dll, unsigned ordinal)
{ {
ACC_COMPILE_TIME_ASSERT(sizeof(C) == 1) // "char" or "unsigned char"
assert(ordinal > 0 && ordinal < 0x10000); assert(ordinal > 0 && ordinal < 0x10000);
char ord[20]; char ord[1+5+1];
snprintf(ord, sizeof(ord), "%c%05u", ordinal_id, ordinal); upx_snprintf(ord, sizeof(ord), "%c%05u", ordinal_id, ordinal);
add((const char*) dll, ord, ordinal); add((const char*) dll, ord, ordinal);
} }
template <typename C1, typename C2> template <typename C1, typename C2>
void add(const C1 *dll, const C2 *proc) void add(const C1 *dll, const C2 *proc)
{ {
ACC_COMPILE_TIME_ASSERT(sizeof(C1) == 1) // "char" or "unsigned char"
ACC_COMPILE_TIME_ASSERT(sizeof(C2) == 1) // "char" or "unsigned char"
assert(proc); assert(proc);
add((const char*) dll, (const char*) proc, 0); add((const char*) dll, (const char*) proc, 0);
} }
@@ -392,6 +395,8 @@ public:
template <typename C1, typename C2> template <typename C1, typename C2>
upx_uint64_t getAddress(const C1 *dll, const C2 *proc) const upx_uint64_t getAddress(const C1 *dll, const C2 *proc) const
{ {
ACC_COMPILE_TIME_ASSERT(sizeof(C1) == 1) // "char" or "unsigned char"
ACC_COMPILE_TIME_ASSERT(sizeof(C2) == 1) // "char" or "unsigned char"
const Section *s = getThunk((const char*) dll, (const char*) proc, const Section *s = getThunk((const char*) dll, (const char*) proc,
thunk_separator_first); thunk_separator_first);
if (s == NULL && (s = getThunk((const char*) dll,(const char*) proc, if (s == NULL && (s = getThunk((const char*) dll,(const char*) proc,
@@ -400,12 +405,13 @@ public:
return s->offset; return s->offset;
} }
template <typename C1> template <typename C>
upx_uint64_t getAddress(const C1 *dll, unsigned ordinal) const upx_uint64_t getAddress(const C *dll, unsigned ordinal) const
{ {
ACC_COMPILE_TIME_ASSERT(sizeof(C) == 1) // "char" or "unsigned char"
assert(ordinal > 0 && ordinal < 0x10000); assert(ordinal > 0 && ordinal < 0x10000);
char ord[20]; char ord[1+5+1];
snprintf(ord, sizeof(ord), "%c%05u", ordinal_id, ordinal); upx_snprintf(ord, sizeof(ord), "%c%05u", ordinal_id, ordinal);
const Section *s = getThunk((const char*) dll, ord, thunk_separator_first); const Section *s = getThunk((const char*) dll, ord, thunk_separator_first);
if (s == NULL if (s == NULL
@@ -414,14 +420,15 @@ public:
return s->offset; return s->offset;
} }
template <typename C1> template <typename C>
upx_uint64_t getAddress(const C1 *dll) const upx_uint64_t getAddress(const C *dll) const
{ {
ACC_COMPILE_TIME_ASSERT(sizeof(C) == 1) // "char" or "unsigned char"
tstr sdll(name_for_dll((const char*) dll, dll_name_id)); tstr sdll(name_for_dll((const char*) dll, dll_name_id));
return findSection(sdll, true)->offset; return findSection(sdll, true)->offset;
} }
}; };
char ImportLinker::zeros[sizeof(import_desc)]; const char ImportLinker::zeros[sizeof(import_desc)] = { 0 };
ImportLinker ilinker(8); ImportLinker ilinker(8);
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them
+2 -2
View File
@@ -2,8 +2,8 @@
This file is part of the UPX executable compressor. This file is part of the UPX executable compressor.
Copyright (C) 1996-2013 Markus Franz Xaver Johannes Oberhumer Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer
Copyright (C) 1996-2013 Laszlo Molnar Copyright (C) 1996-2014 Laszlo Molnar
All Rights Reserved. All Rights Reserved.
UPX and the UCL library are free software; you can redistribute them UPX and the UCL library are free software; you can redistribute them

Some files were not shown because too many files have changed in this diff Show More