On May 1, 2016, at 6:23 AM, Mark Cave-Ayland wrote:
+/* Switch to another context. */ +struct context *switch_to(struct context *ctx) +{
- volatile struct context *save;
- struct context *ret;
- unsigned int lr;
- debug("switching to new context:\n");
- save = __context;
- __context = ctx;
- asm __volatile__ ("mflr %0\n\t" : "=r" (lr) : : );
This line breaks compatibility with gcc 4.2.3. A simple fix is this: asm __volatile__ ("mflr %0\n\t" : "=r" (lr)); and this
- asm __volatile__ ("mtlr %0\n\t" : : "r" (lr) : );
asm __volatile__ ("mtlr %0\n\t" : : "r" (lr));