X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=examples%2Fstubs.c;h=ffd314e6b35c9985799b7ca8b5489484ec85d9fc;hb=f7db33101fbc9c8f0a10738ce87034875a17aeb9;hp=1caa575747992c613ad8e7b9d24f697561b43934;hpb=38546f08c608b871a65bd538b9c460b3348b1261;p=u-boot diff --git a/examples/stubs.c b/examples/stubs.c index 1caa575747..ffd314e6b3 100644 --- a/examples/stubs.c +++ b/examples/stubs.c @@ -138,6 +138,19 @@ gd_t *global_data; " P0 = [P0 + %1]\n" \ " JUMP (P0)\n" \ : : "i"(offsetof(gd_t, jt)), "i"(XF_ ## x * sizeof(void *)) : "P0"); +#elif defined(CONFIG_AVR32) +/* + * r6 holds the pointer to the global_data. r8 is call clobbered. + */ +#define EXPORT_FUNC(x) \ + asm volatile( \ + " .globl\t" #x "\n" \ + #x ":\n" \ + " ld.w r8, r6[%0]\n" \ + " ld.w pc, r8[%1]\n" \ + : \ + : "i"(offsetof(gd_t, jt)), "i"(XF_ ##x) \ + : "r8"); #else #error stubs definition missing for this architecture #endif