@@ -83,30 +83,36 @@ bctr #endif .Ltagged_pointer_\name: -#ifdef OF_PIC +#if defined(OF_PIC) mflr %r7 bl 0f 0: mflr %r6 mtlr %r7 addis %r6, %r6, .Lbiased_got2-0b@ha addi %r6, %r6, .Lbiased_got2-0b@l lwz %r5, .Lgot_objc_tagged_pointer_secret-.Lbiased_got2(%r6) + lwz %r5, 0(%r5) +#elif defined(OF_BASEREL) + addis %r5, %r13, objc_tagged_pointer_secret@drel@ha + lwz %r5, objc_tagged_pointer_secret@drel@l(%r5) #else lis %r5, objc_tagged_pointer_secret@ha - addi %r5, %r5, objc_tagged_pointer_secret@l + lwz %r5, objc_tagged_pointer_secret@l(%r5) #endif - lwz %r5, 0(%r5) xor %r5, %r3, %r5 rlwinm %r5, %r5, 1, 0x1C -#ifdef OF_PIC +#if defined(OF_PIC) lwz %r6, .Lgot_objc_tagged_pointer_classes-.Lbiased_got2(%r6) +#elif defined(OF_BASEREL) + addis %r6, %r13, objc_tagged_pointer_classes@drel@ha + addi %r6, %r6, objc_tagged_pointer_classes@drel@l #else lis %r6, objc_tagged_pointer_classes@ha addi %r6, %r6, objc_tagged_pointer_classes@l #endif lwzx %r5, %r6, %r5