K 10 svn:author V 8 jhibbits K 8 svn:date V 27 2017-11-08T01:23:37.006287Z K 7 svn:log V 847 Clear the WE bit in C code rather than the asm According to EREF rlwinm is supposed to clear the upper 32 bits of the register of 64-bit cores. However, from experience it seems there's a bug in the e5500 which causes the result to be duplicated in the upper bits of the register. This causes problems when applied to stashed SRR1 accessed to retrieve context, as the upper bits are not masked out, so a set_mcontext() fails. This causes sigreturn() to in turn return with EINVAL, causing make(1) to exit with error. This bit is unused in e500mc derivatives (including e5500), so could just be conditional on non-powerpc64, but there may be other non-Freescale cores which do use it. This is also the same as the POW bit on Book-S, so could be cleared unconditionally with the only penalty being a few clock cycles for these two interrupts. END