arch/m68k-amiga: gencall - fix clobbered return register issue
commit067c98284c6a488accce822d508f350f42950a45
authorjmcmullan <jmcmullan@fb15a70f-31f2-0310-bbcc-cdcc74a49acc>
Tue, 14 May 2013 20:27:01 +0000 (14 20:27 +0000)
committerjmcmullan <jmcmullan@fb15a70f-31f2-0310-bbcc-cdcc74a49acc>
Tue, 14 May 2013 20:27:01 +0000 (14 20:27 +0000)
treeb6c4ade1678aa9488c2e9c8f6f69a980b9ca2a37
parent9772a188e0e5e96e458427a60727826ca2f8b5fc
arch/m68k-amiga: gencall - fix clobbered return register issue

Fix an issue where, occasionally, code of the form:

if (LibCall1(d0_arg) == constant) {
   LibCall2(a0_arg);
}

generated assembly where LibCall2() clobbered the return value from
LibCall1(), and then the return value in d0 was then checked.

The new generated libcall.h makes slightly tighter assembly code,
but caused a gcc optimization failure for -Os in mathieeedoubtrans.library

(The former is good, the latter has been worked around by
 compiling that library with -O1 on m68k)

The previous workaround for Prefs/Printer has been removed.

Signed-off-by: Jason S. McMullan <jason.mcmullan@gmail.com>
git-svn-id: https://svn.aros.org/svn/aros/trunk/AROS@47425 fb15a70f-31f2-0310-bbcc-cdcc74a49acc
arch/m68k-all/include/gencall.c
workbench/libs/mathieeedoubtrans/mmakefile.src
workbench/prefs/printer/prefs.c