From: Daniel Jacobowitz <drow@false.org>
To: qemu-devel@nongnu.org
Subject: Re: [Qemu-devel] ARM
Date: Thu, 10 Jul 2003 12:17:18 -0400 [thread overview]
Message-ID: <20030710161718.GA29632@nevyn.them.org> (raw)
In-Reply-To: <3F0C71CD.30808@free.fr>
[-- Attachment #1: Type: text/plain, Size: 1461 bytes --]
On Wed, Jul 09, 2003 at 09:49:33PM +0200, Fabrice Bellard wrote:
> Daniel Jacobowitz wrote:
> >I was just playing with the ARM support, it's great to see it taking
> >shape :) Fabrice, are you still investigating it, or does it work for
> >you? My local ARM setup crashes a few hundred instructions into ld.so;
> >a loop runs for too long and hits the top of the stack.
> >
>
> With my latest commits it is working: QEMU can launch dynamically linked
> 'ls' and 'bash' processes. I will provide soon a binary archive so that
> people can at least try it if they have problems.
Still doesn't work here. I've attached the debugging output if you're
curious; I won't have time to debug it properly until next week. It
looks like something wrong with the conditional jump.
> Warning: no FPU emulation is done. I just added the necessary code to
> skip the few FPU instructions present in the libc. If anyone has ideas
> about FPU on ARM, I am interested. Unfortunately the Linux distributions
> seem to use the kernel based NetWinder FPU emulator.
Yes; here we use userspace software floating point generally instead.
Hardware which actually has the FPA unit is rare (is there any
supported?)
> I tested the ARM support with an ARM glibc-2.2.5 from a debian 3.0
> installed on a StrongARM board.
My failing test is from a later version of glibc and GCC.
--
Daniel Jacobowitz
MontaVista Software Debian GNU/Linux Developer
[-- Attachment #2: qemu.log --]
[-- Type: text/plain, Size: 8062 bytes --]
start end size prot
00008000-00019000 00011000 r-x
00020000-00021000 00001000 rw-
40158000-401d8000 00080000 rw-
401d8000-401d9000 00001000 ---
401d9000-401ef000 00016000 r-x
401ef000-401f6000 00007000 ---
401f6000-401f7000 00001000 rw-
401f7000-401f8000 00001000 rwx
401f8000-421d9000 01fe1000 ---
start_brk 0x00020b0c
end_code 0x00018240
start_code 0x00008000
end_data 0x00020b0c
start_stack 0x401d7604
brk 0x00020b0c
entry 0x401dad10
----------------
IN:
0x401dad10: mov r0, sp
0x401dad14: bl 0x401daeac
OP:
0x0000: movl_T1_r13
0x0001: movl_r0_T1
0x0002: movl_T0_im 0x401dad18
0x0003: movl_r14_T0
0x0004: jmp 0x800764a0 0x401daeac
0x0005: end
OUT: [size=35]
0x802364a0: movl 0x34(%ebp),%esi
0x802364a3: movl %esi,0x0(%ebp)
0x802364a6: movl $0x401dad18,%ebx
0x802364ab: movl %ebx,0x38(%ebp)
0x802364ae: jmp *0x800764c8
0x802364b4: movl %esi,%esi
0x802364b6: movl $0x800764a1,%ebx
0x802364bb: movl $0x401daeac,0x3c(%ebp)
0x802364c2: ret
----------------
IN:
0x401daeac: stmdb sp!, {r4, r5, r6, r7, r8, r9, r10, r11, lr}
0x401daeb0: ldr r10, [pc, #1584] ; 0x401db4e8
0x401daeb4: sub sp, sp, #464 ; 0x1d0
0x401daeb8: mov r2, #0 ; 0x0
0x401daebc: str r0, [sp, #12]
0x401daec0: add r10, pc, r10
0x401daec4: mov r1, r2
0x401daec8: add r3, sp, #464 ; 0x1d0
0x401daecc: add r2, r2, #1 ; 0x1
0x401daed0: cmp r2, #52 ; 0x34
0x401daed4: str r1, [r3, -#400]
0x401daed8: add r3, r3, #4 ; 0x4
0x401daedc: bls 0x401daecc
OP:
0x0000: movl_T1_r13
0x0001: addl_T1_im 0xffffffdc
0x0002: movl_T0_r4
0x0003: stl_T0_T1
0x0004: addl_T1_im 0x4
0x0005: movl_T0_r5
0x0006: stl_T0_T1
0x0007: addl_T1_im 0x4
0x0008: movl_T0_r6
0x0009: stl_T0_T1
0x000a: addl_T1_im 0x4
0x000b: movl_T0_r7
0x000c: stl_T0_T1
0x000d: addl_T1_im 0x4
0x000e: movl_T0_r8
0x000f: stl_T0_T1
0x0010: addl_T1_im 0x4
0x0011: movl_T0_r9
0x0012: stl_T0_T1
0x0013: addl_T1_im 0x4
0x0014: movl_T0_r10
0x0015: stl_T0_T1
0x0016: addl_T1_im 0x4
0x0017: movl_T0_r11
0x0018: stl_T0_T1
0x0019: addl_T1_im 0x4
0x001a: movl_T0_r14
0x001b: stl_T0_T1
0x001c: addl_T1_im 0xffffffe0
0x001d: movl_r13_T1
0x001e: movl_T1_im 0x401daeb8
0x001f: addl_T1_im 0x630
0x0020: ldl_T0_T1
0x0021: movl_r10_T0
0x0022: movl_T1_im 0x1d0
0x0023: movl_T0_r13
0x0024: subl_T0_T1
0x0025: movl_r13_T0
0x0026: movl_T1_im 0x0
0x0027: movl_r2_T1
0x0028: movl_T1_r13
0x0029: addl_T1_im 0xc
0x002a: movl_T0_r0
0x002b: stl_T0_T1
0x002c: movl_T1_r10
0x002d: movl_T0_im 0x401daec8
0x002e: addl_T0_T1
0x002f: movl_r10_T0
0x0030: movl_T1_r2
0x0031: movl_r1_T1
0x0032: movl_T1_im 0x1d0
0x0033: movl_T0_r13
0x0034: addl_T0_T1
0x0035: movl_r3_T0
0x0036: movl_T1_im 0x1
0x0037: movl_T0_r2
0x0038: addl_T0_T1
0x0039: movl_r2_T0
0x003a: movl_T1_im 0x34
0x003b: movl_T0_r2
0x003c: subl_T0_T1_cc
0x003d: movl_T1_r3
0x003e: addl_T1_im 0xfffffe70
0x003f: movl_T0_r1
0x0040: stl_T0_T1
0x0041: movl_T1_im 0x4
0x0042: movl_T0_r3
0x0043: addl_T0_T1
0x0044: movl_r3_T0
0x0045: test_hi 0x800764d8 0x401daee0
0x0046: jmp 0x800764d8 0x401daecc
0x0047: end
OUT: [size=323]
0x802364d0: movl 0x34(%ebp),%esi
0x802364d3: addl $0xffffffdc,%esi
0x802364d9: movl 0x10(%ebp),%ebx
0x802364dc: movl %ebx,(%esi)
0x802364de: addl $0x4,%esi
0x802364e4: movl 0x14(%ebp),%ebx
0x802364e7: movl %ebx,(%esi)
0x802364e9: addl $0x4,%esi
0x802364ef: movl 0x18(%ebp),%ebx
0x802364f2: movl %ebx,(%esi)
0x802364f4: addl $0x4,%esi
0x802364fa: movl 0x1c(%ebp),%ebx
0x802364fd: movl %ebx,(%esi)
0x802364ff: addl $0x4,%esi
0x80236505: movl 0x20(%ebp),%ebx
0x80236508: movl %ebx,(%esi)
0x8023650a: addl $0x4,%esi
0x80236510: movl 0x24(%ebp),%ebx
0x80236513: movl %ebx,(%esi)
0x80236515: addl $0x4,%esi
0x8023651b: movl 0x28(%ebp),%ebx
0x8023651e: movl %ebx,(%esi)
0x80236520: addl $0x4,%esi
0x80236526: movl 0x2c(%ebp),%ebx
0x80236529: movl %ebx,(%esi)
0x8023652b: addl $0x4,%esi
0x80236531: movl 0x38(%ebp),%ebx
0x80236534: movl %ebx,(%esi)
0x80236536: addl $0xffffffe0,%esi
0x8023653c: movl %esi,0x34(%ebp)
0x8023653f: movl $0x401daeb8,%esi
0x80236544: addl $0x630,%esi
0x8023654a: movl (%esi),%ebx
0x8023654c: movl %ebx,0x28(%ebp)
0x8023654f: movl $0x1d0,%esi
0x80236554: movl 0x34(%ebp),%ebx
0x80236557: subl %esi,%ebx
0x80236559: movl %ebx,0x34(%ebp)
0x8023655c: movl $0x0,%esi
0x80236561: movl %esi,0x8(%ebp)
0x80236564: movl 0x34(%ebp),%esi
0x80236567: addl $0xc,%esi
0x8023656d: movl 0x0(%ebp),%ebx
0x80236570: movl %ebx,(%esi)
0x80236572: movl 0x28(%ebp),%esi
0x80236575: movl $0x401daec8,%ebx
0x8023657a: addl %esi,%ebx
0x8023657c: movl %ebx,0x28(%ebp)
0x8023657f: movl 0x8(%ebp),%esi
0x80236582: movl %esi,0x4(%ebp)
0x80236585: movl $0x1d0,%esi
0x8023658a: movl 0x34(%ebp),%ebx
0x8023658d: addl %esi,%ebx
0x8023658f: movl %ebx,0xc(%ebp)
0x80236592: movl $0x1,%esi
0x80236597: movl 0x8(%ebp),%ebx
0x8023659a: addl %esi,%ebx
0x8023659c: movl %ebx,0x8(%ebp)
0x8023659f: movl $0x34,%esi
0x802365a4: movl 0x8(%ebp),%ebx
0x802365a7: movl %ebx,%eax
0x802365a9: xorl %edx,%edx
0x802365ab: subl %esi,%ebx
0x802365ad: cmpl %esi,%eax
0x802365af: setae %dl
0x802365b2: movl %edx,0x44(%ebp)
0x802365b5: movl %eax,%edx
0x802365b7: xorl %esi,%edx
0x802365b9: xorl %ebx,%eax
0x802365bb: andl %edx,%eax
0x802365bd: movl %ebx,0x4c(%ebp)
0x802365c0: movl %eax,0x48(%ebp)
0x802365c3: movl 0xc(%ebp),%esi
0x802365c6: addl $0xfffffe70,%esi
0x802365cc: movl 0x4(%ebp),%ebx
0x802365cf: movl %ebx,(%esi)
0x802365d1: movl $0x4,%esi
0x802365d6: movl 0xc(%ebp),%ebx
0x802365d9: addl %esi,%ebx
0x802365db: movl %ebx,0xc(%ebp)
0x802365de: movl 0x44(%ebp),%eax
0x802365e1: testl %eax,%eax
0x802365e3: je 0x802365fe
0x802365e5: movl 0x4c(%ebp),%eax
0x802365e8: testl %eax,%eax
0x802365ea: je 0x802365fe
0x802365ec: jmp *0x800764fc
0x802365f2: movl $0x800764d8,%ebx
0x802365f7: movl $0x401daee0,0x3c(%ebp)
0x802365fe: jmp *0x80076500
0x80236604: movl %esi,%esi
0x80236606: movl $0x800764d9,%ebx
0x8023660b: movl $0x401daecc,0x3c(%ebp)
0x80236612: ret
----------------
IN:
0x401daecc: add r2, r2, #1 ; 0x1
0x401daed0: cmp r2, #52 ; 0x34
0x401daed4: str r1, [r3, -#400]
0x401daed8: add r3, r3, #4 ; 0x4
0x401daedc: bls 0x401daecc
OP:
0x0000: movl_T1_im 0x1
0x0001: movl_T0_r2
0x0002: addl_T0_T1
0x0003: movl_r2_T0
0x0004: movl_T1_im 0x34
0x0005: movl_T0_r2
0x0006: subl_T0_T1_cc
0x0007: movl_T1_r3
0x0008: addl_T1_im 0xfffffe70
0x0009: movl_T0_r1
0x000a: stl_T0_T1
0x000b: movl_T1_im 0x4
0x000c: movl_T0_r3
0x000d: addl_T0_T1
0x000e: movl_r3_T0
0x000f: test_hi 0x80076510 0x401daee0
0x0010: jmp 0x80076510 0x401daecc
0x0011: end
OUT: [size=129]
0x80236620: movl $0x1,%esi
0x80236625: movl 0x8(%ebp),%ebx
0x80236628: addl %esi,%ebx
0x8023662a: movl %ebx,0x8(%ebp)
0x8023662d: movl $0x34,%esi
0x80236632: movl 0x8(%ebp),%ebx
0x80236635: movl %ebx,%eax
0x80236637: xorl %edx,%edx
0x80236639: subl %esi,%ebx
0x8023663b: cmpl %esi,%eax
0x8023663d: setae %dl
0x80236640: movl %edx,0x44(%ebp)
0x80236643: movl %eax,%edx
0x80236645: xorl %esi,%edx
0x80236647: xorl %ebx,%eax
0x80236649: andl %edx,%eax
0x8023664b: movl %ebx,0x4c(%ebp)
0x8023664e: movl %eax,0x48(%ebp)
0x80236651: movl 0xc(%ebp),%esi
0x80236654: addl $0xfffffe70,%esi
0x8023665a: movl 0x4(%ebp),%ebx
0x8023665d: movl %ebx,(%esi)
0x8023665f: movl $0x4,%esi
0x80236664: movl 0xc(%ebp),%ebx
0x80236667: addl %esi,%ebx
0x80236669: movl %ebx,0xc(%ebp)
0x8023666c: movl 0x44(%ebp),%eax
0x8023666f: testl %eax,%eax
0x80236671: je 0x8023668c
0x80236673: movl 0x4c(%ebp),%eax
0x80236676: testl %eax,%eax
0x80236678: je 0x8023668c
0x8023667a: jmp *0x80076534
0x80236680: movl $0x80076510,%ebx
0x80236685: movl $0x401daee0,0x3c(%ebp)
0x8023668c: jmp *0x80076538
0x80236692: movl %esi,%esi
0x80236694: movl $0x80076511,%ebx
0x80236699: movl $0x401daecc,0x3c(%ebp)
0x802366a0: ret
next prev parent reply other threads:[~2003-07-10 16:23 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2003-07-09 18:35 [Qemu-devel] ARM Daniel Jacobowitz
2003-07-09 19:49 ` Fabrice Bellard
2003-07-10 16:17 ` Daniel Jacobowitz [this message]
2003-07-10 20:10 ` Fabrice Bellard
2003-07-10 23:24 ` Daniel Jacobowitz
2003-07-10 16:45 ` Laurent Desnogues
2003-07-10 23:17 ` Daniel Jacobowitz
2003-07-09 19:53 ` Jocelyn Mayer
2003-07-10 8:44 ` Fabrice Bellard
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=20030710161718.GA29632@nevyn.them.org \
--to=drow@false.org \
--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).