From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: by sourceware.org (Postfix, from userid 1733) id BFBB438582BB; Thu, 8 Feb 2024 10:41:57 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BFBB438582BB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1707388917; bh=sTaE8V3l12bh/raCX0lG5RMjdvGg11xqGV8E6OKFqTg=; h=From:To:Subject:Date:From; b=dcP43hcnrvhieAhId4IkL11BbTsWlg4dS8D3EctuXzymBpAVeLpJ5AK6/RP0AqqKL 42cSHOQCdo8mtr93qnIkDSz/UMQrJGOY4V/AE9wpPA5+sOFxyLsv8F72O3HgiFBvKm jE3DFy8/yoKkSfbdoVhyUCHKD7NVE/awV00UbBI0= MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="utf-8" From: Georg-Johann Lay To: gcc-cvs@gcc.gnu.org Subject: [gcc r14-8879] AVR: Always define __AVR_PM_BASE_ADDRESS__ in specs provided the core has it. X-Act-Checkin: gcc X-Git-Author: Georg-Johann Lay X-Git-Refname: refs/heads/master X-Git-Oldrev: 5bd96fed4ff5bc480c7af2e650b16198e7e527cc X-Git-Newrev: e515d813f080fb4c4e70d3c7b01815a909893688 Message-Id: <20240208104157.BFBB438582BB@sourceware.org> Date: Thu, 8 Feb 2024 10:41:57 +0000 (GMT) List-Id: https://gcc.gnu.org/g:e515d813f080fb4c4e70d3c7b01815a909893688 commit r14-8879-ge515d813f080fb4c4e70d3c7b01815a909893688 Author: Georg-Johann Lay Date: Thu Feb 8 11:39:53 2024 +0100 AVR: Always define __AVR_PM_BASE_ADDRESS__ in specs provided the core has it. gcc/ * config/avr/gen-avr-mmcu-specs.cc (print_mcu) <*cpp_mcu>: Spec always defines __AVR_PM_BASE_ADDRESS__ if the core has it. Diff: --- gcc/config/avr/gen-avr-mmcu-specs.cc | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/gcc/config/avr/gen-avr-mmcu-specs.cc b/gcc/config/avr/gen-avr-mmcu-specs.cc index 06d9d3c8d7d3..41ebfa82eb56 100644 --- a/gcc/config/avr/gen-avr-mmcu-specs.cc +++ b/gcc/config/avr/gen-avr-mmcu-specs.cc @@ -199,13 +199,21 @@ print_mcu (const avr_mcu_t *mcu) bool flmap = (mcu->dev_attribute & AVR_ISA_FLMAP); bool is_arch = mcu->macro == NULL; bool is_device = ! is_arch; - int flash_pm_offset = 0; + int rodata_pm_offset = 0; + int pm_base_address = 0; if (arch->flash_pm_offset && mcu->flash_pm_offset && mcu->flash_pm_offset != arch->flash_pm_offset) { - flash_pm_offset = mcu->flash_pm_offset; + rodata_pm_offset = mcu->flash_pm_offset; + } + + if (arch->flash_pm_offset) + { + pm_base_address = mcu->flash_pm_offset + ? mcu->flash_pm_offset + : arch->flash_pm_offset; } if (is_arch @@ -339,8 +347,8 @@ print_mcu (const avr_mcu_t *mcu) fprintf (f, "*link_arch:\n\t%s", link_arch_spec); if (is_device - && flash_pm_offset) - fprintf (f, " --defsym=__RODATA_PM_OFFSET__=0x%x", flash_pm_offset); + && rodata_pm_offset) + fprintf (f, " --defsym=__RODATA_PM_OFFSET__=0x%x", rodata_pm_offset); fprintf (f, "\n\n"); if (is_device) @@ -381,10 +389,10 @@ print_mcu (const avr_mcu_t *mcu) fprintf (f, "*cpp_mcu:\n"); fprintf (f, "\t-D%s", mcu->macro); - if (flash_pm_offset) + if (pm_base_address) { fprintf (f, " -U__AVR_PM_BASE_ADDRESS__"); - fprintf (f, " -D__AVR_PM_BASE_ADDRESS__=0x%x", flash_pm_offset); + fprintf (f, " -D__AVR_PM_BASE_ADDRESS__=0x%x", pm_base_address); } if (have_flmap) fprintf (f, " -D__AVR_HAVE_FLMAP__");