Depending on compiler options, the translation of test_mvcrl() in
`misc3.c' can misbehave because the inline assembly writes to r0 and
doesn't declare that.
Add a register clobber to fix this. Also, tell the compiler the actual
length of `from' and `to' instead of the decremented value.
static void test_mvcrl(char *to, char *from, size_t len)
{
- len -= 1;
__asm__("lgr 0,%[len]\n\t"
".insn sse,0xe50a00000000,%[to],%[from]\n\t"
: [to] "+Q" (*(char (*)[len]) to)
: [from] "Q" (*(char (*)[len]) from),
- [len] "d" (len)
- : );
+ [len] "d" (len - 1)
+ : "0");
}
static void test_all_mvcrl()