From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 30028 invoked by alias); 8 Aug 2019 12:09:51 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 30019 invoked by uid 89); 8 Aug 2019 12:09:50 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-11.9 required=5.0 tests=BAYES_00,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy=config.gcc, MCU, configgcc, UD:config.gcc X-HELO: mail-wm1-f65.google.com Received: from mail-wm1-f65.google.com (HELO mail-wm1-f65.google.com) (209.85.128.65) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 08 Aug 2019 12:09:48 +0000 Received: by mail-wm1-f65.google.com with SMTP id s15so2174410wmj.3 for ; Thu, 08 Aug 2019 05:09:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mittosystems.com; s=google; h=date:from:to:subject:message-id:mime-version :content-transfer-encoding; bh=GLS2Lktgi18JRCrzJEyVJWKeC7RTOPnhf0V/4qi5mHg=; b=OM3k1PguDtiO8W3dHYJJobdWaOiAABolpyB23/DontTAKqZPRmnVOKYDfbcjPSH7Z0 85NIy/vo5GhG7NjAl8v168vOnaAhUw+XnbF54Ep4fdzZyfqr9gMVtQ9TNtnA1abN4zwN 5RToQ/Eynuwv1pTXWe8sMQBK4WIaVZlxW/uq9dr01Z9LAVB3qRRUWl9M9X8/toAPss3P F5QAmv8ppp5bqSVGVFL/DOgCSxLLpDqRWfWsnFiPqb2QG41W3qnEa0vG3VPn8i4hq7S+ Xh+ZzDWSaKHRJBOauaXGZoEl75REB6cRgtnZEuzCiHxTTXGK+rq4xBzzpJPZ/3Ps/2IN kSGg== Return-Path: Received: from jozef-kubuntu ([2a01:4b00:87fd:900:44b8:b817:ce48:ac3c]) by smtp.gmail.com with ESMTPSA id d20sm1266667wmb.24.2019.08.08.05.09.46 for (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Thu, 08 Aug 2019 05:09:46 -0700 (PDT) Date: Thu, 08 Aug 2019 12:17:00 -0000 From: Jozef Lawrynowicz To: "gcc-patches@gcc.gnu.org" Subject: [MSP430][PATCH 0/2] Improve and extend MCU data handling Message-ID: <20190808130944.680d25e8@jozef-kubuntu> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit X-IsSubscribed: yes X-SW-Source: 2019-08/txt/msg00537.txt.bz2 Each different MSP430 MCU has two properties that affect code generation, the CPU ISA and the hardware multiply support. These can be manually specified with the -mcpu= and -mhwmult= options, respectively. The existing -mmcu= option takes an MCU name as an argument and uses the CPU ISA and hardware multiply known to be supported for that MCU during code generation, so the user does not have to provide the -mcpu and -mhwmult options. The first patch improves the handling of MCU data by consolidating multiple copies of hard-coded MCU data into a single location, and adds a new function to be used as a single entry point for the extraction of MCU data for the selected MCU. The second patch extends the MCU data handling so that MCU data can be provided in an external file (devices.csv). This means the compiler doesn't have to be updated and rebuilt to support new devices when they are released. Successfully regtested for msp430-elf on trunk. Ok for trunk? Thanks, Jozef Jozef Lawrynowicz (2): MSP430: Devices [1]: Consolidate handling of hard-coded MCU data MSP430: Devices [2]: Read MCU data from external devices.csv file, if it exists gcc/config.gcc | 3 +- gcc/config/msp430/driver-msp430.c | 675 +----------- gcc/config/msp430/msp430-devices.c | 971 ++++++++++++++++++ gcc/config/msp430/msp430-devices.h | 31 + gcc/config/msp430/msp430.c | 680 +----------- gcc/config/msp430/msp430.h | 18 +- gcc/config/msp430/msp430.opt | 9 + gcc/config/msp430/t-msp430 | 236 +---- gcc/doc/invoke.texi | 14 +- .../gcc.target/msp430/devices-main.c | 6 + .../gcc.target/msp430/devices/README | 17 + .../gcc.target/msp430/devices/bad-devices-1.c | 5 + .../msp430/devices/bad-devices-1.csv | 3 + .../gcc.target/msp430/devices/bad-devices-2.c | 5 + .../msp430/devices/bad-devices-2.csv | 3 + .../gcc.target/msp430/devices/bad-devices-3.c | 5 + .../msp430/devices/bad-devices-3.csv | 3 + .../gcc.target/msp430/devices/bad-devices-4.c | 5 + .../msp430/devices/bad-devices-4.csv | 3 + .../gcc.target/msp430/devices/bad-devices-5.c | 5 + .../msp430/devices/bad-devices-5.csv | 3 + .../gcc.target/msp430/devices/bad-devices-6.c | 5 + .../msp430/devices/bad-devices-6.csv | 3 + .../msp430/devices/csv-device-order.c | 11 + .../gcc.target/msp430/devices/csv-msp430_00.c | 7 + .../gcc.target/msp430/devices/csv-msp430_01.c | 7 + .../gcc.target/msp430/devices/csv-msp430_02.c | 7 + .../gcc.target/msp430/devices/csv-msp430_04.c | 7 + .../gcc.target/msp430/devices/csv-msp430_08.c | 7 + .../gcc.target/msp430/devices/csv-msp430_10.c | 6 + .../gcc.target/msp430/devices/csv-msp430_11.c | 6 + .../gcc.target/msp430/devices/csv-msp430_12.c | 6 + .../gcc.target/msp430/devices/csv-msp430_14.c | 6 + .../gcc.target/msp430/devices/csv-msp430_18.c | 6 + .../gcc.target/msp430/devices/csv-msp430_20.c | 6 + .../gcc.target/msp430/devices/csv-msp430_21.c | 6 + .../gcc.target/msp430/devices/csv-msp430_22.c | 6 + .../gcc.target/msp430/devices/csv-msp430_24.c | 6 + .../gcc.target/msp430/devices/csv-msp430_28.c | 6 + .../msp430/devices/csv-msp430fr5969.c | 11 + .../gcc.target/msp430/devices/devices.csv | 22 + .../msp430/devices/hard-cc430f5123.c | 7 + .../gcc.target/msp430/devices/hard-foo.c | 6 + .../msp430/devices/hard-msp430afe253.c | 8 + .../msp430/devices/hard-msp430cg4616.c | 7 + .../msp430/devices/hard-msp430f4783.c | 8 + .../msp430/devices/hard-rf430frl154h_rom.c | 8 + gcc/testsuite/gcc.target/msp430/msp430.exp | 96 +- 48 files changed, 1476 insertions(+), 1511 deletions(-) create mode 100644 gcc/config/msp430/msp430-devices.c create mode 100644 gcc/config/msp430/msp430-devices.h create mode 100644 gcc/testsuite/gcc.target/msp430/devices-main.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/README create mode 100644 gcc/testsuite/gcc.target/msp430/devices/bad-devices-1.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/bad-devices-1.csv create mode 100644 gcc/testsuite/gcc.target/msp430/devices/bad-devices-2.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/bad-devices-2.csv create mode 100644 gcc/testsuite/gcc.target/msp430/devices/bad-devices-3.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/bad-devices-3.csv create mode 100644 gcc/testsuite/gcc.target/msp430/devices/bad-devices-4.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/bad-devices-4.csv create mode 100644 gcc/testsuite/gcc.target/msp430/devices/bad-devices-5.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/bad-devices-5.csv create mode 100644 gcc/testsuite/gcc.target/msp430/devices/bad-devices-6.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/bad-devices-6.csv create mode 100644 gcc/testsuite/gcc.target/msp430/devices/csv-device-order.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/csv-msp430_00.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/csv-msp430_01.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/csv-msp430_02.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/csv-msp430_04.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/csv-msp430_08.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/csv-msp430_10.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/csv-msp430_11.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/csv-msp430_12.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/csv-msp430_14.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/csv-msp430_18.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/csv-msp430_20.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/csv-msp430_21.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/csv-msp430_22.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/csv-msp430_24.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/csv-msp430_28.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/csv-msp430fr5969.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/devices.csv create mode 100644 gcc/testsuite/gcc.target/msp430/devices/hard-cc430f5123.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/hard-foo.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/hard-msp430afe253.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/hard-msp430cg4616.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/hard-msp430f4783.c create mode 100644 gcc/testsuite/gcc.target/msp430/devices/hard-rf430frl154h_rom.c