Artifact dfb7c424063679e4ea8a9a5532451b0953aa9292f6aa3d2fb230ca0005f3f755:
- File
src/runtime/morphos.fd
— part of check-in
[153b825cdb]
at
2019-06-26 19:25:29
on branch trunk
— runtime: Fix MorphOS library
This again works with both, SjLj and DWARF exceptions. The latest public
SDK still uses SjLj, so it still needs to be supported for now. (user: js, size: 3108) [annotate] [blame] [check-ins using]
##base _ObjFWRTBase ##bias 30 ##public * Functions that are only for the linklib. objc_init(version,libc,stdout,stderr)(d0,a0,a1,a2) * These have a built-in declaration in the compiler that does not use the registers and thus always need glue. __objc_exec_class(module)(a0) objc_msg_lookup(object,selector)(a0,a1) objc_msg_lookup_stret(object,selector)(a0,a1) objc_msg_lookup_super(super,selector)(a0,a1) objc_msg_lookup_super_stret(super,selector)(a0,a1) objc_lookUpClass(name)(a0) objc_getClass(name)(a0) objc_getRequiredClass(name)(a0) objc_lookup_class(name)(a0) objc_get_class(name)(a0) objc_exception_throw(object)(a0) objc_sync_enter(object)(a0) objc_sync_exit(object)(a0) objc_getProperty(self,_cmd,offset,atomic)(a0,a1,d0,d1) objc_setProperty(self,_cmd,offset,value,atomic,copy)(a0,a1,d0,a2,d1,d2) objc_getPropertyStruct(dest,src,size,atomic,strong)(a0,a1,d0,d1,d2) objc_setPropertyStruct(dest,src,size,atomic,strong)(a0,a1,d0,d1,d2) objc_enumerationMutation(object)(a0) __gnu_objc_personality_v0_m68k(version,actions,exClass,ex,ctx)(d0,d1,d2,a0,a1) __gnu_objc_personality_sj0_m68k(version,actions,exClass,ex,ctx)(d0,d1,d2,a0,a1) objc_retain(object)(a0) objc_retainBlock(block)(a0) objc_retainAutorelease(object)(a0) objc_release(object)(a0) objc_autorelease(object)(a0) objc_autoreleaseReturnValue(object)(a0) objc_retainAutoreleaseReturnValue(object)(a0) objc_retainAutoreleasedReturnValue(object)(a0) objc_storeStrong(object,value)(a0,a1) objc_storeWeak(object,value)(a0,a1) objc_loadWeakRetained(object)(a0) objc_initWeak(object,value)(a0,a1) objc_destroyWeak(object)(a0) objc_loadWeak(object)(a0) objc_copyWeak(dest,src)(a0,a1) objc_moveWeak(dest,src)(a0,a1) * These only need glue on MorphOS. As none of them are functions that are used in hot paths, it's easier to also use the glue on AmigaOS 3, which also has the benefit of having all __saveds in a single place. sel_registerName(name)(a0) sel_getName(selector)(a0) sel_isEqual(selector1,selector2)(a0,a1) objc_allocateClassPair(superclass,name,extraBytes)(a0,a1,d0) objc_registerClassPair(class_)(a0) objc_getClassList(buffer,count)(a0,d0) objc_copyClassList(length)(a0) class_isMetaClass(class_)(a0) class_getName(class_)(a0) class_getSuperclass(class_)(a0) class_getInstanceSize(class_)(a0) class_respondsToSelector(class_,selector)(a0,a1) class_conformsToProtocol(class_,p)(a0,a1) class_getMethodImplementation(class_,selector)(a0,a1) class_getMethodImplementation_stret(class_,selector)(a0,a1) class_getMethodTypeEncoding(class_,selector)(a0,a1) class_addMethod(class_,selector,implementation,typeEncoding)(a0,a1,a2,a3) class_replaceMethod(class_,selector,implementation,typeEncoding)(a0,a1,a2,a3) object_getClass(object)(a0) object_setClass(object,class_)(a0,a1) object_getClassName(object)(a0) protocol_getName(protocol)(a0) protocol_isEqual(protocol1,protocol2)(a0,a1) protocol_conformsToProtocol(protocol1,protocol2)(a0,a1) objc_exit()() objc_setUncaughtExceptionHandler(handler)(a0) objc_setForwardHandler(forward,stretForward)(a0,a1) objc_setEnumerationMutationHandler(handler)(a0) objc_zero_weak_references(value)(a0) ##end