Overview
| Comment: | Use a regular int for the tagged pointer class ID |
|---|---|
| Downloads: | Tarball | ZIP archive | SQL archive |
| Timelines: | family | ancestors | descendants | both | tagged-pointers |
| Files: | files | file ages | folders |
| SHA3-256: |
a8d453813ca8007658d52532885acd9c |
| User & Date: | js on 2020-07-04 00:40:47 |
| Other Links: | branch diff | manifest | tags |
Context
|
2020-07-04
| ||
| 11:51 | lookup-asm-sparc64-elf.S: Support tagged pointers (check-in: 09e046628e user: js tags: tagged-pointers) | |
| 00:40 | Use a regular int for the tagged pointer class ID (check-in: a8d453813c user: js tags: tagged-pointers) | |
| 00:24 | Only use 4 bits to classify tagged pointers (check-in: 943cf97843 user: js tags: tagged-pointers) | |
Changes
Modified src/runtime/ObjFWRT.h from [419dceb932] to [852e5138d0].
| ︙ | |||
240 241 242 243 244 245 246 | 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 | - + - + - |
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);
|
| ︙ |
Modified src/runtime/amiga-glue.m from [bd99617da7] to [3dbec0ba16].
| ︙ | |||
796 797 798 799 800 801 802 | 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 | - + |
glue_objc_hashtable_free PPC_PARAMS(struct objc_hashtable *table)
{
M68K_ARG(struct objc_hashtable *, table, a0)
objc_hashtable_free(table);
}
|
| ︙ | |||
821 822 823 824 825 826 827 | 821 822 823 824 825 826 827 828 829 830 831 832 833 834 | - + - + |
{
M68K_ARG(id, object, a0)
return object_getTaggedPointerValue(object);
}
id
|
Modified src/runtime/amiga-library.m from [ee22f330db] to [7a20b4c30e].
| ︙ | |||
143 144 145 146 147 148 149 | 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 | - + | 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); |
| ︙ |
Modified src/runtime/amigaos3.sfd from [bce272de78] to [a0d1b4c012].
| ︙ | |||
86 87 88 89 90 91 92 | 86 87 88 89 90 91 92 93 94 95 96 97 | - + - + | * 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 |
Modified src/runtime/linklib/linklib.m from [8bd799cb5a] to [b0ccaf3f6e].
| ︙ | |||
704 705 706 707 708 709 710 | 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 | + - - - - - + + + + + + + + + + + + + + + + + + + + + + |
void
objc_hashtable_free(struct objc_hashtable *table)
{
glue_objc_hashtable_free(table);
}
int
|
Modified src/runtime/morphos-clib.h from [5d4187d2f7] to [003198598f].
| ︙ | |||
81 82 83 84 85 86 87 | 81 82 83 84 85 86 87 88 89 90 91 | - + - + | /* The following functions are private! Don't use! */ struct objc_hashtable *glue_objc_hashtable_new(objc_hashtable_hash_func, objc_hashtable_equal_func, uint32_t); void glue_objc_hashtable_set(struct objc_hashtable *, const void *, const void *); void *glue_objc_hashtable_get(struct objc_hashtable *, const void *); void glue_objc_hashtable_delete(struct objc_hashtable *, const void *); void glue_objc_hashtable_free(struct objc_hashtable *); /* Public functions again */ |
Modified src/runtime/tagged-pointer.m from [1f64e311ce] to [eeba4c306c].
| ︙ | |||
19 20 21 22 23 24 25 | 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | - + - + - + | #import "private.h" #define TAGGED_POINTER_BITS 4 #define NUM_TAGGED_POINTER_CLASSES (1 << (TAGGED_POINTER_BITS - 1)) Class objc_tagged_pointer_classes[NUM_TAGGED_POINTER_CLASSES]; |
| ︙ | |||
66 67 68 69 70 71 72 | 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | - + - + | pointer >>= TAGGED_POINTER_BITS; return pointer; } id |