From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 31663 invoked by alias); 14 Dec 2006 16:09:50 -0000 Received: (qmail 31441 invoked by uid 48); 14 Dec 2006 16:09:29 -0000 Date: Thu, 14 Dec 2006 16:09:00 -0000 From: "cagney at redhat dot com" To: frysk-bugzilla@sourceware.org Message-ID: <20061214160929.3721.cagney@redhat.com> Reply-To: sourceware-bugzilla@sourceware.org Subject: [Bug general/3721] New: Add ISA <-> Elf map, eliminate switch X-Bugzilla-Reason: AssignedTo Mailing-List: contact frysk-bugzilla-help@sourceware.org; run by ezmlm Precedence: bulk List-Subscribe: List-Post: List-Help: , Sender: frysk-bugzilla-owner@sourceware.org X-SW-Source: 2006-q4/txt/msg00661.txt.bz2 List-Id: The file IsaFactory contains: ElfEHeader header = elfFile.getEHeader(); switch (header.machine) { case ElfEMachine.EM_386: { if (frysk.core.Build.BUILD_ARCH.equals("i686")) return LinuxIa32.isaSingleton (); else return LinuxIa32On64.isaSingleton(); } case ElfEMachine.EM_PPC: { // Assume we do not build 32-bit frysk on ppc64. if (frysk.core.Build.BUILD_ARCH.equals("powerpc64")) return LinuxPPC32On64.isaSingleton (); else return LinuxPPC.isaSingleton (); } case ElfEMachine.EM_PPC64: return LinuxPPC64.isaSingleton (); case ElfEMachine.EM_X86_64: return LinuxX8664.isaSingleton (); default: throw new TaskException("Unknown machine type " + header.machine); } instead the IsaFactory (called ElfIsa????) should contain a hash table mapping Elf.MACHINE/Elf.ENDIAN/Elf.WORDSIZE <-> a corresponding ISA object and then use that. That way, given an ISA, the corresponding Elf info can be found - see fcore; and given the Elf info the corresponding ISA can be found - see the existing code. -- Summary: Add ISA <-> Elf map, eliminate switch Product: frysk Version: unspecified Status: NEW Severity: normal Priority: P2 Component: general AssignedTo: frysk-bugzilla at sourceware dot org ReportedBy: cagney at redhat dot com CC: pmuldoon at redhat dot com OtherBugsDependingO 2234,3387 nThis: http://sourceware.org/bugzilla/show_bug.cgi?id=3721 ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee.