ObjFW  Check-in [dca587df1f]

Overview
Comment:runtime: Replace .fd file with .sfd file
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: dca587df1fddbae63e4d6b6087ef4ce338a8b575976b377a25ae61c8d52cc11b
User & Date: js on 2018-04-30 10:47:58
Other Links: manifest | tags
Context
2018-04-30
10:54
runtime: Generate function table from .sfd file check-in: 28fdcad722 user: js tags: trunk
10:47
runtime: Replace .fd file with .sfd file check-in: dca587df1f user: js tags: trunk
10:15
runtime: Have the Amiga glue the other way around check-in: dec9500ab6 user: js tags: trunk
Changes

Deleted src/runtime/ObjFW_RT.fd version [3b5722b1a8].

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
##base _ObjFWRTBase
##bias 30
##public
* Functions for the glue code
objc_set_libc(libc)(A0)
* Used by the compiler - these need glue code
glue___objc_exec_class(module)(A0)
glue_objc_msg_lookup(obj, sel)(A0/A1)
glue_objc_msg_lookup_stret(obj, sel)(A0/A1)
glue_objc_msg_lookup_super(super, sel)(A0/A1)
glue_objc_msg_lookup_super_stret(super, sel)(A0/A1)
glue_objc_lookUpClass(name)(A0)
glue_objc_getClass(name)(A0)
glue_objc_getRequiredClass(name)(A0)
glue_objc_exception_throw(object)(A0)
glue_objc_sync_enter(object)(A0)
glue_objc_sync_exit(object)(A0)
glue_objc_getProperty(self, _cmd, offset, atomic)(A0/A1/D0/D1)
glue_objc_setProperty(self, _cmd, offset, value, atomic, copy)(A0/A1/D0/A2/D1/D2)
glue_objc_getPropertyStruct(dest, src, size, atomic, strong)(A0/A1/D0/D1/D2)
glue_objc_setPropertyStruct(dest, src, size, atomic, strong)(A0/A1/D0/D1/D2)
glue_objc_enumerationMutation(obj)(A0)
* Functions declared in ObjFW_RT.h
sel_registerName(name)(A0)
sel_getName(sel)(A0)
sel_isEqual(sel1, sel2)(A0/A1)
objc_allocateClassPair(superclass, name, extra_bytes)(A0/A1/D0)
objc_registerClassPair(cls)(A0)
objc_getClassList(buf, count)(A0/D0)
objc_copyClassList(len)(A0)
class_isMetaClass(cls)(A0)
class_getName(cls)(A0)
class_getSuperclass(cls)(A0)
class_getInstanceSize(cls)(A0)
class_respondsToSelector(cls, sel)(A0/A1)
class_conformsToProtocol(cls, p)(A0/A1)
class_getMethodImplementation(cls, sel)(A0/A1)
class_getMethodImplementation_stret(cls, sel)(A0/A1)
class_getMethodTypeEncoding(cls, sel)(A0/A1)
class_addMethod(cls, sel, imp, types)(A0/A1/A2/A3)
class_replaceMethod(cls, sel, imp, types)(A0/A1/A2/A3)
object_getClass(obj)(A0)
object_setClass(obj, cls)(A0/A1)
object_getClassName(obj)(A0)
protocol_getName(p)(A0)
protocol_isEqual(a, b)(A0/A1)
protocol_conformsToProtocol(a, b)(A0/A1)
objc_exit()()
objc_setUncaughtExceptionHandler(handler)(A0)
objc_setForwardHandler(forward, forward_stret)(A0/A1)
objc_setEnumerationMutationHandler(handler)(A0)
objc_zero_weak_references(value)(A0)
##end
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<










































































































Added src/runtime/ObjFW_RT.sfd version [6493c088a1].

















































































































>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
==base _ObjFWRTBase
==basetype struct Library *
==libname objfw_rt.library
==bias 30
==private
* Functions for the linklib
void objc_set_libc(struct objc_libc *libc)(a0)
* Used by the compiler - these need glue code
void glue___objc_exec_class(void *module)(a0)
IMP glue_objc_msg_lookup(id obj, SEL sel)(a0,a1)
IMP glue_objc_msg_lookup_stret(id obj, SEL sel)(a0,a1) 
IMP glue_objc_msg_lookup_super(struct objc_super *super, SEL sel)(a0,a1) 
IMP glue_objc_msg_lookup_super_stret(struct objc_super *super, SEL sel)(a0,a1)
id glue_objc_lookUpClass(const char *name)(a0)
id glue_objc_getClass(const char *name)(a0)
id glue_objc_getRequiredClass(const char *name)(a0)
void glue_objc_exception_throw(id object)(a0)
int glue_objc_sync_enter(id object)(a0)
int glue_objc_sync_exit(id object)(a0)
id glue_objc_getProperty(id self, SEL _cmd, ptrdiff_t offset, bool atomic)(a0,a1,d0,d1)
void glue_objc_setProperty(id self, SEL _cmd, ptrdiff_t offset, id value, bool atomic, signed char copy)(a0,a1,d0,a2,d1,d2)
void glue_objc_getPropertyStruct(void *dest, const void *src, ptrdiff_t size, bool atomic, bool strong)(a0,a1,d0,d1,d2)
void glue_objc_setPropertyStruct(void *dest, const void *src, ptrdiff_t size, bool atomic, bool strong)(a0,a1,d0,d1,d2)
void glue_objc_enumerationMutation(id obj)(a0)
==public
* Functions declared in ObjFW_RT.h
SEL _Nonnull sel_registerName(const char *_Nonnull name)(a0)
const char *_Nonnull sel_getName(SEL _Nonnull sel)(a0)
bool sel_isEqual(SEL _Nonnull sel1, SEL _Nonnull sel2)(a0,a1)
Class _Nonnull objc_allocateClassPair(Class _Nullable superclass, const char *_Nonnull name, size_t extra_bytes)(a0,a1,d0)
void objc_registerClassPair(Class _Nonnull cls)(a0)
unsigned int objc_getClassList(Class _Nonnull *_Nullable buf, unsigned int count)(a0,d0)
Class _Nonnull *_Nonnull objc_copyClassList(unsigned int *_Nullable)(a0)
bool class_isMetaClass(Class _Nullable cls)(a0)
const char *_Nullable class_getName(Class _Nullable cls)(a0)
Class _Nullable class_getSuperclass(Class _Nullable cls)(a0)
unsigned long class_getInstanceSize(Class _Nullable cls)(a0)
bool class_respondsToSelector(Class _Nullable cls, SEL _Nonnull sel)(a0,a1)
bool class_conformsToProtocol(Class _Nullable cls, Protocol *_Nonnull p)(a0,a1)
IMP _Nullable class_getMethodImplementation(Class _Nullable cls, SEL _Nonnull sel)(a0,a1)
IMP _Nullable class_getMethodImplementation_stret(Class _Nullable cls, SEL _Nonnull sel)(a0,a1)
const char *_Nullable class_getMethodTypeEncoding(Class _Nullable cls, SEL _Nonnull sel)(a0,a1)
bool class_addMethod(Class _Nonnull cls, SEL _Nonnull sel, IMP _Nonnull imp, const char *_Nullable types)(a0,a1,a2,a3)
IMP _Nullable class_replaceMethod(Class _Nonnull cls, SEL _Nonnull sel, IMP _Nonnull imp, const char *_Nullable types)(a0,a1,a2,a3)
Class _Nullable object_getClass(id _Nullable obj)(a0)
Class _Nullable object_setClass(id _Nullable obj, Class _Nonnull)(a0,a1)
const char *_Nullable object_getClassName(id _Nullable obj)(a0)
const char *_Nonnull protocol_getName(Protocol *_Nonnull p)(a0)
bool protocol_isEqual(Protocol *_Nonnull a, Protocol *_Nonnull b)(a0,a1)
bool protocol_conformsToProtocol(Protocol *_Nonnull a, Protocol *_Nonnull b)(a0,a1)
void objc_exit(void)()
_Nullable objc_uncaught_exception_handler objc_setUncaughtExceptionHandler(objc_uncaught_exception_handler _Nullable handler)(a0)
void objc_setForwardHandler(IMP _Nullable forward, IMP _Nullable forward_stret)(a0,a1)
void objc_setEnumerationMutationHandler(objc_enumeration_mutation_handler _Nullable handler)(a0)
void objc_zero_weak_references(id _Nonnull value)(a0)
==end

Modified src/runtime/amiga-library.m from [bfdf0302ef] to [da3bf90dad].

188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
}

static ULONG function_table[] = {
	(ULONG)lib_open,
	(ULONG)lib_close,
	(ULONG)lib_expunge,
	(ULONG)lib_null,
	/* Functions for the glue code */
	(ULONG)objc_set_libc,
	/* Used by the compiler - these need glue code */
	(ULONG)glue___objc_exec_class,
	(ULONG)glue_objc_msg_lookup,
	(ULONG)glue_objc_msg_lookup_stret,
	(ULONG)glue_objc_msg_lookup_super,
	(ULONG)glue_objc_msg_lookup_super_stret,







|







188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
}

static ULONG function_table[] = {
	(ULONG)lib_open,
	(ULONG)lib_close,
	(ULONG)lib_expunge,
	(ULONG)lib_null,
	/* Functions for the linklib */
	(ULONG)objc_set_libc,
	/* Used by the compiler - these need glue code */
	(ULONG)glue___objc_exec_class,
	(ULONG)glue_objc_msg_lookup,
	(ULONG)glue_objc_msg_lookup_stret,
	(ULONG)glue_objc_msg_lookup_super,
	(ULONG)glue_objc_msg_lookup_super_stret,