From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from list by monty-python.gnu.org with tmda-scanned (Exim 4.10.13) id 19Efqf-0005zu-00 for qemu-devel@nongnu.org; Sat, 10 May 2003 21:41:57 -0400 Received: from mail by monty-python.gnu.org with spam-scanned (Exim 4.10.13) id 19Efqd-0005xe-00 for qemu-devel@nongnu.org; Sat, 10 May 2003 21:41:56 -0400 Received: from mx01.uni-tuebingen.de ([134.2.3.11]) by monty-python.gnu.org with esmtp (Exim 4.10.13) id 19Efqc-0005wW-00 for qemu-devel@nongnu.org; Sat, 10 May 2003 21:41:55 -0400 Received: from juist (semeai.Informatik.Uni-Tuebingen.De [134.2.15.66]) by mx01.uni-tuebingen.de (8.12.3/8.12.3) with ESMTP id h4B1fn3S016966 for ; Sun, 11 May 2003 03:41:49 +0200 Received: from falk by juist with local (Exim 3.36 #1 (Debian)) id 19EfqU-0001Do-00 for ; Sun, 11 May 2003 03:41:46 +0200 From: Falk Hueffner Date: 11 May 2003 03:41:45 +0200 Message-ID: <87ptmqjm3q.fsf@student.uni-tuebingen.de> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Subject: [Qemu-devel] Alpha update List-Id: List-Help: List-Post: List-Subscribe: , List-Archive: List-Unsubscribe: , To: qemu-devel@nongnu.org --=-=-= Hi, this patch does gp and __op_param handling correctly, following a suggestion from Richard Henderson. Also adds support for PC-relative jumps. I believe the translation engine itself is now complete. And I added an Alpha disassembler lifted from binutils. However, there are still problems with the ELF loader. It seems like some binaries want a mmaping at an offset that is not divisible by the page size: ./qemu -d /usr/local/qemu-i386/bin/ls-i386 [...] mmap4k(start = 0x8052000, length = 592, prot = 0x3 (rw), flags = 0x2102 (MAP_FIXED | MAP_PRIVATE | MAP_DENYWRITE), fd = 4, offset = 39040) 39040 % 4096 == 2176 Alpha Linux 2.5.69 doesn't seem to handle unaligned offsets. Do other architecures? Or earlier versions? The em86 code doesn't seem to care about this at all. The only thing to handle this I can think of is to mmap anonymously and use read() to fill in the data... or am I missing something? -- Falk --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=qemu-alpha-2003.05.11.patch.bz2 Content-Transfer-Encoding: base64 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 --=-=-=--