From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from smtpout140.security-mail.net (smtpout140.security-mail.net [85.31.212.149]) by sourceware.org (Postfix) with ESMTPS id CCCCA385C6DB for ; Fri, 21 Jul 2023 07:50:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org CCCCA385C6DB Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=kalrayinc.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=kalrayinc.com Received: from localhost (fx409.security-mail.net [127.0.0.1]) by fx409.security-mail.net (Postfix) with ESMTP id DB48B3495DB for ; Fri, 21 Jul 2023 09:50:07 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kalrayinc.com; s=sec-sig-email; t=1689925808; bh=mchgz9raA5cPs91xKn/nsY4uuPwlMzgRuhAfSgNvAp0=; h=From:To:Cc:Subject:Date:In-Reply-To:References; b=dzkl1SIvhf3gTpyN4Q4xrnKWWFvRCLrhmCwQrLE49MCjeqGpFIH3a8ZFHyDt+GAPZ 0DabKbTX+PesiG3jcH1zNqyuTfD1O4fAt7b5/mOVolR9yF9t3zpRrWFpZT42h3QLt+ AcFA01/R0OPYcsKzWqGj3S61Kz8IB3I+iPyOTLu0= Received: from fx409 (fx409.security-mail.net [127.0.0.1]) by fx409.security-mail.net (Postfix) with ESMTP id A5209349554 for ; Fri, 21 Jul 2023 09:50:07 +0200 (CEST) Received: from FRA01-MR2-obe.outbound.protection.outlook.com (mail-mr2fra01lp0101.outbound.protection.outlook.com [104.47.25.101]) by fx409.security-mail.net (Postfix) with ESMTPS id CFCC53495B1 for ; Fri, 21 Jul 2023 09:50:06 +0200 (CEST) Received: from MR1P264MB2482.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:33::22) by MR1P264MB1731.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:3::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6609.25; Fri, 21 Jul 2023 07:50:09 +0000 Received: from MR1P264MB2482.FRAP264.PROD.OUTLOOK.COM ([fe80::e37a:10dd:d14d:a28d]) by MR1P264MB2482.FRAP264.PROD.OUTLOOK.COM ([fe80::e37a:10dd:d14d:a28d%7]) with mapi id 15.20.6609.026; Fri, 21 Jul 2023 07:50:09 +0000 X-Virus-Scanned: E-securemail Secumail-id: <122ac.64ba38ae.a98a.0> ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Bm0vZN0KYMnwbq48wqau3Z3fztbPmBHSbrqKXeV/NK2ujVu62BynbrgI1zolSTwQ/u9Vd9PGwENKHz5GiSFoDqKt+b3sqQeK5Q095Td7WFVUe/gwlx0cDBCnP0ryUdHBDFrE41sUzVg6cz9r8wuO3XgblKQleNRetAjC4oVRyr4GAwF0CcC7WICrV7rVE4vAiISFp+eCP/RInwX6HK3jTplS3TpAxxmeG2vg49OLm/7lFfl+wEM0BraD8Bhh5RNk21LeYAv2dobKplynRMhvKAXt1wRahEvkbX9ia+7Ky/nFCXRqteVCULWkew8ZswbUeJLa98a/EUOfvBJAswRvxw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=QgGcV1cGqXvZcjV6PY8aENSLXRugb2SCPMxb92/9egI=; b=gcArgLfq1MSOz0XTa07HRLWZ69U2OvUgVF5j8T4f7g5Ll5XIrP3mh+hVmkdH98lUrRxe9n4sRQ3s8gT0Rmaqufb3GG67f4aD4y0Wpzrsp6qfjoCkl1B1vMwR5c4jCQr1NGK2Jw0zAZYJk3gihORDIPlqvLBfik1JPBveCQHLrwbNhIXzrwjZ3QFs6B/tazWqAFtLP38nsB7b/JdaWJw2uKsupL00yAbisrRu6eeBneh4OAcU6TWrfnI7Z41V4sOX7uHa8KY3NKeki56OLd8zZFZpOvHN07CVVeqeoRWpbvEiD6ie1R2KMdLaXrP4chLxzh+KsAN2ta41TgqLLV/+mg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=kalrayinc.com; dmarc=pass action=none header.from=kalrayinc.com; dkim=pass header.d=kalrayinc.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=kalrayinc.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=QgGcV1cGqXvZcjV6PY8aENSLXRugb2SCPMxb92/9egI=; b=Q2mKf3Pdybv0gDAfCSzyEwe2Y3fUibcbozlCVUIe5wnggzs222Y7B9Ii6wPOo2J48YMqEkzulxDVuD2uJ5nXcPF4p65hlfCY/01Qm57x2Knpz3GOBHhnOpbtORxG2+V0EEbNc6CT99a8xoYRndV227nHsrzJNIjNYpueiXwVmP14RRy/YEVLsWCH2y9kSeJCKDBeHWyZKUDeD/cTI9ynhBDc/vntZ3VsDyEy8UqPDeAHV7zLZVh8/MXJN4d+Lvwifjxhe2lYgGlSz+x8o7Ow4qs4+tk8WVu0WH5dCUybXeKkNR3bAPRn/ZduT1ONUtzI3M3em2RyWrgk+nAf9rP3vw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=kalrayinc.com; From: Paul Iannetta To: binutils@sourceware.org Cc: Paul Iannetta Subject: [PATCH 2/7] kvx: Add binutils files. Date: Fri, 21 Jul 2023 09:49:51 +0200 Message-ID: <20230721074956.7188-3-piannetta@kalrayinc.com> X-Mailer: git-send-email 2.35.1.500.gb896f729e2 In-Reply-To: <20230721074956.7188-1-piannetta@kalrayinc.com> References: <20230721074956.7188-1-piannetta@kalrayinc.com> Content-Transfer-Encoding: 8bit X-ClientProxiedBy: LO4P265CA0043.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:2ac::22) To MR1P264MB2482.FRAP264.PROD.OUTLOOK.COM (2603:10a6:501:33::22) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MR1P264MB2482:EE_|MR1P264MB1731:EE_ X-MS-Office365-Filtering-Correlation-Id: ec69635e-993e-49de-b11a-08db89bf1b32 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: h+uZEXaz+ClGOHW1e7xyTaUUWlVsZbJEZAkjzgnOGW7qw+viQnQ+pEsaDPEM77iMIr+4WWclJ7NC28n1UmuQWGNeJwxPVJIw519FCLsvInWY1yr78ElqXjnmGC+iT6haY8mKlPR5yqW3o+w3czSGSbRYUC8mI1EE5pTzELAiu+NvDiklKGg7u0qW3iiiKB+hrNXRLe6gw4OKe2z5TZEQpZMverqwrjBnCaOWpFvNlo2WuWtWRl2wihoCpkXnjyRfZ9rneI3q18UlHfrvZtTZ2vRoxP1NrpUredscX/j5ogM7/EKP59Ms8m+ZancMDIKVzJrDU7cAne0uu1VDmNUtTWxOuXV3WNQze+2OD6G6Nkilcj7dYC4bNAds+5Tx6TXQO1UnvQa6bDwxiqpuyHqj+JKicHKiXnVvGRrZnTT2Klkrlk9HiJhYhi9kGkvYNU3LdAW/cDJpWv6f3cRbY7F0dqCuTlwhWvw6Lajzm/VYOB4KAln9BMs7rWuPOZSqaQcwQRQ3NkEfodUIfHrtp4IvjulOcExi1M11IzTrWsWT75F2YBy9iWSWOsq2aAuiL6WQv5SOUzr3LRNU0pPP3IT1GA== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MR1P264MB2482.FRAP264.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230028)(4636009)(136003)(396003)(366004)(39850400004)(346002)(376002)(451199021)(6666004)(6486002)(478600001)(83380400001)(6916009)(26005)(6506007)(1076003)(107886003)(6512007)(4326008)(38100700002)(66556008)(66476007)(66946007)(186003)(2616005)(5660300002)(8676002)(30864003)(8936002)(2906002)(41300700001)(316002)(86362001)(36756003)(2004002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: qOaDwXbgZbE0Dfl46HEi6dNIfUeVfgmScfgAXxNNimlmZFlkiPm7pZrA3Eios9yrBCcH/fDqOPEZW2HZ5DmVb5QcJkMIuoqVsrEYTvk/Yf2bEs6F0RV6Zfqq9GHpNAgrDDX7DoZm0KRxMRzLSVnsNgK8oeZgQsavq8c4kYKJkUENzkodTwwxagv5ATW1ZPoGYjiyvLE0910Lwh+UTr43RJfh0Zi54dAJgwPg6dcjmo+jRl+wcIwvb04AmuAEEMPjT/X9J4kAmk5ARmwTBZgXMeUyyWZSWTPZqsJVwjxoOc+R/k1lcGrEGno5Tlzlk6mTMar0DNVFaI7N9EuKaRowa6QCm5rfIryaWek0Lwg3ARKn37WdEpedajtMna7nB1GF6PmO8Pdnb8r4/353rCraEGw3HNs4uPD7p88HpioLKKkNYju/u+u157QqhzekRX33zM2ni5cDBbVR0USoiX2TmUMOdJSDlk7bF7xMXYOIJ/6ZfjO0lHCD+3+8I/6r9RvSfskmc1oDa4ugD5EkMqkgFGJbp8cY6FxIIJ3s4ZBUfAztgvnpavVKvUoJp5EGKZwyvWHVlhE1zoudCkvLD2oRH1w/tgEmwjm8Wv5MK7XtruTyJxFu1sZ+TlXxWv7gJhAeUfIoDqG28xIV/wIBt9oeuhue3twROt+0yBtawI5FGmq7GUZt1lAtfbTmcxQCFIFM/5Af1CBR+GaXw9tRlndJQ9k31mHRVIzDXw2gJdlH4OKqiJ7V/Z970Q9Vbhr8yBhXjKhTnlwdYXCiKNX9iHNNpd4uaYo53AbfIBFT6R/PgFkAtS3U6i9MVuRMaVo3VejzxDyNQqKmaw2s/SILg8z7zuu4UHQhQz3v8CpIb0tqs8uLvxtjxJTb3fxmObhZXUBRLY89OIIKPztaTI4azBICykNausd4BlHCQYbvBamifDUDpRRHRW1H60zEvZEpVwAC hiNRSIGw50X+wxFdpImP2XLzBZ4m8zOv/k9nu85Swe6Tc38icw+PKOKcAvNrqBerqWPdoa2h/Sq674puswGa2Jx6JwUGycz9M7P71V5iZBku/tl5HhCCAxoD5TDdrtCTFXKSz+XoffUf2xVzBhfU6gpwLQtgMDWZgRlx+wu4x0xPOPsw8KWtsi685uTw14HKYmN1y8ALksDNlEShA6pB6dl9QVCQL4/oQTbqmU6E0hfaoX8co6TpXFXGiWfNQcUhE6dRyBmpXgv7HyoK8Z1iVxPFp6wEy9YgWg8T2y6S6FF7fNZfVrF7HVdAIvC/XRlaIEIH5zI4FdtdRypwTOo0kajuBoBqx8KpuuZHxblJP+eub0IOd3STctGduMVzfTfDUeF2MxwyvxOhxUUK6my1VCTdsiZVhBMEJOuurYBabCtVMWIZX2SOH2ZVV/cMlKM4SIvNZfcV7HakShmMCqSr9oNBFUKuKbBxL0FUrOVaiHPwWaHqHqVedgBK+D3yzvLVEil9C5x5agw0MrllO0hc4WL4pFKKOGF02pbK1kFXR6UhM19oj55gX0ZhVzkifHWDWsHHy2rkzo7v19sDCUaGHRAy6Rk2l6+EiORXonRKssKbn/QcahNyZL/U/ofBpZqc016QgGcme0COYPFiGe9/KQ== X-OriginatorOrg: kalrayinc.com X-MS-Exchange-CrossTenant-Network-Message-Id: ec69635e-993e-49de-b11a-08db89bf1b32 X-MS-Exchange-CrossTenant-AuthSource: MR1P264MB2482.FRAP264.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 21 Jul 2023 07:50:09.2263 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 8931925d-7620-4a64-b7fe-20afd86363d3 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: bVu53dMsiKJaugb0ejHFY8A+j6TcuT+6R8G0dXCOIQwmh30uf8fjSjZyYRi86wh9pgfObJ7u+RXx0cairMYlZg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: MR1P264MB1731 Content-Type: text/plain; charset=utf-8 X-ALTERMIMEV2_out: done X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,KAM_SHORT,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: binutils/ChangeLog: 2023-07-20 Paul Iannetta * readelf.c (guess_is_rela): Add EM_KVX. (dump_relocations): Likewise. (get_machine_flags): Likewise. (is_32bit_abs_reloc): Likewise. (is_32bit_pcrel_reloc): Likewise. (is_64bit_abs_reloc): Likewise. (is_16bit_abs_reloc): Likewise. (is_none_reloc): Likewise. * testsuite/binutils-all/dw2-decodedline-2.S: New test. * testsuite/binutils-all/kvx/kvx.exp: New file. * testsuite/binutils-all/kvx/pcrel_bundle.d: New test. * testsuite/binutils-all/kvx/pcrel_bundle.s: New test. * testsuite/binutils-all/kvx/pcrel_bundle32bits.d: New test. * testsuite/binutils-all/kvx/pcrel_bundle32bits.s: New test. * testsuite/binutils-all/objcopy.exp: * testsuite/binutils-all/objdump.exp: * testsuite/lib/binutils-common.exp: --- binutils/readelf.c | 26 +++++++++++++ .../binutils-all/dw2-decodedline-2.S | 18 +++++++++ binutils/testsuite/binutils-all/kvx/kvx.exp | 37 +++++++++++++++++++ .../testsuite/binutils-all/kvx/pcrel_bundle.d | 33 +++++++++++++++++ .../testsuite/binutils-all/kvx/pcrel_bundle.s | 25 +++++++++++++ .../binutils-all/kvx/pcrel_bundle32bits.d | 33 +++++++++++++++++ .../binutils-all/kvx/pcrel_bundle32bits.s | 25 +++++++++++++ binutils/testsuite/binutils-all/objcopy.exp | 1 + binutils/testsuite/binutils-all/objdump.exp | 2 + binutils/testsuite/lib/binutils-common.exp | 6 +++ 10 files changed, 206 insertions(+) create mode 100644 binutils/testsuite/binutils-all/dw2-decodedline-2.S create mode 100644 binutils/testsuite/binutils-all/kvx/kvx.exp create mode 100644 binutils/testsuite/binutils-all/kvx/pcrel_bundle.d create mode 100644 binutils/testsuite/binutils-all/kvx/pcrel_bundle.s create mode 100644 binutils/testsuite/binutils-all/kvx/pcrel_bundle32bits.d create mode 100644 binutils/testsuite/binutils-all/kvx/pcrel_bundle32bits.s diff --git a/binutils/readelf.c b/binutils/readelf.c index bb488ef2a5e..d675440eddd 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -121,6 +121,7 @@ #include "elf/i960.h" #include "elf/ia64.h" #include "elf/ip2k.h" +#include "elf/kvx.h" #include "elf/lm32.h" #include "elf/iq2000.h" #include "elf/m32c.h" @@ -1083,6 +1084,7 @@ guess_is_rela (unsigned int e_machine) case EM_IP2K: case EM_IP2K_OLD: case EM_IQ2000: + case EM_KVX: case EM_LATTICEMICO32: case EM_M32C_OLD: case EM_M32C: @@ -1767,6 +1769,10 @@ dump_relocations (Filedata *filedata, rtype = elf_ia64_reloc_type (type); break; + case EM_KVX: + rtype = elf_kvx_reloc_type (type); + break; + case EM_CRIS: rtype = elf_cris_reloc_type (type); break; @@ -4351,6 +4357,17 @@ get_machine_flags (Filedata * filedata, unsigned e_flags, unsigned e_machine) strcat (buf, ", relocatable module"); break; + case EM_KVX: + if ((e_flags & (ELF_KVX_CORE_MAJOR_MASK | ELF_KVX_CORE_MINOR_MASK)) == ELF_KVX_CORE_KV3_1) + strcat (buf, ", Kalray VLIW kv3-1"); + else if ((e_flags & (ELF_KVX_CORE_MAJOR_MASK | ELF_KVX_CORE_MINOR_MASK)) == ELF_KVX_CORE_KV3_2) + strcat (buf, ", Kalray VLIW kv3-2"); + else if ((e_flags & (ELF_KVX_CORE_MAJOR_MASK | ELF_KVX_CORE_MINOR_MASK)) == ELF_KVX_CORE_KV4_1) + strcat (buf, ", Kalray VLIW kv4-1"); + else + strcat (buf, ", unknown KVX MPPA"); + break; + case EM_MSP430: strcat (buf, _(": architecture variant: ")); switch (e_flags & EF_MSP430_MACH) @@ -14385,6 +14402,8 @@ is_32bit_abs_reloc (Filedata * filedata, unsigned int reloc_type) return reloc_type == 2; /* R_IP2K_32. */ case EM_IQ2000: return reloc_type == 2; /* R_IQ2000_32. */ + case EM_KVX: + return reloc_type == 2; /* R_KVX_32. */ case EM_LATTICEMICO32: return reloc_type == 3; /* R_LM32_32. */ case EM_LOONGARCH: @@ -14582,6 +14601,8 @@ is_32bit_pcrel_reloc (Filedata * filedata, unsigned int reloc_type) case EM_XTENSA_OLD: case EM_XTENSA: return reloc_type == 14; /* R_XTENSA_32_PCREL. */ + case EM_KVX: + return reloc_type == 7; /* R_KVX_32_PCREL */ default: /* Do not abort or issue an error message here. Not all targets use pc-relative 32-bit relocs in their DWARF debug information and we @@ -14633,6 +14654,8 @@ is_64bit_abs_reloc (Filedata * filedata, unsigned int reloc_type) return reloc_type == 1; /* R_TILEGX_64. */ case EM_MIPS: return reloc_type == 18; /* R_MIPS_64. */ + case EM_KVX: + return reloc_type == 3; /* R_KVX_64 */ default: return false; } @@ -14736,6 +14759,8 @@ is_16bit_abs_reloc (Filedata * filedata, unsigned int reloc_type) case EM_CYGNUS_MN10300: case EM_MN10300: return reloc_type == 2; /* R_MN10300_16. */ + case EM_KVX: + return reloc_type == 1; /* R_KVX_16 */ case EM_MSP430: if (uses_msp430x_relocs (filedata)) return reloc_type == 2; /* R_MSP430_ABS16. */ @@ -14998,6 +15023,7 @@ is_none_reloc (Filedata * filedata, unsigned int reloc_type) case EM_FT32: /* R_FT32_NONE. */ case EM_IA_64: /* R_IA64_NONE. */ case EM_K1OM: /* R_X86_64_NONE. */ + case EM_KVX: /* R_KVX_NONE. */ case EM_L1OM: /* R_X86_64_NONE. */ case EM_M32R: /* R_M32R_NONE. */ case EM_MIPS: /* R_MIPS_NONE. */ diff --git a/binutils/testsuite/binutils-all/dw2-decodedline-2.S b/binutils/testsuite/binutils-all/dw2-decodedline-2.S new file mode 100644 index 00000000000..333cd3626a6 --- /dev/null +++ b/binutils/testsuite/binutils-all/dw2-decodedline-2.S @@ -0,0 +1,18 @@ + .file "dw2-decodedline.c" + .file 1 "dw2-decodedline.c" + .file 2 "directory/file1.c" + .text + .globl f1 + .type f1, %function +f1: + .loc 2 1 0 + nop + ;; + .size f1, .-f1 + .globl main + .type main, %function +main: + .loc 1 2 0 + nop + ;; + .size main, .-main diff --git a/binutils/testsuite/binutils-all/kvx/kvx.exp b/binutils/testsuite/binutils-all/kvx/kvx.exp new file mode 100644 index 00000000000..e096bebb65a --- /dev/null +++ b/binutils/testsuite/binutils-all/kvx/kvx.exp @@ -0,0 +1,37 @@ +# Copyright (C) 2009-2023 Free Software Foundation, Inc. +# Contributed by Kalray SA. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program; see the file COPYING3. If not, +# see . */ + +if {!([istarget "kvx*-*-*"]) + || ![is_elf_format] + || [is_remote host]} then { + return +} + +global tempfile +global copyfile +set tempfile tmpdir/kvxtemp.o +set copyfile tmpdir/kvxcopy + +## binutils test framework does not support the 'dump' EXTRA args to +## simply share a single .s for 32 and 64bits test. +# So we duplicate the source .s + +# 32bits test +run_dump_test "pcrel_bundle32bits" + +# 64bits test +run_dump_test "pcrel_bundle" diff --git a/binutils/testsuite/binutils-all/kvx/pcrel_bundle.d b/binutils/testsuite/binutils-all/kvx/pcrel_bundle.d new file mode 100644 index 00000000000..ff8df45bb0e --- /dev/null +++ b/binutils/testsuite/binutils-all/kvx/pcrel_bundle.d @@ -0,0 +1,33 @@ +#name: pcrel_bundle +#source: pcrel_bundle.s +#PROG: objcopy +#as: +#objdump: -dr +#... + +Disassembly of section .text: + +0000000000000000 : + 0: 00 0e 00 f0 00 00 00 80 00 00 00 00 pcrel \$r0 = 56 \(0x38\);; + + c: 0d 00 00 98 call 40 + 10: 00 0b 00 f0 00 00 00 80 00 00 00 00 pcrel \$r0 = 44 \(0x2c\);; + + 1c: 09 00 00 98 call 40 + 20: 00 07 00 f0 00 00 00 b8 00 00 00 80 pcrel \$r0 = 28 \(0x1c\) + 2c: 00 00 00 00 ld \$r0 = 0 \(0x0\)\[\$r0\];; + + 30: 00 f0 03 7f nop;; + + 34: 00 f0 03 7f nop;; + + +0000000000000038 <.table>: + 38: 00 f0 03 7f nop;; + + 3c: 00 f0 03 7f nop;; + + +0000000000000040 : + 40: 00 f0 03 7f nop;; + diff --git a/binutils/testsuite/binutils-all/kvx/pcrel_bundle.s b/binutils/testsuite/binutils-all/kvx/pcrel_bundle.s new file mode 100644 index 00000000000..feaa581ce8f --- /dev/null +++ b/binutils/testsuite/binutils-all/kvx/pcrel_bundle.s @@ -0,0 +1,25 @@ +foo: + pcrel $r0 = @pcrel(.table) + ;; + call bar + pcrel $r0 = @pcrel(.table) + ;; + call bar + ld $r0 = 0[$r0] + pcrel $r0 = @pcrel(.table) + ;; + nop + ;; + nop + ;; +.table: + nop + ;; + nop + ;; +bar: + nop + ;; + + + diff --git a/binutils/testsuite/binutils-all/kvx/pcrel_bundle32bits.d b/binutils/testsuite/binutils-all/kvx/pcrel_bundle32bits.d new file mode 100644 index 00000000000..732b3c50507 --- /dev/null +++ b/binutils/testsuite/binutils-all/kvx/pcrel_bundle32bits.d @@ -0,0 +1,33 @@ +#name: pcrel_bundle +#source: pcrel_bundle.s +#PROG: objcopy +#as: -m32 +#objdump: -dr +#... + +Disassembly of section .text: + +00000000 : + 0: 00 0b 00 f0 00 00 00 00 pcrel \$r0 = 44 \(0x2c\);; + + 8: 0b 00 00 98 call 34 + c: 00 09 00 f0 00 00 00 00 pcrel \$r0 = 36 \(0x24\);; + + 14: 08 00 00 98 call 34 + 18: 00 06 00 f0 00 00 00 b8 pcrel \$r0 = 24 \(0x18\) + 20: 00 00 00 00 ld \$r0 = 0 \(0x0\)\[\$r0\];; + + 24: 00 f0 03 7f nop;; + + 28: 00 f0 03 7f nop;; + + +0000002c <.table>: + 2c: 00 f0 03 7f nop;; + + 30: 00 f0 03 7f nop;; + + +00000034 : + 34: 00 f0 03 7f nop;; + diff --git a/binutils/testsuite/binutils-all/kvx/pcrel_bundle32bits.s b/binutils/testsuite/binutils-all/kvx/pcrel_bundle32bits.s new file mode 100644 index 00000000000..feaa581ce8f --- /dev/null +++ b/binutils/testsuite/binutils-all/kvx/pcrel_bundle32bits.s @@ -0,0 +1,25 @@ +foo: + pcrel $r0 = @pcrel(.table) + ;; + call bar + pcrel $r0 = @pcrel(.table) + ;; + call bar + ld $r0 = 0[$r0] + pcrel $r0 = @pcrel(.table) + ;; + nop + ;; + nop + ;; +.table: + nop + ;; + nop + ;; +bar: + nop + ;; + + + diff --git a/binutils/testsuite/binutils-all/objcopy.exp b/binutils/testsuite/binutils-all/objcopy.exp index 41add0fecda..16d9c8dad59 100644 --- a/binutils/testsuite/binutils-all/objcopy.exp +++ b/binutils/testsuite/binutils-all/objcopy.exp @@ -693,6 +693,7 @@ proc copy_setup { } { } if { [istarget *-*-linux*] + || [istarget kvx-*-*] || [istarget *-*-gnu*] } { foreach i $gcc_gas_flag { set flags "additional_flags=$i $flags" diff --git a/binutils/testsuite/binutils-all/objdump.exp b/binutils/testsuite/binutils-all/objdump.exp index 28a7ad671cd..4fe9e499d49 100644 --- a/binutils/testsuite/binutils-all/objdump.exp +++ b/binutils/testsuite/binutils-all/objdump.exp @@ -482,6 +482,8 @@ if { ![is_elf_format] } else { if { [istarget "or1k*-*-*"] } then { set decodedline_testsrc $srcdir/$subdir/dw2-decodedline-1.S + } elseif { [istarget "kvx*-*-*"] } { + set decodedline_testsrc $srcdir/$subdir/dw2-decodedline-2.S } else { set decodedline_testsrc $srcdir/$subdir/dw2-decodedline.S } diff --git a/binutils/testsuite/lib/binutils-common.exp b/binutils/testsuite/lib/binutils-common.exp index 7e6bf16ee6e..0dd9bae98fc 100644 --- a/binutils/testsuite/lib/binutils-common.exp +++ b/binutils/testsuite/lib/binutils-common.exp @@ -41,6 +41,7 @@ proc is_elf_format {} { && ![istarget *-*-irix5*] && ![istarget *-*-irix6*] && ![istarget *-*-kaos*] + && ![istarget kvx-*-*] && ![istarget *-*-*linux*] && ![istarget *-*-lynxos*] && ![istarget *-*-nacl*] @@ -371,6 +372,11 @@ proc check_pie_support { } { global pie_available_saved global ld + ## kvx-*-cos does support -shared but not PIE. + if { [istarget "kvx-*-cos"] } { + set pie_available_saved 0 + } + if {![info exists pie_available_saved]} { set ld_output [remote_exec host $ld "-pie"] if { [ string first "not supported" $ld_output ] >= 0 } { -- 2.35.1.500.gb896f729e2