$57 GRAYBYTE WORDPRESS FILE MANAGER $53

SERVER : vnpttt-amd7f72-h1.vietnix.vn #1 SMP Fri May 24 12:42:50 UTC 2024
SERVER IP : 103.200.23.149 | ADMIN IP 216.73.216.22
OPTIONS : CRL = ON | WGT = ON | SDO = OFF | PKEX = OFF
DEACTIVATED : NONE

/opt/alt/php55/usr/include/php/Zend/

HOME
Current File : /opt/alt/php55/usr/include/php/Zend//zend_multiply.h
/*
   +----------------------------------------------------------------------+
   | Zend Engine                                                          |
   +----------------------------------------------------------------------+
   | Copyright (c) 1998-2015 Zend Technologies Ltd. (http://www.zend.com) |
   +----------------------------------------------------------------------+
   | This source file is subject to version 2.00 of the Zend license,     |
   | that is bundled with this package in the file LICENSE, and is        |
   | available through the world-wide-web at the following url:           |
   | http://www.zend.com/license/2_00.txt.                                |
   | If you did not receive a copy of the Zend license and are unable to  |
   | obtain it through the world-wide-web, please send a note to          |
   | license@zend.com so we can mail you a copy immediately.              |
   +----------------------------------------------------------------------+
   | Authors: Sascha Schumann <sascha@schumann.cx>                        |
   |          Ard Biesheuvel <ard.biesheuvel@linaro.org>                  |
   +----------------------------------------------------------------------+
*/

/* $Id$ */

#if defined(__i386__) && defined(__GNUC__)

#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do {	\
	long __tmpvar; 													\
	__asm__ ("imul %3,%0\n"											\
		"adc $0,%1" 												\
			: "=r"(__tmpvar),"=r"(usedval) 							\
			: "0"(a), "r"(b), "1"(0));								\
	if (usedval) (dval) = (double) (a) * (double) (b);				\
	else (lval) = __tmpvar;											\
} while (0)

#elif defined(__x86_64__) && defined(__GNUC__)

#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do {	\
	long __tmpvar; 													\
	__asm__ ("imul %3,%0\n"											\
		"adc $0,%1" 												\
			: "=r"(__tmpvar),"=r"(usedval) 							\
			: "0"(a), "r"(b), "1"(0));								\
	if (usedval) (dval) = (double) (a) * (double) (b);				\
	else (lval) = __tmpvar;											\
} while (0)

#elif defined(__arm__) && defined(__GNUC__)

#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do {	\
	long __tmpvar; 													\
	__asm__("smull %0, %1, %2, %3\n"								\
		"sub %1, %1, %0, asr #31"									\
			: "=r"(__tmpvar), "=r"(usedval)							\
			: "r"(a), "r"(b));										\
	if (usedval) (dval) = (double) (a) * (double) (b);				\
	else (lval) = __tmpvar;											\
} while (0)

#elif defined(__aarch64__) && defined(__GNUC__)

#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do {	\
	long __tmpvar; 													\
	__asm__("mul %0, %2, %3\n"										\
		"smulh %1, %2, %3\n"										\
		"sub %1, %1, %0, asr #63\n"									\
			: "=X"(__tmpvar), "=X"(usedval)							\
			: "X"(a), "X"(b));										\
	if (usedval) (dval) = (double) (a) * (double) (b);				\
	else (lval) = __tmpvar;											\
} while (0)

#elif SIZEOF_LONG == 4 && defined(HAVE_ZEND_LONG64)

#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do {	\
	zend_long64 __result = (zend_long64) (a) * (zend_long64) (b);	\
	if (__result > LONG_MAX || __result < LONG_MIN) {				\
		(dval) = (double) __result;									\
		(usedval) = 1;												\
	} else {														\
		(lval) = (long) __result;									\
		(usedval) = 0;												\
	}																\
} while (0)

#else

#define ZEND_SIGNED_MULTIPLY_LONG(a, b, lval, dval, usedval) do {	\
	long   __lres  = (a) * (b);										\
	long double __dres  = (long double)(a) * (long double)(b);		\
	long double __delta = (long double) __lres - __dres;			\
	if ( ((usedval) = (( __dres + __delta ) != __dres))) {			\
		(dval) = __dres;											\
	} else {														\
		(lval) = __lres;											\
	}																\
} while (0)

#endif

Current_dir [ NOT WRITEABLE ] Document_root [ WRITEABLE ]


[ Back ]
NAME
SIZE
LAST TOUCH
USER
CAN-I?
FUNCTIONS
..
--
9 Jul 2025 1.18 AM
root / 996
0755
zend.h
26.041 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_API.h
40.772 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_alloc.h
11.82 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_build.h
1.589 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_builtin_functions.h
1.589 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_closures.h
1.815 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_compile.h
33.769 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_config.h
0.104 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_config.nw.h
2.443 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_config.w32.h
3.194 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_constants.h
4.981 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_dtrace.h
2 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_dynamic_array.h
1.861 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_errors.h
2.108 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_exceptions.h
2.974 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_execute.h
13.642 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_extensions.h
4.5 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_float.h
15.503 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_gc.h
7.233 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_generators.h
2.604 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_globals.h
7.135 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_globals_macros.h
3.15 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_hash.h
17.404 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_highlight.h
2.362 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_indent.h
1.436 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_ini.h
9.769 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_ini_parser.h
3.178 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_ini_scanner.h
1.905 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_ini_scanner_defs.h
0.22 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_interfaces.h
3.949 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_istdiostream.h
1.607 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_iterators.h
3.683 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_language_parser.h
8.745 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_language_scanner.h
2.633 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_language_scanner_defs.h
0.29 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_list.h
5.096 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_llist.h
3.884 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_modules.h
4.975 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_multibyte.h
4.985 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_multiply.h
3.658 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_object_handlers.h
9.208 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_objects.h
2.163 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_objects_API.h
4.284 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_operators.h
30.185 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_ptr_stack.h
4.213 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_qsort.h
1.616 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_signal.h
3.988 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_stack.h
2.325 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_static_allocator.h
1.813 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_stream.h
2.881 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_string.h
2.33 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_strtod.h
1.823 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_ts_hash.h
6.86 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_types.h
2.303 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_variables.h
3.76 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_vm.h
1.389 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_vm_def.h
155.715 KB
9 Jul 2025 1.19 AM
root / 996
0644
zend_vm_execute.h
1.31 MB
9 Jul 2025 1.19 AM
root / 996
0644
zend_vm_opcodes.h
8.409 KB
9 Jul 2025 1.19 AM
root / 996
0644

GRAYBYTE WORDPRESS FILE MANAGER @ 2026 CONTACT ME
Static GIF