Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1cd763f1 authored by Keun-young Park's avatar Keun-young Park Committed by Android Git Automerger
Browse files

am cd91024c: Merge "[MIPS] Avoid unaligned load/store for 64-bit doubles."

* commit 'cd91024c':
  [MIPS] Avoid unaligned load/store for 64-bit doubles.
parents 7212ff29 cd91024c
Loading
Loading
Loading
Loading
+44 −1
Original line number Diff line number Diff line
@@ -627,11 +627,27 @@ status_t Parcel::writeFloat(float val)
    return writeAligned(val);
}

#if defined(__mips__) && defined(__mips_hard_float)

status_t Parcel::writeDouble(double val)
{
    union {
        double d;
        unsigned long long ll;
    } u;
    u.d = val;
    return writeAligned(u.ll);
}

#else

status_t Parcel::writeDouble(double val)
{
    return writeAligned(val);
}

#endif

status_t Parcel::writeIntPtr(intptr_t val)
{
    return writeAligned(val);
@@ -962,17 +978,44 @@ float Parcel::readFloat() const
    return readAligned<float>();
}

#if defined(__mips__) && defined(__mips_hard_float)

status_t Parcel::readDouble(double *pArg) const
{
    return readAligned(pArg);
    union {
      double d;
      unsigned long long ll;
    } u;
    status_t status;
    status = readAligned(&u.ll);
    *pArg = u.d;
    return status;
}

double Parcel::readDouble() const
{
    union {
      double d;
      unsigned long long ll;
    } u;
    u.ll = readAligned<unsigned long long>();
    return u.d;
}

#else

status_t Parcel::readDouble(double *pArg) const
{
    return readAligned(pArg);
}

double Parcel::readDouble() const
{
    return readAligned<double>();
}

#endif

status_t Parcel::readIntPtr(intptr_t *pArg) const
{
    return readAligned(pArg);