Fix 10061: xptcall not right on irix. patch by Robert Low (rob@adacel.com.au). r=jband sr=blizzard

This commit is contained in:
blakeross%telocity.com 2001-01-05 23:44:21 +00:00
Родитель d370359e69
Коммит afb86238f1
1 изменённых файлов: 5 добавлений и 4 удалений

Просмотреть файл

@ -106,15 +106,16 @@ invoke_copy_to_stack(PRUint64* d, PRUint32 paramCount,
break; break;
case nsXPTType::T_FLOAT: case nsXPTType::T_FLOAT:
if (i < N_ARG_REGS) if (i < N_ARG_REGS)
((double*)regs)[i] = s->val.f; // Place a float in least significant bytes.
*(float*)(((char*)&regs[i+1]) - sizeof(float)) = s->val.f;
else else
*((double*)d++) = s->val.f; *(float*)d++ = s->val.f;
break; break;
case nsXPTType::T_DOUBLE: case nsXPTType::T_DOUBLE:
if (i < N_ARG_REGS) if (i < N_ARG_REGS)
((double*)regs)[i] = s->val.d; *(double*)&regs[i] = s->val.d;
else else
*((double*)d++) = s->val.d; *(double*)d++ = s->val.d;
break; break;
case nsXPTType::T_BOOL: case nsXPTType::T_BOOL:
if (i < N_ARG_REGS) if (i < N_ARG_REGS)