Commit Graph

44 Commits

Author SHA1 Message Date
Xinchen Hui
97a9470d97 bump year which is missed in rev 49493a2 2016-01-02 17:56:11 +08:00
Anton Blanchard
305199a131 Improve performance of PowerPC64 ZEND_SIGNED_MULTIPLY_LONG
Detecting overflow with the XER is slow, partially because we have to
clear it before use. We can do better by using a trick where we compare
the high 64 bits of the result with the low 64 bits shifted right
63 bits.

This is 7% faster on a POWER8 running a simple testcase:

<?php
        function testcase($count = 100000000) {
                for ($i = 0; $i < $count; $i++) {
                        $x = 1;
                        $x = $x * 2;
                        $x = $x * 2;
                        $x = $x * 2;
                        $x = $x * 2;
                }
        }

        testcase();
?>
2015-07-28 18:38:23 +02:00
Elan Ruusamäe
ce73a47996 merge ZEND_SIGNED_MULTIPLY_LONG for i386 and x86_64
as the definitions are identical
refs b7eb3c1c5a
2015-02-28 01:43:53 +02:00
Xinchen Hui
fc33f52d8c bump year 2015-01-15 23:27:30 +08:00
Gustavo Frederico Temple Pedrosa
1e82da8d17 PowerPC64 support in safe_address function
Add a ppc64-specific implementation of the safe_address
function with overflow checking.
2014-12-16 08:20:01 +01:00
Gustavo Frederico Temple Pedrosa
87e0802a99 PowerPC64 support in long multiplication
In long integer multiplications, avoid casting
both operands to long double and use an inline
assembly-based overflow checking function instead.
2014-12-01 10:55:53 +01:00
Nikita Popov
53a8584123 Fix allocator for 64bit zend_long with 32bit long 2014-10-16 12:42:23 +02:00
Nikita Popov
2a9daf2e15 Drop zend_long64 in favor of int64_t
Also drop ZEND_HAVE_LONG64, because we already require the
presence of a int64_t type.
2014-10-16 12:42:22 +02:00
Dmitry Stogov
e439349e58 Expose zend_safe_address() and use it in zend_arena_calloc() 2014-09-18 13:31:25 +04:00
Nikita Popov
f4f9b54983 Revert "Move safe_address into zend_multiply.h"
This reverts commit 43b02e169c.

I'm getting symbol resolution issues for zend_error_noreturn in the
opcache.so, so reverting this for now.
2014-09-06 22:12:37 +02:00
Nikita Popov
43b02e169c Move safe_address into zend_multiply.h
This allows reuse in zend_arena_calloc.

Also renamed the function to zend_safe_address as it's no longer
private to the allocator.
2014-09-06 14:03:59 +02:00
Andrea Faulds
e622e28972 Fixed constants in Zend/zend_multiply.h
Conflicts:
	Zend/zend_multiply.h
2014-08-27 19:54:02 +01:00
Anatol Belski
28b7a03318 master renamings phase 5 2014-08-25 21:20:44 +02:00
Anatol Belski
c3e3c98ec6 master renames phase 1 2014-08-25 19:24:55 +02:00
Anatol Belski
5bb25776a0 further fixes on core 2014-08-16 15:34:04 +02:00
Anatol Belski
8ee2a4a9b5 first shot on merging the core fro the int64 branch 2014-08-16 11:16:11 +02:00
Xinchen Hui
c081ce628f Bump year 2014-01-03 11:08:10 +08:00
Gustavo Lopes
865cc3a800 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  Fix bug #64729: compilation failure on x32

Conflicts:
	Zend/zend_alloc.c
2013-04-30 19:36:08 +02:00
Gustavo Lopes
514afd67b6 Fix bug #64729: compilation failure on x32 2013-04-30 19:28:24 +02:00
Ard Biesheuvel
e2453276e9 Low-level ARM optimizations
- added ARM versions of zend_mm_high_bit()/zend_mm_low_bit()
- improved safe_address()
2013-02-11 14:36:58 +01:00
Xinchen Hui
a666285bc2 Happy New Year 2013-01-01 16:37:09 +08:00
Xinchen Hui
0a7395e009 Happy New Year 2013-01-01 16:28:54 +08:00
Felipe Pena
8775a37559 - Year++ 2012-01-01 13:15:04 +00:00
Felipe Pena
4e19825281 - Year++ 2012-01-01 13:15:04 +00:00
Dmitry Stogov
c270347c0b MFH: Arithmetic speedup. Inlined most probable code-paths for arithmetic operations directly into executor. 2011-05-31 12:05:25 +00:00
Dmitry Stogov
b7eb3c1c5a Arithmetic speedup. Inlined most probable code-paths for arithmetic operations directly into executor. 2011-05-23 08:05:44 +00:00
Felipe Pena
0203cc3d44 - Year++ 2011-01-01 02:17:06 +00:00
Sebastian Bergmann
35e83d2afb sed -i "s#1998-2009#1998-2010#g" **/*.c **/*.h **/*.php 2010-01-05 20:46:53 +00:00
Sebastian Bergmann
7f4dc8702a Bump copyright year, 3 of 3. 2008-12-31 11:12:40 +00:00
Dmitry Stogov
0c77613d77 Optimized ZEND_SIGNED_MULTIPLY_LONG() (Matt) 2008-07-24 13:46:48 +00:00
Sebastian Bergmann
9b620d50b4 Bump copyright year, 2 of 2. 2007-12-31 07:12:20 +00:00
foobar
d34248e5f2 MFB:- Fixed ZEND_SIGNED_MULTIPLY_LONG() so that ext/filter/tests/046.phpt wont fail. (Integer overflow) 2007-04-10 10:57:54 +00:00
Sebastian Bergmann
3717df72ae Bump year. 2007-01-01 09:29:37 +00:00
Andi Gutmans
5de7cc3194 - Update copyright notices to 2006 2006-01-04 23:54:12 +00:00
foobar
916815b779 Bump up the year 2005-08-03 13:30:58 +00:00
Sascha Schumann
7aa832aba2 Readd x86 implementation 2004-03-17 22:23:15 +00:00
Andi Gutmans
cedd0296e0 - Improved patch for support multiplication on 64bit machines 2004-03-17 16:40:56 +00:00
Andi Gutmans
29ee03aa55 - Apply Ard's patch to support multiplication & overflow on both 32bit
and 64bit machines
2004-03-17 09:25:52 +00:00
foobar
ccfc46b0aa - Happy new year and PHP 5 for rest of the files too..
# Should the LICENSE and Zend/LICENSE dates be updated too?
2004-01-08 17:33:29 +00:00
foobar
d0bfc137df - Missing $Id$ tag 2003-06-10 22:39:29 +00:00
James Cox
f68c7ff249 updating license information in the headers. 2003-06-10 20:04:29 +00:00
Sascha Schumann
3d5ecc112b mfb #24025 fix 2003-06-06 12:12:25 +00:00
Sascha Schumann
e6b558edb2 Fix the *= operator
Slightly modified patch by Wez Furlong
2003-04-29 15:06:19 +00:00
Sascha Schumann
04d2905fb5 add safe_emalloc 2003-04-24 03:35:06 +00:00