{"id":2231274,"url":"http://patchwork.ozlabs.org/api/patches/2231274/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/patch/CAMe9rOoRiWXD5aNq19F9R-S9D5=y7-dk_Kp6i_dibPKaoypR7g@mail.gmail.com/","project":{"id":17,"url":"http://patchwork.ozlabs.org/api/projects/17/?format=json","name":"GNU Compiler Collection","link_name":"gcc","list_id":"gcc-patches.gcc.gnu.org","list_email":"gcc-patches@gcc.gnu.org","web_url":null,"scm_url":null,"webscm_url":null,"list_archive_url":"","list_archive_url_format":"","commit_url_format":""},"msgid":"<CAMe9rOoRiWXD5aNq19F9R-S9D5=y7-dk_Kp6i_dibPKaoypR7g@mail.gmail.com>","list_archive_url":null,"date":"2026-04-30T12:33:36","name":"x86: Remove DI_REG/SI_REG from x86_64_int_return_registers","commit_ref":null,"pull_url":null,"state":"new","archived":false,"hash":"88d2e286d276b4dae273e3223fa3e64608dab5a1","submitter":{"id":4387,"url":"http://patchwork.ozlabs.org/api/people/4387/?format=json","name":"H.J. Lu","email":"hjl.tools@gmail.com"},"delegate":null,"mbox":"http://patchwork.ozlabs.org/project/gcc/patch/CAMe9rOoRiWXD5aNq19F9R-S9D5=y7-dk_Kp6i_dibPKaoypR7g@mail.gmail.com/mbox/","series":[{"id":502302,"url":"http://patchwork.ozlabs.org/api/series/502302/?format=json","web_url":"http://patchwork.ozlabs.org/project/gcc/list/?series=502302","date":"2026-04-30T12:33:36","name":"x86: Remove DI_REG/SI_REG from x86_64_int_return_registers","version":1,"mbox":"http://patchwork.ozlabs.org/series/502302/mbox/"}],"comments":"http://patchwork.ozlabs.org/api/patches/2231274/comments/","check":"pending","checks":"http://patchwork.ozlabs.org/api/patches/2231274/checks/","tags":{},"related":[],"headers":{"Return-Path":"<gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org>","X-Original-To":["incoming@patchwork.ozlabs.org","gcc-patches@gcc.gnu.org"],"Delivered-To":["patchwork-incoming@legolas.ozlabs.org","gcc-patches@gcc.gnu.org"],"Authentication-Results":["legolas.ozlabs.org;\n\tdkim=pass (2048-bit key;\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=Sly8DiM7;\n\tdkim-atps=neutral","legolas.ozlabs.org;\n spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org\n (client-ip=2620:52:6:3111::32; helo=vm01.sourceware.org;\n envelope-from=gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org;\n receiver=patchwork.ozlabs.org)","sourceware.org;\n\tdkim=pass (2048-bit key,\n unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256\n header.s=20251104 header.b=Sly8DiM7","sourceware.org;\n dmarc=pass (p=none dis=none) header.from=gmail.com","sourceware.org; spf=pass smtp.mailfrom=gmail.com","server2.sourceware.org;\n arc=pass smtp.remote-ip=209.85.215.172"],"Received":["from vm01.sourceware.org (vm01.sourceware.org\n [IPv6:2620:52:6:3111::32])\n\t(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)\n\t key-exchange x25519 server-signature ECDSA (secp384r1) server-digest SHA384)\n\t(No client certificate requested)\n\tby legolas.ozlabs.org (Postfix) with ESMTPS id 4g5tsf4LZYz1yGq\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 22:34:44 +1000 (AEST)","from vm01.sourceware.org (localhost [127.0.0.1])\n\tby sourceware.org (Postfix) with ESMTP id BD10F43B5539\n\tfor <incoming@patchwork.ozlabs.org>; Thu, 30 Apr 2026 12:34:42 +0000 (GMT)","from mail-pg1-f172.google.com (mail-pg1-f172.google.com\n [209.85.215.172])\n by sourceware.org (Postfix) with ESMTPS id 8563A4BAE7D4\n for <gcc-patches@gcc.gnu.org>; Thu, 30 Apr 2026 12:34:14 +0000 (GMT)","by mail-pg1-f172.google.com with SMTP id\n 41be03b00d2f7-c79662668bbso292673a12.1\n for <gcc-patches@gcc.gnu.org>; Thu, 30 Apr 2026 05:34:14 -0700 (PDT)"],"DKIM-Filter":["OpenDKIM Filter v2.11.0 sourceware.org BD10F43B5539","OpenDKIM Filter v2.11.0 sourceware.org 8563A4BAE7D4"],"DMARC-Filter":"OpenDMARC Filter v1.4.2 sourceware.org 8563A4BAE7D4","ARC-Filter":"OpenARC Filter v1.0.0 sourceware.org 8563A4BAE7D4","ARC-Seal":["i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1777552454; cv=pass;\n b=aw3N0RaSo+dh/QEWRxUNIsW7zphIfl9Pp4LR+8MJLIXwN8eC9dtCrbjzTYnw9dGdNBa2dKwL0Wz0r04kNLdl8nB9yHrX/tFt2XP4tA31R7OwVqEv14e9Nsh5eEUof1jjt1MlC1EmeL5sDtXR7jS/iJz7L28TBTHIibrdpSzRsrs=","i=1; a=rsa-sha256; t=1777552453; cv=none;\n d=google.com; s=arc-20240605;\n b=U20D+UM7tw30oMzmjw2/Z+7WVqbQ1Q+MHQCJ6CldUNFtaSGxEK4pL5MXxhxG3AOyV7\n +kyHK/vdTLvmKwDjXBlm+n7tlH2TkSsf2ofJqP3gnf8RPyKGgbVaME7vLsGYSnF+/muB\n JeWm3XKRZpyOCBhwDE+LkE5Al7n+cP9Zu59mYsCGmoVvO/AodyROtNoBZwZGuQEIoxcp\n fF5Gb+uQWvKNmrHcBYKtxHHTcgyhQbUHAWAqyntsqyvrGEKuK2riyxbMpyAox9/Wl8ah\n L71est2JN1qdSnhHyL//F0STJWXR4e3kv+rglgvLtsM1sGV/mQ8/x/4QryNi8Nza1DCr\n hkog=="],"ARC-Message-Signature":["i=2; a=rsa-sha256; d=sourceware.org; s=key;\n t=1777552454; c=relaxed/simple;\n bh=ty6s8+fiPnF0VkA2XcNRqfNFBwTgm9faU7OGd45uZzs=;\n h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To;\n b=AdRLWpd6yLv8Xb7XmOSA5YpCtuk8YUbYerVkS9lfE1aPruiTmBTX08KOIaJPR+1NkwB6AkyIUtgQU0kJUW1hurCIUdu/TLvbdHLcYKvgETLUdYy1DbSSviz7yX3PL4en5xHGaK0Cy+06JsSlOo417X7Zr8jhPQ38CAUOYEbzwyc=","i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com;\n s=arc-20240605;\n h=to:subject:message-id:date:from:mime-version:dkim-signature;\n bh=NEzxqj4XW5IXIqZ3XRjmQ0m6FVp3MDBNhXJDcS3LcbA=;\n fh=83snE5t1iR5QXMcAAhy1f7NFmMeqVCeXIkq3dVlORPM=;\n b=ViSUtCezXe2LgoDTdwaiX2oxFFiE840nGHgGyVKYXt70X6TCCezr9zCryy1S2GOc2/\n +A7GFd1fgcr3Z0KuD0lDX98gGLpMgqYKa8NTNSuSltwy7IDMYg1ZbVwW5gWX9t6qTRSb\n iyjgP/xvDF2rooD2n2IDeJC7jMHdkLv7xg6cLbXssWI2+ffJEG/N+tDYJ5jyzcTXald5\n xT3v80vJg9J02YvSuPe4Fmi2CXyM+lEz5fJUGu1CxpC/Ga9KyjW+BbeLIpQPAddvayIV\n XfqCYl6TJGvXtY2Z9IvnhUZVZk3c4AiueWR2NUUt99sMyfPdhT3AK33v7sb9PzrGA2KC\n RIzA==; darn=gcc.gnu.org"],"ARC-Authentication-Results":["i=2; server2.sourceware.org","i=1; mx.google.com; arc=none"],"DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=gmail.com; s=20251104; t=1777552453; x=1778157253; darn=gcc.gnu.org;\n h=to:subject:message-id:date:from:mime-version:from:to:cc:subject\n :date:message-id:reply-to;\n bh=NEzxqj4XW5IXIqZ3XRjmQ0m6FVp3MDBNhXJDcS3LcbA=;\n b=Sly8DiM7mkRxTPg7eh0EBKJE9mC1/zbrU11pQ0+tyNjb4Dy/JV0O4JPbovjOotRNPd\n zYo1V0UkooHYVrb9kVRYMC1KrcsoAjaix4dzz8DWItoSUUV/OSm0JAjVNIBg6LfSQA9s\n 4kQe4muffFSUG9WVBqXLjnOblivUuGhbOIKlnPI5O2OEOgL0jcTGM4TDEpX46FaCeDXg\n Jr9XLRGgXduxaVIDaeMFf9UDIkOCwVteJRuy9OwUVgymQ/52I4v51JkgLeYga6Rincpc\n Dt8LKkwSDf6QRQz+pGBFiVK+pwU2HRY3+d7vJF28T5+ePzMW8XWE6zswWSaGtAhFIRq7\n g9pw==","X-Google-DKIM-Signature":"v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20251104; t=1777552453; x=1778157253;\n h=to:subject:message-id:date:from:mime-version:x-gm-gg\n :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n bh=NEzxqj4XW5IXIqZ3XRjmQ0m6FVp3MDBNhXJDcS3LcbA=;\n b=nq731el/gYD2+6vnNMVarh+81FbwEZi8RjT+2UijoJz7/UbRo8nIfLaCwdIARjsRIt\n 2g+HW3b8zFUfAyTaxOqD3s/POehYZsXzCURb0eggv7bfLw+TkZswf3NoT4PCrY3AKAvo\n 4O5GKeyOGr6bUd2DMBm3mBGJ0qrRAAj3PBabvzT4KtjDhlmxJ7ajiNKcGdrls5HDM9h0\n ZZEAjAQ+zoOhYwJtHX2v+oweL23iDfmBVVeldWTldpUYjGMqTiHYPK6t8FLVaRUGKOTO\n BGET7Og7v1P5s6+ehR5a0oAEV5tdUZZq7fCiGuZI1xZ3irZpqzJ8LYd51deCmiV5b3Xe\n dBTg==","X-Gm-Message-State":"AOJu0YznsAiz1DDK0w8wA1RUg0BdhJUAYcwlS7qTObIgVrYioRBksO2g\n YlhZLliv9vGT9QdaPy1WUbx1xaxJr0XX6xmcMiMjtBVKf7fF6/ykP3Cm5udifDOWyQvAGptyHPl\n yoqzswpgfiugP6Zc+gONPCyeGn7u9bNEkpO+mwcYtBsCS","X-Gm-Gg":"AeBDiesGSgDNQu3MaiIhHZ0aQOm3bjmJiiNvFiUfOeP8mFTl9i4iBzrRkNg9h7emADR\n hqo3bpeNIL4UTyiRqgothW/VA+tpaAgJM+ebHOxUiJVqcobdj9nmbMbLZ0K8FkW2gWLeciBsbmu\n X+bQtdQPgesCJYDuk24tC1u7FyGQJiuOLG8t0YAQij+FdpOEYybv4EKJv3PQN+6I8Mrm1rTDU4B\n aCIgB/UufMsxkuOnJOa1eBT2lJ0eLcSOb58y2flNwhHk2iABl2AXxSA0Dx3hZZOXxGNkjnvR3zY\n hvbW7GRxM3WFJD0EVQ==","X-Received":"by 2002:a05:6a20:1592:b0:398:79a8:5bf4 with SMTP id\n adf61e73a8af0-3a3cf7d6566mr3291752637.37.1777552452939; Thu, 30 Apr 2026\n 05:34:12 -0700 (PDT)","MIME-Version":"1.0","From":"\"H.J. Lu\" <hjl.tools@gmail.com>","Date":"Thu, 30 Apr 2026 20:33:36 +0800","X-Gm-Features":"AVHnY4L9LEO7WYKqgT_lPJmLLP4n0PBI8Mmk16mLTjQGwxH9eXLbFB9D2WreKa4","Message-ID":"\n <CAMe9rOoRiWXD5aNq19F9R-S9D5=y7-dk_Kp6i_dibPKaoypR7g@mail.gmail.com>","Subject":"[PATCH] x86: Remove DI_REG/SI_REG from x86_64_int_return_registers","To":"GCC Patches <gcc-patches@gcc.gnu.org>, Uros Bizjak <ubizjak@gmail.com>,\n Hongtao Liu <hongtao.liu@intel.com>","Content-Type":"multipart/mixed; boundary=\"000000000000870f6d0650acae99\"","X-BeenThere":"gcc-patches@gcc.gnu.org","X-Mailman-Version":"2.1.30","Precedence":"list","List-Id":"Gcc-patches mailing list <gcc-patches.gcc.gnu.org>","List-Unsubscribe":"<https://gcc.gnu.org/mailman/options/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=unsubscribe>","List-Archive":"<https://gcc.gnu.org/pipermail/gcc-patches/>","List-Post":"<mailto:gcc-patches@gcc.gnu.org>","List-Help":"<mailto:gcc-patches-request@gcc.gnu.org?subject=help>","List-Subscribe":"<https://gcc.gnu.org/mailman/listinfo/gcc-patches>,\n <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe>","Errors-To":"gcc-patches-bounces~incoming=patchwork.ozlabs.org@gcc.gnu.org"},"content":"Since only AX/DX register pair and XMM0/XMM1 register pair are used for\nfunction return values in 64-bit mode, remove DI_REG and SI_REG registers\nfrom x86_64_int_return_registers and limit the number of registers used\nin return values to 2 in 64-bit mode.\n\nTested on Linux/x86-64 and Linux/i686.\n\nPR target/124878\n* config/i386/i386.cc (x86_64_int_return_registers): Remove\nDI_REG and SI_REG.\n(ix86_function_value_regno_p): Remove DI_REG and SI_REG cases.\n(function_value_64): Replace X86_64_REGPARM_MAX and\nX86_64_SSE_REGPARM_MAX with 2 for the number of registers used\nin return values.","diff":"From 5e79db8021ff2b54275c4c966852f37a2d536c26 Mon Sep 17 00:00:00 2001\nFrom: \"H.J. Lu\" <hjl.tools@gmail.com>\nDate: Wed, 15 Apr 2026 13:43:08 +0800\nSubject: [PATCH] x86: Remove DI_REG/SI_REG from x86_64_int_return_registers\n\nSince only AX/DX register pair and XMM0/XMM1 register pair are used for\nfunction return values in 64-bit mode, remove DI_REG and SI_REG registers\nfrom x86_64_int_return_registers and limit the number of registers used\nin return values to 2 in 64-bit mode.\n\nTested on Linux/x86-64 and Linux/i686.\n\n\tPR target/124878\n\t* config/i386/i386.cc (x86_64_int_return_registers): Remove\n\tDI_REG and SI_REG.\n\t(ix86_function_value_regno_p): Remove DI_REG and SI_REG cases.\n\t(function_value_64): Replace X86_64_REGPARM_MAX and\n\tX86_64_SSE_REGPARM_MAX with 2 for the number of registers used\n\tin return values.\n\nSigned-off-by: H.J. Lu <hjl.tools@gmail.com>\n---\n gcc/config/i386/i386.cc | 10 +++-------\n 1 file changed, 3 insertions(+), 7 deletions(-)\n\ndiff --git a/gcc/config/i386/i386.cc b/gcc/config/i386/i386.cc\nindex 428394985a1..4229028f46f 100644\n--- a/gcc/config/i386/i386.cc\n+++ b/gcc/config/i386/i386.cc\n@@ -343,9 +343,9 @@ static int const x86_64_preserve_none_int_parameter_registers[6] =\n   R12_REG, R13_REG, R14_REG, R15_REG, DI_REG, SI_REG\n };\n \n-static int const x86_64_int_return_registers[4] =\n+static int const x86_64_int_return_registers[2] =\n {\n-  AX_REG, DX_REG, DI_REG, SI_REG\n+  AX_REG, DX_REG\n };\n \n /* Define the structure for the machine field in struct function.  */\n@@ -3875,9 +3875,6 @@ ix86_function_value_regno_p (const unsigned int regno)\n       return true;\n     case DX_REG:\n       return (!TARGET_64BIT || ix86_cfun_abi () != MS_ABI);\n-    case DI_REG:\n-    case SI_REG:\n-      return TARGET_64BIT && ix86_cfun_abi () != MS_ABI;\n \n       /* Complex values are returned in %st(0)/%st(1) pair.  */\n     case ST0_REG:\n@@ -4314,8 +4311,7 @@ function_value_64 (machine_mode orig_mode, machine_mode mode,\n       mode = word_mode;\n     }\n \n-  ret = construct_container (mode, orig_mode, valtype, true,\n-\t\t\t     X86_64_REGPARM_MAX, X86_64_SSE_REGPARM_MAX,\n+  ret = construct_container (mode, orig_mode, valtype, true, 2, 2,\n \t\t\t     x86_64_int_return_registers, 0);\n \n   /* For zero sized structures, construct_container returns NULL, but we\n-- \n2.53.0\n\n","prefixes":[]}