Fix asm constraints in __rmem_thread_start

The "fork" pseudo-instruction writes back to x0, so ensure that GCC
doesn't rely on it holding its previous value across the asm. This
fixes "illegal fetch address exception" reports.

Reported-by: Shaked Flur <shaked.flur@cl.cam.ac.uk>
Signed-off-by: Will Deacon <will.deacon@arm.com>
diff --git a/rmem.h b/rmem.h
index ab66735..226ed28 100644
--- a/rmem.h
+++ b/rmem.h
@@ -16,7 +16,7 @@
 static inline void __rmem_thread_start(void *fn)
 {
 	register void *x0 asm("x0") = fn;
-	asm volatile(".inst	0xd50bb003" :: "r" (x0) : "memory");
+	asm volatile(".inst	0xd50bb003" : "+r" (x0) :: "memory");
 }
 
 #endif /* __RMEM_H */