ObjFW  Diff

Differences From Artifact [e21a361b93]:

To Artifact [87f8097e13]:


43
44
45
46
47
48
49
50

51
52
53
54
55
56
57
43
44
45
46
47
48
49

50
51
52
53
54
55
56
57







-
+







# define OF_M68K_REG(reg) __asm__(#reg)
#else
# define OF_M68K_REG(reg)
#endif

/* This always needs to be the first thing in the file. */
int
_start()
_start(void)
{
	return -1;
}

struct ObjFWBase {
	struct Library library;
	void *segList;
297
298
299
300
301
302
303
304
305



306
307
308
309
310
311
312
313
297
298
299
300
301
302
303


304
305
306

307
308
309
310
311
312
313







-
-
+
+
+
-







	OF_M68K_ARG(struct ObjFWBase *, base, a6)

	if (base->parent != NULL) {
		struct ObjFWBase *parent;

#ifdef OF_AMIGAOS_M68K
		if (base->initialized)
			for (size_t i = 1; i <= (size_t)_EH_FRAME_BEGINS__; i++)
				libC.__deregister_frame_info(
			for (void *const *frame = _EH_FRAME_BEGINS__;
			    *frame != NULL;)
				libC.__deregister_frame_info(*frame++);
				    (&_EH_FRAME_BEGINS__)[i]);
#endif

		parent = base->parent;

		FreeMem(base->dataSeg - DATA_OFFSET, getDataSize());
		FreeMem((char *)base - base->library.lib_NegSize,
		    base->library.lib_NegSize + base->library.lib_PosSize);
349
350
351
352
353
354
355
356

357
358

359
360

361
362
363
364
365
366
367
368
349
350
351
352
353
354
355

356


357


358

359
360
361
362
363
364
365







-
+
-
-
+
-
-
+
-







	if (base->initialized)
		return true;

	memcpy(&libC, libC_, sizeof(libC));
	__sF = sF;

#ifdef OF_AMIGAOS_M68K
	if ((size_t)_EH_FRAME_BEGINS__ != (size_t)_EH_FRAME_OBJECTS__)
	for (void *const *frame = _EH_FRAME_BEGINS__,
		return false;

	    **object = _EH_FRAME_OBJECTS__; *frame != NULL;)
	for (size_t i = 1; i <= (size_t)_EH_FRAME_BEGINS__; i++)
		libC.__register_frame_info((&_EH_FRAME_BEGINS__)[i],
		libC.__register_frame_info(*frame++, *object++);
		    (&_EH_FRAME_OBJECTS__)[i]);

	iter0 = &__CTOR_LIST__[1];
#elif defined(OF_MORPHOS)
	__asm__ (
	    "lis	%0, __EH_FRAME_BEGIN__@ha\n\t"
	    "la		%0, __EH_FRAME_BEGIN__@l(%0)\n\t"
	    "lis	%1, __CTOR_LIST__@ha\n\t"