From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5233 invoked by alias); 27 Mar 2003 17:12:47 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 5222 invoked from network); 27 Mar 2003 17:12:45 -0000 Received: from unknown (HELO mx1.redhat.com) (66.187.233.31) by sources.redhat.com with SMTP; 27 Mar 2003 17:12:45 -0000 Received: from int-mx1.corp.redhat.com (int-mx1.corp.redhat.com [172.16.52.254]) by mx1.redhat.com (8.11.6/8.11.6) with ESMTP id h2RHCiQ12520 for ; Thu, 27 Mar 2003 12:12:44 -0500 Received: from pobox.corp.redhat.com (pobox.corp.redhat.com [172.16.52.156]) by int-mx1.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h2RHCiV29788 for ; Thu, 27 Mar 2003 12:12:44 -0500 Received: from workshop.nickc.cambridge.redhat.com.redhat.com (vpnuser8.stuttgart.redhat.com [172.16.4.8]) by pobox.corp.redhat.com (8.11.6/8.11.6) with ESMTP id h2RHCcU29757 for ; Thu, 27 Mar 2003 12:12:40 -0500 To: gdb-patches@sources.redhat.com Subject: SIM: Add support for Intel iWMMXt processor From: Nick Clifton Date: Thu, 27 Mar 2003 17:12:00 -0000 Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" X-SW-Source: 2003-03/txt/msg00550.txt.bz2 --=-=-= Content-length: 1509 Hi Guys, I am applying the attached patch below to add support for Intel's iWMMXt processor to the ARM simulator. (The old armulator based one, not the cgen based one). There are also some patches for GDB itself but I am holding off on submitting these until I can them for multi-arch issues. Cheers Nick include/gdb/ChangeLog 2003-03-27 Nick Clifton * sim-arm.h (sim_arm_regs): Add iWMMXt registers. sim/arm/ChangeLog 2003-03-27 Nick Clifton * configure.in: (CON_FLAGS): Define and initialise. (COPRO): Add iwmmxt.o if configuring for XScale. * configure: Regenerate. * Makefile.in (iwmmxt.o): Add rule to build. (COM_FLAGS): Define. (ALL_FLAGS): Add CON_FLAGS. * armcopro.c (ARMul_CoProInit): Initialise iWMMXt coprocessors. * armdefs.h (struct ARMul_State): Add 'is_iWMMXt' field. (ARM_iWMMXt_Prop): Define. * armemu.c (ARMul_Emulate16): Intercept iWMMXt instructions and pass to coprocessor. * arminit.c (ARMul_NewState): Initialise 'is_iWMMXt'. (ARMul_Abort): Catch branches through uninitialised vectors. * armos.c (softevtorcode): Update comment. (ARMul_OsInit): Use ARMUndefinedInstrV. (ARMul_OsHandleSWI): Catch SWIs for unhandled vectors. * wrapper.c (sim_create_inferior): Handle iWMMXt processor type. (sim_store_register): Handle iWMMXt registers. (sim_fetch_register): Handle iWMMXt registers. * iwmmxt.h: New file. Exported iWMMXt coprocessor emulator functions. * iwmmxt.c: New file: iWMMXt emulator. --=-=-= Content-Type: application/x-bzip2 Content-Disposition: attachment; filename=sim.iwmmxt.patch.bz2 Content-Transfer-Encoding: base64 Content-Description: iWMMXt simulator patch Content-length: 20521 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 ZZmmaTNYd3jERe1K0pita3rR7O9ImIiGZoj1OPA50YD7oG/a/U7hfrglm88p Z6Js6iedKiEqraiCsZUgkg93q/OYfkpxnzmq+6Yf0jP/IYYVV4ioQgt0jCOe x2Q4c04ePVjbluz6oaXQDygB5AayM5jUkJC6aa81godcD3jAyQqfRCB6JXQU RzLZkSleE9wJD0SZCUNEXSDBgJSYSXamKU9uJNyuCudar/Ph0ZcuMIBk6GXu mQjnLNS44VfoIg9kOqr4BTa9bqtiY0Xvbrtuigr9psnAtVg0orUZHcGtVdPj 0NtzSLt+ULyWpjaMfeF+MyJIabQbrohkNBbf9ZIbSlt77LOeejfKXOwSJhMq o9OZjQg5IQc8Bt7rDMEyAwCXSyjGuJsUhCvQK1eCHZreshN6pUkNUm/TxkAc mhtD6YQsmDYdDG+XN5KtQWt73Y59GuTzT04Tgyr3WRafVCxoNMsubLRBMIoU 1HVEzLgvMDEkCpaWkZY1IGdV+c+RgIvYMj4jw/lhugnKB1RZaOc2Iqj2mXiL O42lZwLaovBvQxEJOyeaCG4NPz5qDX7KVMQUb9Hp6O8wbJnI36WrjYpII3Rj StxYmr93bi3OadVQfU1fX0vCEx4NuCqIkISpUkZIyEkgowZD0zfxfU6X6a/1 xIfoSlWC2JYLBaSwkIQBMqCRL+Of5p/3hDEBDJSShAwCZn8ZfQUQhsGH/QB/ uGGAJcFFn9bOMGRsx1BhJkmiyi4/eYXJiH7QyVxhVNxRt/pMkMQ0kkcKtScr H+q86SGtqo3WEbIUk31CbYHCQOrMUKVoHamYA9hA/Vds7OjEOZRyVKVaQO5P 1nhpVf6EOFHXWbQgmJGWQg/dgh2irwhSPgjISK53+Q/6fcQn2mbmewC36H6X L/Ehm5ZEJanv/rA/9KpoH7cxz/P/vbd7H+/9KAGw4t69c5snNESyQ5FJPNZI xaWTDuH4AM0AhF8ZKg8W0lcojUH+Tix/2kcAoxtq6NoaEeh2OjeIpkC8CcmA bkaQ1JEQQkRRSOiFyAamYiIiFhIU8DxD0niIOxPgA4ccfzd4Boz65W+IDT88 NPbGQUQ4ZQhsaR+gZqX4LYb8l+w4/55/LrVo0gGxu+NkbIpUqqUrYmxMpkVl gMMMAww0OA6EJEmIiVhYJJiAIWCSWGoiIgJYJLkf9Yywyw3QL2OOJSxCMaAs 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 GjUeMUh//F3JFOFCQLD5EKQ= --=-=-=--