From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 57268C46467 for ; Sat, 7 Jan 2023 11:40:34 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229656AbjAGLkC (ORCPT ); Sat, 7 Jan 2023 06:40:02 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:57372 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231945AbjAGLjs (ORCPT ); Sat, 7 Jan 2023 06:39:48 -0500 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1B93E84094; Sat, 7 Jan 2023 03:39:47 -0800 (PST) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id A1BDDB81F7D; Sat, 7 Jan 2023 11:39:45 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id ACABAC433F0; Sat, 7 Jan 2023 11:39:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1673091584; bh=X8+1ulPrbBTkOXj0eZtT/GV+hgacPfPVoCaovmG94Lc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R2DXiEsuIrfRwaknD0ryVcgC8AQM7cOBWLjl3iANvzY08Al7bzElOrkCkGWuEGE6y 2UNs4PHaWJ+LMfKI81zoSYqOJoRuIN+np61D1bzTMHOritS2a7lgOcYq/Agr9fkdEJ IOfXAsJhSCkoyf/uR+T+8V4lsA/KoQu2R2Ju6DMATW23R38Q6DX56M4VbqcY46Cj+N qtd9mxJL1V7THDfTNRvt7ntmJN/340tX/C7iNtLU3kQV6rHR0XH21hFJrCSjpgQHOp H9ivlWczbuDxzyFjfThj33NHGAx/Y7Mg6imSKY2jFiTW+09uVJfe115Xl2Zmi/jcJC GuTC48i3bxXZA== From: guoren@kernel.org To: arnd@arndb.de, guoren@kernel.org, palmer@rivosinc.com, tglx@linutronix.de, peterz@infradead.org, luto@kernel.org, conor.dooley@microchip.com, heiko@sntech.de, jszhang@kernel.org, lazyparser@gmail.com, falcon@tinylab.org, chenhuacai@kernel.org, apatel@ventanamicro.com, atishp@atishpatra.org, mark.rutland@arm.com, ben@decadent.org.uk, bjorn@kernel.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= Subject: [PATCH -next V13 7/7] riscv: entry: Consolidate general regs saving/restoring Date: Sat, 7 Jan 2023 06:38:38 -0500 Message-Id: <20230107113838.3969149-8-guoren@kernel.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20230107113838.3969149-1-guoren@kernel.org> References: <20230107113838.3969149-1-guoren@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-arch@vger.kernel.org From: Jisheng Zhang Consolidate the saving/restoring GPs(except zero, ra, sp, gp and tp) into save_from_x5_to_x31/restore_from_x5_to_x31 macros. No functional change intended. Signed-off-by: Jisheng Zhang Reviewed-by: Guo Ren Reviewed-by: Björn Töpel Tested-by: Guo Ren Signed-off-by: Guo Ren --- arch/riscv/include/asm/asm.h | 63 +++++++++++++++++++++++++ arch/riscv/kernel/entry.S | 84 ++-------------------------------- arch/riscv/kernel/mcount-dyn.S | 56 +---------------------- 3 files changed, 68 insertions(+), 135 deletions(-) diff --git a/arch/riscv/include/asm/asm.h b/arch/riscv/include/asm/asm.h index 816e753de636..b4f4e2bf69c8 100644 --- a/arch/riscv/include/asm/asm.h +++ b/arch/riscv/include/asm/asm.h @@ -69,6 +69,7 @@ #endif #ifdef __ASSEMBLY__ +#include /* Common assembly source macros */ @@ -81,6 +82,68 @@ .endr .endm + /* save all GPs except zero, ra, sp, gp and tp */ + .macro save_from_x5_to_x31 + REG_S x5, PT_T0(sp) + REG_S x6, PT_T1(sp) + REG_S x7, PT_T2(sp) + REG_S x8, PT_S0(sp) + REG_S x9, PT_S1(sp) + REG_S x10, PT_A0(sp) + REG_S x11, PT_A1(sp) + REG_S x12, PT_A2(sp) + REG_S x13, PT_A3(sp) + REG_S x14, PT_A4(sp) + REG_S x15, PT_A5(sp) + REG_S x16, PT_A6(sp) + REG_S x17, PT_A7(sp) + REG_S x18, PT_S2(sp) + REG_S x19, PT_S3(sp) + REG_S x20, PT_S4(sp) + REG_S x21, PT_S5(sp) + REG_S x22, PT_S6(sp) + REG_S x23, PT_S7(sp) + REG_S x24, PT_S8(sp) + REG_S x25, PT_S9(sp) + REG_S x26, PT_S10(sp) + REG_S x27, PT_S11(sp) + REG_S x28, PT_T3(sp) + REG_S x29, PT_T4(sp) + REG_S x30, PT_T5(sp) + REG_S x31, PT_T6(sp) + .endm + + /* restore all GPs except zero, ra, sp, gp and tp */ + .macro restore_from_x5_to_x31 + REG_L x5, PT_T0(sp) + REG_L x6, PT_T1(sp) + REG_L x7, PT_T2(sp) + REG_L x8, PT_S0(sp) + REG_L x9, PT_S1(sp) + REG_L x10, PT_A0(sp) + REG_L x11, PT_A1(sp) + REG_L x12, PT_A2(sp) + REG_L x13, PT_A3(sp) + REG_L x14, PT_A4(sp) + REG_L x15, PT_A5(sp) + REG_L x16, PT_A6(sp) + REG_L x17, PT_A7(sp) + REG_L x18, PT_S2(sp) + REG_L x19, PT_S3(sp) + REG_L x20, PT_S4(sp) + REG_L x21, PT_S5(sp) + REG_L x22, PT_S6(sp) + REG_L x23, PT_S7(sp) + REG_L x24, PT_S8(sp) + REG_L x25, PT_S9(sp) + REG_L x26, PT_S10(sp) + REG_L x27, PT_S11(sp) + REG_L x28, PT_T3(sp) + REG_L x29, PT_T4(sp) + REG_L x30, PT_T5(sp) + REG_L x31, PT_T6(sp) + .endm + #endif /* __ASSEMBLY__ */ #endif /* _ASM_RISCV_ASM_H */ diff --git a/arch/riscv/kernel/entry.S b/arch/riscv/kernel/entry.S index 5ccef259498d..87d74c9aea12 100644 --- a/arch/riscv/kernel/entry.S +++ b/arch/riscv/kernel/entry.S @@ -41,33 +41,7 @@ _save_context: addi sp, sp, -(PT_SIZE_ON_STACK) REG_S x1, PT_RA(sp) REG_S x3, PT_GP(sp) - REG_S x5, PT_T0(sp) - REG_S x6, PT_T1(sp) - REG_S x7, PT_T2(sp) - REG_S x8, PT_S0(sp) - REG_S x9, PT_S1(sp) - REG_S x10, PT_A0(sp) - REG_S x11, PT_A1(sp) - REG_S x12, PT_A2(sp) - REG_S x13, PT_A3(sp) - REG_S x14, PT_A4(sp) - REG_S x15, PT_A5(sp) - REG_S x16, PT_A6(sp) - REG_S x17, PT_A7(sp) - REG_S x18, PT_S2(sp) - REG_S x19, PT_S3(sp) - REG_S x20, PT_S4(sp) - REG_S x21, PT_S5(sp) - REG_S x22, PT_S6(sp) - REG_S x23, PT_S7(sp) - REG_S x24, PT_S8(sp) - REG_S x25, PT_S9(sp) - REG_S x26, PT_S10(sp) - REG_S x27, PT_S11(sp) - REG_S x28, PT_T3(sp) - REG_S x29, PT_T4(sp) - REG_S x30, PT_T5(sp) - REG_S x31, PT_T6(sp) + save_from_x5_to_x31 /* * Disable user-mode memory access as it should only be set in the @@ -181,33 +155,7 @@ SYM_CODE_START_NOALIGN(ret_from_exception) REG_L x1, PT_RA(sp) REG_L x3, PT_GP(sp) REG_L x4, PT_TP(sp) - REG_L x5, PT_T0(sp) - REG_L x6, PT_T1(sp) - REG_L x7, PT_T2(sp) - REG_L x8, PT_S0(sp) - REG_L x9, PT_S1(sp) - REG_L x10, PT_A0(sp) - REG_L x11, PT_A1(sp) - REG_L x12, PT_A2(sp) - REG_L x13, PT_A3(sp) - REG_L x14, PT_A4(sp) - REG_L x15, PT_A5(sp) - REG_L x16, PT_A6(sp) - REG_L x17, PT_A7(sp) - REG_L x18, PT_S2(sp) - REG_L x19, PT_S3(sp) - REG_L x20, PT_S4(sp) - REG_L x21, PT_S5(sp) - REG_L x22, PT_S6(sp) - REG_L x23, PT_S7(sp) - REG_L x24, PT_S8(sp) - REG_L x25, PT_S9(sp) - REG_L x26, PT_S10(sp) - REG_L x27, PT_S11(sp) - REG_L x28, PT_T3(sp) - REG_L x29, PT_T4(sp) - REG_L x30, PT_T5(sp) - REG_L x31, PT_T6(sp) + restore_from_x5_to_x31 REG_L x2, PT_SP(sp) @@ -286,33 +234,7 @@ restore_caller_reg: //save context to overflow stack REG_S x1, PT_RA(sp) REG_S x3, PT_GP(sp) - REG_S x5, PT_T0(sp) - REG_S x6, PT_T1(sp) - REG_S x7, PT_T2(sp) - REG_S x8, PT_S0(sp) - REG_S x9, PT_S1(sp) - REG_S x10, PT_A0(sp) - REG_S x11, PT_A1(sp) - REG_S x12, PT_A2(sp) - REG_S x13, PT_A3(sp) - REG_S x14, PT_A4(sp) - REG_S x15, PT_A5(sp) - REG_S x16, PT_A6(sp) - REG_S x17, PT_A7(sp) - REG_S x18, PT_S2(sp) - REG_S x19, PT_S3(sp) - REG_S x20, PT_S4(sp) - REG_S x21, PT_S5(sp) - REG_S x22, PT_S6(sp) - REG_S x23, PT_S7(sp) - REG_S x24, PT_S8(sp) - REG_S x25, PT_S9(sp) - REG_S x26, PT_S10(sp) - REG_S x27, PT_S11(sp) - REG_S x28, PT_T3(sp) - REG_S x29, PT_T4(sp) - REG_S x30, PT_T5(sp) - REG_S x31, PT_T6(sp) + save_from_x5_to_x31 REG_L s0, TASK_TI_KERNEL_SP(tp) csrr s1, CSR_STATUS diff --git a/arch/riscv/kernel/mcount-dyn.S b/arch/riscv/kernel/mcount-dyn.S index d171eca623b6..040d098279a9 100644 --- a/arch/riscv/kernel/mcount-dyn.S +++ b/arch/riscv/kernel/mcount-dyn.S @@ -70,33 +70,7 @@ REG_S x2, PT_SP(sp) REG_S x3, PT_GP(sp) REG_S x4, PT_TP(sp) - REG_S x5, PT_T0(sp) - REG_S x6, PT_T1(sp) - REG_S x7, PT_T2(sp) - REG_S x8, PT_S0(sp) - REG_S x9, PT_S1(sp) - REG_S x10, PT_A0(sp) - REG_S x11, PT_A1(sp) - REG_S x12, PT_A2(sp) - REG_S x13, PT_A3(sp) - REG_S x14, PT_A4(sp) - REG_S x15, PT_A5(sp) - REG_S x16, PT_A6(sp) - REG_S x17, PT_A7(sp) - REG_S x18, PT_S2(sp) - REG_S x19, PT_S3(sp) - REG_S x20, PT_S4(sp) - REG_S x21, PT_S5(sp) - REG_S x22, PT_S6(sp) - REG_S x23, PT_S7(sp) - REG_S x24, PT_S8(sp) - REG_S x25, PT_S9(sp) - REG_S x26, PT_S10(sp) - REG_S x27, PT_S11(sp) - REG_S x28, PT_T3(sp) - REG_S x29, PT_T4(sp) - REG_S x30, PT_T5(sp) - REG_S x31, PT_T6(sp) + save_from_x5_to_x31 .endm .macro RESTORE_ALL @@ -108,33 +82,7 @@ REG_L x2, PT_SP(sp) REG_L x3, PT_GP(sp) REG_L x4, PT_TP(sp) - REG_L x5, PT_T0(sp) - REG_L x6, PT_T1(sp) - REG_L x7, PT_T2(sp) - REG_L x8, PT_S0(sp) - REG_L x9, PT_S1(sp) - REG_L x10, PT_A0(sp) - REG_L x11, PT_A1(sp) - REG_L x12, PT_A2(sp) - REG_L x13, PT_A3(sp) - REG_L x14, PT_A4(sp) - REG_L x15, PT_A5(sp) - REG_L x16, PT_A6(sp) - REG_L x17, PT_A7(sp) - REG_L x18, PT_S2(sp) - REG_L x19, PT_S3(sp) - REG_L x20, PT_S4(sp) - REG_L x21, PT_S5(sp) - REG_L x22, PT_S6(sp) - REG_L x23, PT_S7(sp) - REG_L x24, PT_S8(sp) - REG_L x25, PT_S9(sp) - REG_L x26, PT_S10(sp) - REG_L x27, PT_S11(sp) - REG_L x28, PT_T3(sp) - REG_L x29, PT_T4(sp) - REG_L x30, PT_T5(sp) - REG_L x31, PT_T6(sp) + restore_from_x5_to_x31 addi sp, sp, PT_SIZE_ON_STACK addi sp, sp, SZREG -- 2.36.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 397DEC46467 for ; Sat, 7 Jan 2023 11:39:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-Id:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=mk49ZpaBymhR/LL+eXZPryiPrLa3nkHm9hHzPDMo1M0=; b=LTmrk7NP/nJEy4 acekBfXPLPaBNqffa8i/dj4liFBB/JHsvQdK/fV6u+t/UcfKjLTrrqBSG4OGCXUfVDON3gp5lT1+i 1iTNhkrD4OgdlfkvyujY7NAogFNLLGiSpIRJNJQo9ZCHZGlFZD1I9PyvnuP/wYqwokltv9g323+Wm zyY3Ht5l6X22gQr5o1pOU6Hf75zEM4ZaYHwHUpnlAWFwOGYrkHeUrxVNlTLAFaDzixuVv7P+AHDl2 y61vfBwJOhd1FtB2lZOcixEO5cZCbd3f60iMC7YvHQhSPjYryVzKC5LdUuvon61rPqt8JzYpeaiio 37A24J+7UA+Hxm/7aBvg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pE7YD-004WE2-RX; Sat, 07 Jan 2023 11:39:49 +0000 Received: from ams.source.kernel.org ([145.40.68.75]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pE7YA-004WAh-HF for linux-riscv@lists.infradead.org; Sat, 07 Jan 2023 11:39:48 +0000 Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 24A6DB81F81; Sat, 7 Jan 2023 11:39:45 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id ACABAC433F0; Sat, 7 Jan 2023 11:39:37 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1673091584; bh=X8+1ulPrbBTkOXj0eZtT/GV+hgacPfPVoCaovmG94Lc=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=R2DXiEsuIrfRwaknD0ryVcgC8AQM7cOBWLjl3iANvzY08Al7bzElOrkCkGWuEGE6y 2UNs4PHaWJ+LMfKI81zoSYqOJoRuIN+np61D1bzTMHOritS2a7lgOcYq/Agr9fkdEJ IOfXAsJhSCkoyf/uR+T+8V4lsA/KoQu2R2Ju6DMATW23R38Q6DX56M4VbqcY46Cj+N qtd9mxJL1V7THDfTNRvt7ntmJN/340tX/C7iNtLU3kQV6rHR0XH21hFJrCSjpgQHOp H9ivlWczbuDxzyFjfThj33NHGAx/Y7Mg6imSKY2jFiTW+09uVJfe115Xl2Zmi/jcJC GuTC48i3bxXZA== From: guoren@kernel.org To: arnd@arndb.de, guoren@kernel.org, palmer@rivosinc.com, tglx@linutronix.de, peterz@infradead.org, luto@kernel.org, conor.dooley@microchip.com, heiko@sntech.de, jszhang@kernel.org, lazyparser@gmail.com, falcon@tinylab.org, chenhuacai@kernel.org, apatel@ventanamicro.com, atishp@atishpatra.org, mark.rutland@arm.com, ben@decadent.org.uk, bjorn@kernel.org Cc: linux-arch@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, =?UTF-8?q?Bj=C3=B6rn=20T=C3=B6pel?= Subject: [PATCH -next V13 7/7] riscv: entry: Consolidate general regs saving/restoring Date: Sat, 7 Jan 2023 06:38:38 -0500 Message-Id: <20230107113838.3969149-8-guoren@kernel.org> X-Mailer: git-send-email 2.36.1 In-Reply-To: <20230107113838.3969149-1-guoren@kernel.org> References: <20230107113838.3969149-1-guoren@kernel.org> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230107_033946_911104_91B5D97F X-CRM114-Status: UNSURE ( 9.40 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org RnJvbTogSmlzaGVuZyBaaGFuZyA8anN6aGFuZ0BrZXJuZWwub3JnPgoKQ29uc29saWRhdGUgdGhl IHNhdmluZy9yZXN0b3JpbmcgR1BzKGV4Y2VwdCB6ZXJvLCByYSwgc3AsIGdwIGFuZAp0cCkgaW50 byBzYXZlX2Zyb21feDVfdG9feDMxL3Jlc3RvcmVfZnJvbV94NV90b194MzEgbWFjcm9zLgoKTm8g ZnVuY3Rpb25hbCBjaGFuZ2UgaW50ZW5kZWQuCgpTaWduZWQtb2ZmLWJ5OiBKaXNoZW5nIFpoYW5n IDxqc3poYW5nQGtlcm5lbC5vcmc+ClJldmlld2VkLWJ5OiBHdW8gUmVuIDxndW9yZW5Aa2VybmVs Lm9yZz4KUmV2aWV3ZWQtYnk6IEJqw7ZybiBUw7ZwZWwgPGJqb3JuQHJpdm9zaW5jLmNvbT4KVGVz dGVkLWJ5OiBHdW8gUmVuIDxndW9yZW5Aa2VybmVsLm9yZz4KU2lnbmVkLW9mZi1ieTogR3VvIFJl biA8Z3VvcmVuQGtlcm5lbC5vcmc+Ci0tLQogYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9hc20uaCAg IHwgNjMgKysrKysrKysrKysrKysrKysrKysrKysrKwogYXJjaC9yaXNjdi9rZXJuZWwvZW50cnku UyAgICAgIHwgODQgKystLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogYXJjaC9yaXNj di9rZXJuZWwvbWNvdW50LWR5bi5TIHwgNTYgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDMgZmls ZXMgY2hhbmdlZCwgNjggaW5zZXJ0aW9ucygrKSwgMTM1IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdp dCBhL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vYXNtLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNt L2FzbS5oCmluZGV4IDgxNmU3NTNkZTYzNi4uYjRmNGUyYmY2OWM4IDEwMDY0NAotLS0gYS9hcmNo L3Jpc2N2L2luY2x1ZGUvYXNtL2FzbS5oCisrKyBiL2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vYXNt LmgKQEAgLTY5LDYgKzY5LDcgQEAKICNlbmRpZgogCiAjaWZkZWYgX19BU1NFTUJMWV9fCisjaW5j bHVkZSA8YXNtL2FzbS1vZmZzZXRzLmg+CiAKIC8qIENvbW1vbiBhc3NlbWJseSBzb3VyY2UgbWFj cm9zICovCiAKQEAgLTgxLDYgKzgyLDY4IEBACiAJLmVuZHIKIC5lbmRtCiAKKwkvKiBzYXZlIGFs bCBHUHMgZXhjZXB0IHplcm8sIHJhLCBzcCwgZ3AgYW5kIHRwICovCisJLm1hY3JvIHNhdmVfZnJv bV94NV90b194MzEKKwlSRUdfUyB4NSwgIFBUX1QwKHNwKQorCVJFR19TIHg2LCAgUFRfVDEoc3Ap CisJUkVHX1MgeDcsICBQVF9UMihzcCkKKwlSRUdfUyB4OCwgIFBUX1MwKHNwKQorCVJFR19TIHg5 LCAgUFRfUzEoc3ApCisJUkVHX1MgeDEwLCBQVF9BMChzcCkKKwlSRUdfUyB4MTEsIFBUX0ExKHNw KQorCVJFR19TIHgxMiwgUFRfQTIoc3ApCisJUkVHX1MgeDEzLCBQVF9BMyhzcCkKKwlSRUdfUyB4 MTQsIFBUX0E0KHNwKQorCVJFR19TIHgxNSwgUFRfQTUoc3ApCisJUkVHX1MgeDE2LCBQVF9BNihz cCkKKwlSRUdfUyB4MTcsIFBUX0E3KHNwKQorCVJFR19TIHgxOCwgUFRfUzIoc3ApCisJUkVHX1Mg eDE5LCBQVF9TMyhzcCkKKwlSRUdfUyB4MjAsIFBUX1M0KHNwKQorCVJFR19TIHgyMSwgUFRfUzUo c3ApCisJUkVHX1MgeDIyLCBQVF9TNihzcCkKKwlSRUdfUyB4MjMsIFBUX1M3KHNwKQorCVJFR19T IHgyNCwgUFRfUzgoc3ApCisJUkVHX1MgeDI1LCBQVF9TOShzcCkKKwlSRUdfUyB4MjYsIFBUX1Mx MChzcCkKKwlSRUdfUyB4MjcsIFBUX1MxMShzcCkKKwlSRUdfUyB4MjgsIFBUX1QzKHNwKQorCVJF R19TIHgyOSwgUFRfVDQoc3ApCisJUkVHX1MgeDMwLCBQVF9UNShzcCkKKwlSRUdfUyB4MzEsIFBU X1Q2KHNwKQorCS5lbmRtCisKKwkvKiByZXN0b3JlIGFsbCBHUHMgZXhjZXB0IHplcm8sIHJhLCBz cCwgZ3AgYW5kIHRwICovCisJLm1hY3JvIHJlc3RvcmVfZnJvbV94NV90b194MzEKKwlSRUdfTCB4 NSwgIFBUX1QwKHNwKQorCVJFR19MIHg2LCAgUFRfVDEoc3ApCisJUkVHX0wgeDcsICBQVF9UMihz cCkKKwlSRUdfTCB4OCwgIFBUX1MwKHNwKQorCVJFR19MIHg5LCAgUFRfUzEoc3ApCisJUkVHX0wg eDEwLCBQVF9BMChzcCkKKwlSRUdfTCB4MTEsIFBUX0ExKHNwKQorCVJFR19MIHgxMiwgUFRfQTIo c3ApCisJUkVHX0wgeDEzLCBQVF9BMyhzcCkKKwlSRUdfTCB4MTQsIFBUX0E0KHNwKQorCVJFR19M IHgxNSwgUFRfQTUoc3ApCisJUkVHX0wgeDE2LCBQVF9BNihzcCkKKwlSRUdfTCB4MTcsIFBUX0E3 KHNwKQorCVJFR19MIHgxOCwgUFRfUzIoc3ApCisJUkVHX0wgeDE5LCBQVF9TMyhzcCkKKwlSRUdf TCB4MjAsIFBUX1M0KHNwKQorCVJFR19MIHgyMSwgUFRfUzUoc3ApCisJUkVHX0wgeDIyLCBQVF9T NihzcCkKKwlSRUdfTCB4MjMsIFBUX1M3KHNwKQorCVJFR19MIHgyNCwgUFRfUzgoc3ApCisJUkVH X0wgeDI1LCBQVF9TOShzcCkKKwlSRUdfTCB4MjYsIFBUX1MxMChzcCkKKwlSRUdfTCB4MjcsIFBU X1MxMShzcCkKKwlSRUdfTCB4MjgsIFBUX1QzKHNwKQorCVJFR19MIHgyOSwgUFRfVDQoc3ApCisJ UkVHX0wgeDMwLCBQVF9UNShzcCkKKwlSRUdfTCB4MzEsIFBUX1Q2KHNwKQorCS5lbmRtCisKICNl bmRpZiAvKiBfX0FTU0VNQkxZX18gKi8KIAogI2VuZGlmIC8qIF9BU01fUklTQ1ZfQVNNX0ggKi8K ZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL2VudHJ5LlMgYi9hcmNoL3Jpc2N2L2tlcm5l bC9lbnRyeS5TCmluZGV4IDVjY2VmMjU5NDk4ZC4uODdkNzRjOWFlYTEyIDEwMDY0NAotLS0gYS9h cmNoL3Jpc2N2L2tlcm5lbC9lbnRyeS5TCisrKyBiL2FyY2gvcmlzY3Yva2VybmVsL2VudHJ5LlMK QEAgLTQxLDMzICs0MSw3IEBAIF9zYXZlX2NvbnRleHQ6CiAJYWRkaSBzcCwgc3AsIC0oUFRfU0la RV9PTl9TVEFDSykKIAlSRUdfUyB4MSwgIFBUX1JBKHNwKQogCVJFR19TIHgzLCAgUFRfR1Aoc3Ap Ci0JUkVHX1MgeDUsICBQVF9UMChzcCkKLQlSRUdfUyB4NiwgIFBUX1QxKHNwKQotCVJFR19TIHg3 LCAgUFRfVDIoc3ApCi0JUkVHX1MgeDgsICBQVF9TMChzcCkKLQlSRUdfUyB4OSwgIFBUX1MxKHNw KQotCVJFR19TIHgxMCwgUFRfQTAoc3ApCi0JUkVHX1MgeDExLCBQVF9BMShzcCkKLQlSRUdfUyB4 MTIsIFBUX0EyKHNwKQotCVJFR19TIHgxMywgUFRfQTMoc3ApCi0JUkVHX1MgeDE0LCBQVF9BNChz cCkKLQlSRUdfUyB4MTUsIFBUX0E1KHNwKQotCVJFR19TIHgxNiwgUFRfQTYoc3ApCi0JUkVHX1Mg eDE3LCBQVF9BNyhzcCkKLQlSRUdfUyB4MTgsIFBUX1MyKHNwKQotCVJFR19TIHgxOSwgUFRfUzMo c3ApCi0JUkVHX1MgeDIwLCBQVF9TNChzcCkKLQlSRUdfUyB4MjEsIFBUX1M1KHNwKQotCVJFR19T IHgyMiwgUFRfUzYoc3ApCi0JUkVHX1MgeDIzLCBQVF9TNyhzcCkKLQlSRUdfUyB4MjQsIFBUX1M4 KHNwKQotCVJFR19TIHgyNSwgUFRfUzkoc3ApCi0JUkVHX1MgeDI2LCBQVF9TMTAoc3ApCi0JUkVH X1MgeDI3LCBQVF9TMTEoc3ApCi0JUkVHX1MgeDI4LCBQVF9UMyhzcCkKLQlSRUdfUyB4MjksIFBU X1Q0KHNwKQotCVJFR19TIHgzMCwgUFRfVDUoc3ApCi0JUkVHX1MgeDMxLCBQVF9UNihzcCkKKwlz YXZlX2Zyb21feDVfdG9feDMxCiAKIAkvKgogCSAqIERpc2FibGUgdXNlci1tb2RlIG1lbW9yeSBh Y2Nlc3MgYXMgaXQgc2hvdWxkIG9ubHkgYmUgc2V0IGluIHRoZQpAQCAtMTgxLDMzICsxNTUsNyBA QCBTWU1fQ09ERV9TVEFSVF9OT0FMSUdOKHJldF9mcm9tX2V4Y2VwdGlvbikKIAlSRUdfTCB4MSwg IFBUX1JBKHNwKQogCVJFR19MIHgzLCAgUFRfR1Aoc3ApCiAJUkVHX0wgeDQsICBQVF9UUChzcCkK LQlSRUdfTCB4NSwgIFBUX1QwKHNwKQotCVJFR19MIHg2LCAgUFRfVDEoc3ApCi0JUkVHX0wgeDcs ICBQVF9UMihzcCkKLQlSRUdfTCB4OCwgIFBUX1MwKHNwKQotCVJFR19MIHg5LCAgUFRfUzEoc3Ap Ci0JUkVHX0wgeDEwLCBQVF9BMChzcCkKLQlSRUdfTCB4MTEsIFBUX0ExKHNwKQotCVJFR19MIHgx MiwgUFRfQTIoc3ApCi0JUkVHX0wgeDEzLCBQVF9BMyhzcCkKLQlSRUdfTCB4MTQsIFBUX0E0KHNw KQotCVJFR19MIHgxNSwgUFRfQTUoc3ApCi0JUkVHX0wgeDE2LCBQVF9BNihzcCkKLQlSRUdfTCB4 MTcsIFBUX0E3KHNwKQotCVJFR19MIHgxOCwgUFRfUzIoc3ApCi0JUkVHX0wgeDE5LCBQVF9TMyhz cCkKLQlSRUdfTCB4MjAsIFBUX1M0KHNwKQotCVJFR19MIHgyMSwgUFRfUzUoc3ApCi0JUkVHX0wg eDIyLCBQVF9TNihzcCkKLQlSRUdfTCB4MjMsIFBUX1M3KHNwKQotCVJFR19MIHgyNCwgUFRfUzgo c3ApCi0JUkVHX0wgeDI1LCBQVF9TOShzcCkKLQlSRUdfTCB4MjYsIFBUX1MxMChzcCkKLQlSRUdf TCB4MjcsIFBUX1MxMShzcCkKLQlSRUdfTCB4MjgsIFBUX1QzKHNwKQotCVJFR19MIHgyOSwgUFRf VDQoc3ApCi0JUkVHX0wgeDMwLCBQVF9UNShzcCkKLQlSRUdfTCB4MzEsIFBUX1Q2KHNwKQorCXJl c3RvcmVfZnJvbV94NV90b194MzEKIAogCVJFR19MIHgyLCAgUFRfU1Aoc3ApCiAKQEAgLTI4Niwz MyArMjM0LDcgQEAgcmVzdG9yZV9jYWxsZXJfcmVnOgogCS8vc2F2ZSBjb250ZXh0IHRvIG92ZXJm bG93IHN0YWNrCiAJUkVHX1MgeDEsICBQVF9SQShzcCkKIAlSRUdfUyB4MywgIFBUX0dQKHNwKQot CVJFR19TIHg1LCAgUFRfVDAoc3ApCi0JUkVHX1MgeDYsICBQVF9UMShzcCkKLQlSRUdfUyB4Nywg IFBUX1QyKHNwKQotCVJFR19TIHg4LCAgUFRfUzAoc3ApCi0JUkVHX1MgeDksICBQVF9TMShzcCkK LQlSRUdfUyB4MTAsIFBUX0EwKHNwKQotCVJFR19TIHgxMSwgUFRfQTEoc3ApCi0JUkVHX1MgeDEy LCBQVF9BMihzcCkKLQlSRUdfUyB4MTMsIFBUX0EzKHNwKQotCVJFR19TIHgxNCwgUFRfQTQoc3Ap Ci0JUkVHX1MgeDE1LCBQVF9BNShzcCkKLQlSRUdfUyB4MTYsIFBUX0E2KHNwKQotCVJFR19TIHgx NywgUFRfQTcoc3ApCi0JUkVHX1MgeDE4LCBQVF9TMihzcCkKLQlSRUdfUyB4MTksIFBUX1MzKHNw KQotCVJFR19TIHgyMCwgUFRfUzQoc3ApCi0JUkVHX1MgeDIxLCBQVF9TNShzcCkKLQlSRUdfUyB4 MjIsIFBUX1M2KHNwKQotCVJFR19TIHgyMywgUFRfUzcoc3ApCi0JUkVHX1MgeDI0LCBQVF9TOChz cCkKLQlSRUdfUyB4MjUsIFBUX1M5KHNwKQotCVJFR19TIHgyNiwgUFRfUzEwKHNwKQotCVJFR19T IHgyNywgUFRfUzExKHNwKQotCVJFR19TIHgyOCwgUFRfVDMoc3ApCi0JUkVHX1MgeDI5LCBQVF9U NChzcCkKLQlSRUdfUyB4MzAsIFBUX1Q1KHNwKQotCVJFR19TIHgzMSwgUFRfVDYoc3ApCisJc2F2 ZV9mcm9tX3g1X3RvX3gzMQogCiAJUkVHX0wgczAsIFRBU0tfVElfS0VSTkVMX1NQKHRwKQogCWNz cnIgczEsIENTUl9TVEFUVVMKZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL21jb3VudC1k eW4uUyBiL2FyY2gvcmlzY3Yva2VybmVsL21jb3VudC1keW4uUwppbmRleCBkMTcxZWNhNjIzYjYu LjA0MGQwOTgyNzlhOSAxMDA2NDQKLS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwvbWNvdW50LWR5bi5T CisrKyBiL2FyY2gvcmlzY3Yva2VybmVsL21jb3VudC1keW4uUwpAQCAtNzAsMzMgKzcwLDcgQEAK IAlSRUdfUyB4MiwgIFBUX1NQKHNwKQogCVJFR19TIHgzLCAgUFRfR1Aoc3ApCiAJUkVHX1MgeDQs ICBQVF9UUChzcCkKLQlSRUdfUyB4NSwgIFBUX1QwKHNwKQotCVJFR19TIHg2LCAgUFRfVDEoc3Ap Ci0JUkVHX1MgeDcsICBQVF9UMihzcCkKLQlSRUdfUyB4OCwgIFBUX1MwKHNwKQotCVJFR19TIHg5 LCAgUFRfUzEoc3ApCi0JUkVHX1MgeDEwLCBQVF9BMChzcCkKLQlSRUdfUyB4MTEsIFBUX0ExKHNw KQotCVJFR19TIHgxMiwgUFRfQTIoc3ApCi0JUkVHX1MgeDEzLCBQVF9BMyhzcCkKLQlSRUdfUyB4 MTQsIFBUX0E0KHNwKQotCVJFR19TIHgxNSwgUFRfQTUoc3ApCi0JUkVHX1MgeDE2LCBQVF9BNihz cCkKLQlSRUdfUyB4MTcsIFBUX0E3KHNwKQotCVJFR19TIHgxOCwgUFRfUzIoc3ApCi0JUkVHX1Mg eDE5LCBQVF9TMyhzcCkKLQlSRUdfUyB4MjAsIFBUX1M0KHNwKQotCVJFR19TIHgyMSwgUFRfUzUo c3ApCi0JUkVHX1MgeDIyLCBQVF9TNihzcCkKLQlSRUdfUyB4MjMsIFBUX1M3KHNwKQotCVJFR19T IHgyNCwgUFRfUzgoc3ApCi0JUkVHX1MgeDI1LCBQVF9TOShzcCkKLQlSRUdfUyB4MjYsIFBUX1Mx MChzcCkKLQlSRUdfUyB4MjcsIFBUX1MxMShzcCkKLQlSRUdfUyB4MjgsIFBUX1QzKHNwKQotCVJF R19TIHgyOSwgUFRfVDQoc3ApCi0JUkVHX1MgeDMwLCBQVF9UNShzcCkKLQlSRUdfUyB4MzEsIFBU X1Q2KHNwKQorCXNhdmVfZnJvbV94NV90b194MzEKIAkuZW5kbQogCiAJLm1hY3JvIFJFU1RPUkVf QUxMCkBAIC0xMDgsMzMgKzgyLDcgQEAKIAlSRUdfTCB4MiwgIFBUX1NQKHNwKQogCVJFR19MIHgz LCAgUFRfR1Aoc3ApCiAJUkVHX0wgeDQsICBQVF9UUChzcCkKLQlSRUdfTCB4NSwgIFBUX1QwKHNw KQotCVJFR19MIHg2LCAgUFRfVDEoc3ApCi0JUkVHX0wgeDcsICBQVF9UMihzcCkKLQlSRUdfTCB4 OCwgIFBUX1MwKHNwKQotCVJFR19MIHg5LCAgUFRfUzEoc3ApCi0JUkVHX0wgeDEwLCBQVF9BMChz cCkKLQlSRUdfTCB4MTEsIFBUX0ExKHNwKQotCVJFR19MIHgxMiwgUFRfQTIoc3ApCi0JUkVHX0wg eDEzLCBQVF9BMyhzcCkKLQlSRUdfTCB4MTQsIFBUX0E0KHNwKQotCVJFR19MIHgxNSwgUFRfQTUo c3ApCi0JUkVHX0wgeDE2LCBQVF9BNihzcCkKLQlSRUdfTCB4MTcsIFBUX0E3KHNwKQotCVJFR19M IHgxOCwgUFRfUzIoc3ApCi0JUkVHX0wgeDE5LCBQVF9TMyhzcCkKLQlSRUdfTCB4MjAsIFBUX1M0 KHNwKQotCVJFR19MIHgyMSwgUFRfUzUoc3ApCi0JUkVHX0wgeDIyLCBQVF9TNihzcCkKLQlSRUdf TCB4MjMsIFBUX1M3KHNwKQotCVJFR19MIHgyNCwgUFRfUzgoc3ApCi0JUkVHX0wgeDI1LCBQVF9T OShzcCkKLQlSRUdfTCB4MjYsIFBUX1MxMChzcCkKLQlSRUdfTCB4MjcsIFBUX1MxMShzcCkKLQlS RUdfTCB4MjgsIFBUX1QzKHNwKQotCVJFR19MIHgyOSwgUFRfVDQoc3ApCi0JUkVHX0wgeDMwLCBQ VF9UNShzcCkKLQlSRUdfTCB4MzEsIFBUX1Q2KHNwKQorCXJlc3RvcmVfZnJvbV94NV90b194MzEK IAogCWFkZGkJc3AsIHNwLCBQVF9TSVpFX09OX1NUQUNLCiAJYWRkaQlzcCwgc3AsIFNaUkVHCi0t IAoyLjM2LjEKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f XwpsaW51eC1yaXNjdiBtYWlsaW5nIGxpc3QKbGludXgtcmlzY3ZAbGlzdHMuaW5mcmFkZWFkLm9y ZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2xpbnV4LXJpc2N2 Cg==