summaryrefslogtreecommitdiff
path: root/Zend/zend_alloc.c
diff options
context:
space:
mode:
authorStuart Langley <slangley@google.com>2012-09-13 17:37:37 +0200
committerStanislav Malyshev <stas@php.net>2012-09-17 15:52:55 -0700
commit2e24d9a2b3cc5becafb0fd3805a22cd87daa1f18 (patch)
treef9e68dec3f46955f49425c45f0dfdfa37e6af01c /Zend/zend_alloc.c
parent6096988704d3cbcde364fae506cd6b8a2b8181f4 (diff)
downloadphp-git-2e24d9a2b3cc5becafb0fd3805a22cd87daa1f18.tar.gz
Support building PHP with the native client toolchain.
The native client compiler defines the C macro __x86_64__, but the size of an unsigned int is only 4 bytes. This causes the compile to fail because the inline asm code compiled is for an 8 byte unsigned int. Add the correct defines to fix this. As detailed in: http://code.google.com/p/nativeclient/issues/detail?id=2255
Diffstat (limited to 'Zend/zend_alloc.c')
-rw-r--r--Zend/zend_alloc.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/Zend/zend_alloc.c b/Zend/zend_alloc.c
index 66cd23c7cb..0b0e8632c1 100644
--- a/Zend/zend_alloc.c
+++ b/Zend/zend_alloc.c
@@ -664,7 +664,7 @@ static void *_zend_mm_realloc_int(zend_mm_heap *heap, void *p, size_t size ZEND_
static inline unsigned int zend_mm_high_bit(size_t _size)
{
-#if defined(__GNUC__) && defined(i386)
+#if defined(__GNUC__) && (defined(__native_client__) || defined(i386))
unsigned int n;
__asm__("bsrl %1,%0\n\t" : "=r" (n) : "rm" (_size));
@@ -690,7 +690,7 @@ static inline unsigned int zend_mm_high_bit(size_t _size)
static inline unsigned int zend_mm_low_bit(size_t _size)
{
-#if defined(__GNUC__) && defined(i386)
+#if defined(__GNUC__) && (defined(__native_client__) || defined(i386))
unsigned int n;
__asm__("bsfl %1,%0\n\t" : "=r" (n) : "rm" (_size));
@@ -2454,7 +2454,7 @@ ZEND_API size_t _zend_mem_block_size(void *ptr TSRMLS_DC ZEND_FILE_LINE_DC ZEND_
return _zend_mm_block_size(AG(mm_heap), ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_ORIG_RELAY_CC);
}
-#if defined(__GNUC__) && defined(i386)
+#if defined(__GNUC__) && (defined(__native_client__) || defined(i386))
static inline size_t safe_address(size_t nmemb, size_t size, size_t offset)
{