Changes In Branch tagged-pointers Through [a964d3dcb4] Excluding Merge-Ins
This is equivalent to a diff from 812a46b8f6 to a964d3dcb4
2020-06-29
| ||
21:38 | Convert all x86_64/ELF ASM files to Intel syntax check-in: 6b34f309da user: js tags: trunk | |
20:30 | Add support for tagged pointers in object_getClass check-in: 8707dd73c4 user: js tags: tagged-pointers | |
19:42 | runtime: Add helper functions for tagged pointers check-in: a964d3dcb4 user: js tags: tagged-pointers | |
2020-06-28
| ||
15:39 | Remove OF_DIRECT(_MEMBERS) where it was too much check-in: 812a46b8f6 user: js tags: trunk | |
15:19 | Only use objc_direct(_members) with Apple runtime check-in: 96b35d19c5 user: js tags: trunk | |
Modified src/runtime/Makefile from [19d76e27b3] to [578f05e231].
︙ | |||
26 27 28 29 30 31 32 33 34 35 36 37 38 39 | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | + | misc.m \ property.m \ protocol.m \ selector.m \ sparsearray.m \ static-instances.m \ synchronized.m \ tagged-pointer.m \ ${USE_SRCS_THREADS} SRCS_THREADS = threading.m \ ../mutex.m \ ../once.m \ ../tlskey.m INCLUDES = ObjFWRT.h includesubdir = ObjFWRT |
︙ |
Modified src/runtime/ObjFWRT.h from [439a147585] to [419dceb932].
︙ | |||
240 241 242 243 244 245 246 247 248 249 250 251 252 253 | 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 | + + + + + | objc_enumeration_mutation_handler_t _Nullable handler); extern id _Nullable objc_constructInstance(Class _Nullable class_, void *_Nullable bytes); extern void *_Nullable objc_destructInstance(id _Nullable object); extern void *_Null_unspecified objc_autoreleasePoolPush(void); extern void objc_autoreleasePoolPop(void *_Null_unspecified pool); extern id _Nullable _objc_rootAutorelease(id _Nullable object); extern int_fast8_t objc_registerTaggedPointerClass(Class _Nonnull class); extern Class _Nullable object_getTaggedPointerClass(id _Nonnull object); extern uintptr_t object_getTaggedPointerValue(id _Nonnull object); extern id _Nullable objc_createTaggedPointer(uint_fast8_t class, uintptr_t value); /* * Used by the compiler, but can also be called manually. * * These declarations are also required to prevent Clang's implicit * declarations which include __declspec(dllimport) on Windows. */ |
︙ |
Modified src/runtime/amiga-glue.m from [5dde941d59] to [bd99617da7].
︙ | |||
795 796 797 798 799 800 801 | 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + | void __saveds glue_objc_hashtable_free PPC_PARAMS(struct objc_hashtable *table) { M68K_ARG(struct objc_hashtable *, table, a0) objc_hashtable_free(table); } int_fast8_t glue_objc_registerTaggedPointerClass PPC_PARAMS(Class class) { M68K_ARG(Class, class, a0) return objc_registerTaggedPointerClass(class); } Class glue_object_getTaggedPointerClass PPC_PARAMS(id object) { M68K_ARG(id, object, a0) return object_getTaggedPointerClass(object); } uintptr_t glue_object_getTaggedPointerValue PPC_PARAMS(id object) { M68K_ARG(id, object, a0) return object_getTaggedPointerValue(object); } id glue_objc_createTaggedPointer PPC_PARAMS(uint_fast8_t class, uintptr_t value) { M68K_ARG(uint_fast8_t, class, d0) M68K_ARG(uintptr_t, value, d1) return objc_createTaggedPointer(class, value); } |
Modified src/runtime/amiga-library.m from [3100a40497] to [ee22f330db].
︙ | |||
143 144 145 146 147 148 149 150 151 152 153 154 155 156 | 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 | + + + + | extern void glue_objc_autoreleasePoolPop(void); extern id glue__objc_rootAutorelease(void); extern struct objc_hashtable *glue_objc_hashtable_new(void); extern void glue_objc_hashtable_set(void); extern void *glue_objc_hashtable_get(void); extern void glue_objc_hashtable_delete(void); extern void glue_objc_hashtable_free(void); extern int_fast8_t glue_objc_registerTaggedPointerClass(void); extern Class _Nullable glue_object_getTaggedPointerClass(void); extern uintptr_t glue_object_getTaggedPointerValue(void); extern id _Nullable glue_objc_createTaggedPointer(void); #ifdef OF_MORPHOS const ULONG __abox__ = 1; #endif struct ExecBase *SysBase; struct objc_libc libc; FILE *stdout; |
︙ | |||
669 670 671 672 673 674 675 676 677 678 679 680 681 682 | 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 | + + + + | (CONST_APTR)glue_objc_autoreleasePoolPop, (CONST_APTR)glue__objc_rootAutorelease, (CONST_APTR)glue_objc_hashtable_new, (CONST_APTR)glue_objc_hashtable_set, (CONST_APTR)glue_objc_hashtable_get, (CONST_APTR)glue_objc_hashtable_delete, (CONST_APTR)glue_objc_hashtable_free, (CONST_APTR)glue_objc_registerTaggedPointerClass, (CONST_APTR)glue_object_getTaggedPointerClass, (CONST_APTR)glue_object_getTaggedPointerValue, (CONST_APTR)glue_objc_createTaggedPointer, (CONST_APTR)-1, #ifdef OF_MORPHOS (CONST_APTR)FUNCARRAY_END #endif }; #pragma GCC diagnostic pop |
︙ |
Modified src/runtime/amigaos3.sfd from [c645261c7f] to [bce272de78].
︙ | |||
85 86 87 88 89 90 91 92 | 85 86 87 88 89 90 91 92 93 94 95 96 97 | + + + + + | id _Nullable glue__objc_rootAutorelease(id _Nullable object)(a0) * The following functions are private! Don't use! struct objc_hashtable *_Nonnull glue_objc_hashtable_new(objc_hashtable_hash_func hash, objc_hashtable_equal_func equal, uint32_t size)(a0,a1,d0) void glue_objc_hashtable_set(struct objc_hashtable *_Nonnull table, const void *_Nonnull key, const void *_Nonnull object)(a0,a1,a2) void *_Nullable glue_objc_hashtable_get(struct objc_hashtable *_Nonnull table, const void *_Nonnull key)(a0,a1) void glue_objc_hashtable_delete(struct objc_hashtable *_Nonnull table, const void *_Nonnull key)(a0,a1) void glue_objc_hashtable_free(struct objc_hashtable *_Nonnull table)(a0) * Public functions again int_fast8_t glue_objc_registerTaggedPointerClass(Class _Nonnull class_)(a0) Class _Nullable glue_object_getTaggedPointerClass(id _Nonnull object)(a0) uintptr_t glue_object_getTaggedPointerValue(id _Nonnull object)(a0) id _Nullable glue_objc_createTaggedPointer(uint_fast8_t class_, uintptr_t value)(d0,d1) ==end |
Modified src/runtime/linklib/linklib.m from [141357802d] to [8bd799cb5a].
︙ | |||
703 704 705 706 707 708 709 | 703 704 705 706 707 708 709 710 711 712 713 714 715 | + + + + + + | } void objc_hashtable_free(struct objc_hashtable *table) { glue_objc_hashtable_free(table); } extern int_fast8_t objc_registerTaggedPointerClass(Class _Nonnull class); extern Class _Nullable object_getTaggedPointerClass(id _Nonnull object); extern uintptr_t object_getTaggedPointerValue(id _Nonnull object); extern id _Nullable objc_createTaggedPointer(uint_fast8_t class, uintptr_t value); |
Modified src/runtime/morphos-clib.h from [cfb2b6af7e] to [5d4187d2f7].
︙ | |||
75 76 77 78 79 80 81 | 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 | - - - - - + + + + + + + + + + | const char *glue_property_getName(objc_property_t); char *glue_property_copyAttributeValue(objc_property_t, const char *); void *glue_objc_destructInstance(id); void *glue_objc_autoreleasePoolPush(void); void glue_objc_autoreleasePoolPop(void *); id glue__objc_rootAutorelease(id); /* The following functions are private! Don't use! */ |
Modified src/runtime/morphos.fd from [f7d065769a] to [705f1d62db].
︙ | |||
83 84 85 86 87 88 89 90 | 83 84 85 86 87 88 89 90 91 92 93 94 95 | + + + + + | glue__objc_rootAutorelease(object)(sysv,r12base) * The following functions are private! Don't use! glue_objc_hashtable_new(hash,equal,size)(sysv,r12base) glue_objc_hashtable_set(table,key,object)(sysv,r12base) glue_objc_hashtable_get(table,key)(sysv,r12base) glue_objc_hashtable_delete(table,key)(sysv,r12base) glue_objc_hashtable_free(table)(sysv,r12base) * Public functions again glue_objc_registerTaggedPointerClass(class_)(sysv,r12base) glue_object_getTaggedPointerClass(object)(sysv,r12base) glue_object_getTaggedPointerValue(object)(sysv,r12base) glue_objc_createTaggedPointer(class_,value)(sysv,r12base) ##end |
Added src/runtime/tagged-pointer.m version [a10440bd9d].