qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Magnus Damm <magnus.damm@gmail.com>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] powerpc host trouble
Date: Sun, 9 Jan 2005 19:32:14 +0100	[thread overview]
Message-ID: <aec7e5c30501091032389aeb53@mail.gmail.com> (raw)

Hello,

I've spent some time today trying to fix powerpc host support. I run
Linux on my powerpc box and it is not possible for me to compile the
code:

gcc -Wall -O2 -g -fno-strict-aliasing -D__powerpc__ -I.
-I/home/damm/build/qemu/cvs/src/qemu/target-i386
-I/home/damm/build/qemu/cvs/src/qemu -D_GNU_SOURCE
-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE
-I/home/damm/build/qemu/cvs/src/qemu/slirp -c -o translate-all.o
/home/damm/build/qemu/cvs/src/qemu/translate-all.c
In file included from /home/damm/build/qemu/cvs/src/qemu/translate-all.c:41:
./op.h: In function `dyngen_code':
./op.h:5911: warning: built-in function 'lrint' declared as non-function
./op.h:5933: warning: built-in function 'llrint' declared as non-function
./op.h:8665: warning: built-in function 'sqrt' declared as non-function
./op.h:8798: error: parse error before ')' token
./op.h:8799: error: parse error before ')' token
./op.h:8814: error: parse error before ')' token
./op.h:8815: error: parse error before ')' token
./op.h:8830: error: parse error before ')' token
./op.h:8831: error: parse error before ')' token
./op.h:8846: error: parse error before ')' token
./op.h:8847: error: parse error before ')' token
./op.h:8859: error: parse error before ')' token
./op.h:8860: error: parse error before ')' token
./op.h:8872: error: parse error before ')' token
./op.h:8873: error: parse error before ')' token
make[1]: *** [translate-all.o] Error 1
make[1]: Leaving directory `/home/damm/build/qemu/cvs/src/qemu/i386-softmmu'
make: *** [all] Error 1

Looking at op.h shows me the following:

case INDEX_op_cvtdq2ps: {
    long param1, param2;
    extern void op_cvtdq2ps();
    memcpy(gen_code_ptr, (void *)((char *)&op_cvtdq2ps+0), 176);
    param1 = *opparam_ptr++;
    param2 = *opparam_ptr++;
    *(uint16_t *)(gen_code_ptr + 2) = (param2 + 0 + 0x8000) >> 16;
    *(uint16_t *)(gen_code_ptr + 10) = (param2 + 0);
    *(uint16_t *)(gen_code_ptr + 22) = ((long)(&) + 56 + 0x8000) >> 16;
    *(uint16_t *)(gen_code_ptr + 30) = ((long)(&) + 56);
    *(uint16_t *)(gen_code_ptr + 50) = (param1 + 0 + 0x8000) >> 16;
    *(uint16_t *)(gen_code_ptr + 58) = (param1 + 0);
    gen_code_ptr += 176;
}
break;

The two lines with ((long)(&) are the first two problematic ones: 8798, 8799.
Objdumping op.o shows me:

00011fcc <op_cvtdq2ps>:
   11fcc:       3d 20 00 00     lis     r9,0
   11fd0:       94 21 ff f0     stwu    r1,-16(r1)
   11fd4:       39 29 00 00     addi    r9,r9,0
   11fd8:       3d 40 43 30     lis     r10,17200
   11fdc:       7d 1b 4a 14     add     r8,r27,r9
   11fe0:       3d 20 00 00     lis     r9,0
   11fe4:       80 08 00 0c     lwz     r0,12(r8)
   11fe8:       39 29 00 38     addi    r9,r9,56
   11fec:       91 41 00 08     stw     r10,8(r1)
   11ff0:       6c 00 80 00     xoris   r0,r0,32768
   11ff4:       c9 a9 00 00     lfd     f13,0(r9)
[snip]

Above is 0x11fe2 and 0x11fea the two problematic addresses.

"readelf -a op.o"  shows me the following info:

[snip]
00011fe2  00003f06 R_PPC_ADDR16_HA   00000000   .rodata.cst8 + 38
00011fea  00003f04 R_PPC_ADDR16_LO   00000000   .rodata.cst8 + 38
[snip]

This looks to me that the code wants to access data from the
".rodata.cst8" section. But I do not know how to proceed. Any ideas?

/ magnus

                 reply	other threads:[~2005-01-09 18:51 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=aec7e5c30501091032389aeb53@mail.gmail.com \
    --to=magnus.damm@gmail.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).