We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent e0c3f46 commit c55f142Copy full SHA for c55f142
Zend/zend_multiply.h
@@ -176,7 +176,7 @@ static zend_always_inline size_t zend_safe_address(size_t nmemb, size_t size, si
176
177
static zend_always_inline size_t zend_safe_address(size_t nmemb, size_t size, size_t offset, bool *overflow)
178
{
179
- size_t res=nmemb;
+ size_t res;
180
zend_ulong m_overflow = 0;
181
182
#ifdef __ILP32__ /* x32 */
@@ -186,12 +186,21 @@ static zend_always_inline size_t zend_safe_address(size_t nmemb, size_t size, si
186
#endif
187
188
if (ZEND_CONST_COND(offset == 0, 0)) {
189
+ res = nmemb;
190
__asm__ ("mul" LP_SUFF " %3\n\t"
191
"adc 0,ドル%1"
192
: "=&a"(res), "=&d" (m_overflow)
193
: "%0"(res),
194
"rm"(size));
195
+ } else if (ZEND_CONST_COND(nmemb == 1, 0)) {
196
+ res = size;
197
+ __asm__ ("add %2, %0\n\t"
198
+ "adc 0,ドル%1"
199
+ : "+r"(res), "+r" (m_overflow)
200
+ : "rm"(offset)
201
+ : "cc");
202
} else {
203
204
205
"add %4,%0\n\t"
206
AltStyle によって変換されたページ (->オリジナル) / アドレス: モード: デフォルト 音声ブラウザ ルビ付き 配色反転 文字拡大 モバイル
0 commit comments