Re: com php-src: Fixes for x32 ABI: Zend/zend_long.h Zend/zend_types.h ext/date/lib/timelib_structs.h ext/standard/file.c ext/standard/streamsfuncs.c
| From: | Nikita Popov | Date: | Mon, 25 May 2015 17:10:34 +0000 |
| Subject: | Re: com php-src: Fixes for x32 ABI: Zend/zend_long.h Zend/zend_types.h ext/date/lib/timelib_structs.h ext/standard/file.c ext/standard/streamsfuncs.c | ||
| References: | 1 2 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-86922@lists.php.net to get a copy of this message | ||
On Mon, May 25, 2015 at 4:30 PM, Dmitry Stogov <dmitry@zend.com> wrote:
> Hi Nikita,
>
> I've never able to check PHP on X32. Is it compatible now?
> Did you see any performance improvement in comparison to x86 and X86_64?
>
> Complete X32 support probably needs additional effort to enable global
> register variables and assembler code conversion...
>
There are a couple of failing tests, but for practical purposes everything
works. I've set zend_long size to 64bit, so all the usual x86-64 assembly
is still correct. (Essentially only using 32bit size_t and pointers.)
Globals regs also worked out of the box.
Sadly I didn't see an improvement compared to x86-64. bench.php and
micro_bench.php are around the same. Against WP-4.1 with -T 500 I even got
a regression: 5.30s on amd64 and 5.45s on x32.
I could try to use 32bit zend_longs instead, which will require some
assembly adjustments.
Nikita