|
From: | Andreas Färber |
Subject: | Re: [Qemu-devel] Re: [RFC] OSX/ppc64 TCG support |
Date: | Sat, 11 Apr 2009 10:24:45 +0200 |
Am 11.04.2009 um 09:22 schrieb malc:
On Sat, 11 Apr 2009, Andreas F?rber wrote:ii) In ppc64/tcg-target.c tcg_target_call_oarg_regs is declared with alength of 2 but only contains one register. Intended?Probably not, then again i'd have to recheck PPC64 ABI for DI/struct returns to be sure, then again QEMU doesn't sue those. Anyhow...diff --git a/tcg/ppc64/tcg-target.c b/tcg/ppc64/tcg-target.c index a96314c..2a8eaec 100644 --- a/tcg/ppc64/tcg-target.c +++ b/tcg/ppc64/tcg-target.c@@ -125,11 +134,15 @@ static const int tcg_target_call_iarg_regs[] = {TCG_REG_R10 }; -static const int tcg_target_call_oarg_regs[2] = { +static const int tcg_target_call_oarg_regs[1] = { TCG_REG_R3 };This is most certainly is just as in correct as having it at [2] andnot initializing element N1 since main tcg proper never invokes ARRAY_SIZEon tcg_target_call_oarg_regs...
Oops, I must have confused this with iargs, there the ARRAY_SIZE is checked in tcg_target_get_call_iarg_regs_count. Anyway, I had already tried adding TCG_REG_R4 like for ppc, without noticeable difference.
Unfortunately qemu-system-ppc still crashes immediately, any hints welcome.Program received signal EXC_BAD_INSTRUCTION, Illegal instruction/ operand.0x00000000005a9680 in code_gen_prologue () (gdb) btI think TOCs are a lot different in ppc-elf64abi and Mach-O one, that would explain why it fails so early
Could you please elaborate on that? I am still not familiar with the topic. Do you mean I would have to initialize the TOC field of the function descriptor? Or in which other parts of the code would I need to make adjustments for those TOCs? In the above ABI document neither function descriptors nor TOCs are mentioned at all.
#0 0x00000000005a9680 in code_gen_prologue ()[..snip..]Unfortunatelly i don't have access to MacOSX on a PPC64 so you are on yourown there.
I know, you said so. Still any hints where to dig or advice how to debug this with gdb would be helpful.
Andreas
[Prev in Thread] | Current Thread | [Next in Thread] |