From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:41223) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QLKfJ-00046U-6R for qemu-devel@nongnu.org; Sat, 14 May 2011 15:38:18 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QLKfH-0002ec-QY for qemu-devel@nongnu.org; Sat, 14 May 2011 15:38:17 -0400 Received: from mail-qy0-f173.google.com ([209.85.216.173]:39506) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QLKfH-0002eY-N9 for qemu-devel@nongnu.org; Sat, 14 May 2011 15:38:15 -0400 Received: by qyk36 with SMTP id 36so894624qyk.4 for ; Sat, 14 May 2011 12:38:15 -0700 (PDT) MIME-Version: 1.0 From: Blue Swirl Date: Sat, 14 May 2011 22:37:55 +0300 Message-ID: Content-Type: multipart/mixed; boundary=20cf303347db40ecbe04a341907e Subject: [Qemu-devel] [PATCH 04/11] Delegate setup of TCG temporaries to targets List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel --20cf303347db40ecbe04a341907e Content-Type: text/plain; charset=UTF-8 Delegate TCG temp_buf setup to targets, so that they can use a stack frame later instead. Signed-off-by: Blue Swirl --- tcg/arm/tcg-target.c | 2 ++ tcg/hppa/tcg-target.c | 2 ++ tcg/i386/tcg-target.c | 2 ++ tcg/ia64/tcg-target.c | 2 ++ tcg/mips/tcg-target.c | 2 ++ tcg/ppc/tcg-target.c | 2 ++ tcg/ppc64/tcg-target.c | 2 ++ tcg/s390/tcg-target.c | 2 ++ tcg/sparc/tcg-target.c | 2 ++ translate-all.c | 2 -- 10 files changed, 18 insertions(+), 2 deletions(-) diff --git a/tcg/arm/tcg-target.c b/tcg/arm/tcg-target.c index fb858d8..daa6704 100644 --- a/tcg/arm/tcg-target.c +++ b/tcg/arm/tcg-target.c @@ -1804,6 +1804,8 @@ static void tcg_target_init(TCGContext *s) tcg_regset_set_reg(s->reserved_regs, TCG_REG_PC); tcg_add_target_add_op_defs(arm_op_defs); + tcg_set_frame(s, TCG_AREG0, offsetof(CPUState, temp_buf), + CPU_TEMP_BUF_NLONGS * sizeof(long)); } static inline void tcg_out_ld(TCGContext *s, TCGType type, int arg, diff --git a/tcg/hppa/tcg-target.c b/tcg/hppa/tcg-target.c index 7f4653e..5fcf95a 100644 --- a/tcg/hppa/tcg-target.c +++ b/tcg/hppa/tcg-target.c @@ -1680,4 +1680,6 @@ static void tcg_target_init(TCGContext *s) tcg_regset_set_reg(s->reserved_regs, TCG_REG_R31); /* ble link reg */ tcg_add_target_add_op_defs(hppa_op_defs); + tcg_set_frame(s, TCG_AREG0, offsetof(CPUState, temp_buf), + CPU_TEMP_BUF_NLONGS * sizeof(long)); } diff --git a/tcg/i386/tcg-target.c b/tcg/i386/tcg-target.c index bb19a95..01747f3 100644 --- a/tcg/i386/tcg-target.c +++ b/tcg/i386/tcg-target.c @@ -1979,4 +1979,6 @@ static void tcg_target_init(TCGContext *s) tcg_regset_set_reg(s->reserved_regs, TCG_REG_ESP); tcg_add_target_add_op_defs(x86_op_defs); + tcg_set_frame(s, TCG_AREG0, offsetof(CPUState, temp_buf), + CPU_TEMP_BUF_NLONGS * sizeof(long)); } diff --git a/tcg/ia64/tcg-target.c b/tcg/ia64/tcg-target.c index 8dac7f7..87dd11b 100644 --- a/tcg/ia64/tcg-target.c +++ b/tcg/ia64/tcg-target.c @@ -2387,4 +2387,6 @@ static void tcg_target_init(TCGContext *s) tcg_regset_set_reg(s->reserved_regs, TCG_REG_R6); tcg_add_target_add_op_defs(ia64_op_defs); + tcg_set_frame(s, TCG_AREG0, offsetof(CPUState, temp_buf), + CPU_TEMP_BUF_NLONGS * sizeof(long)); } diff --git a/tcg/mips/tcg-target.c b/tcg/mips/tcg-target.c index e04b0dc..3805b47 100644 --- a/tcg/mips/tcg-target.c +++ b/tcg/mips/tcg-target.c @@ -1530,4 +1530,6 @@ static void tcg_target_init(TCGContext *s) tcg_regset_set_reg(s->reserved_regs, TCG_REG_SP); /* stack pointer */ tcg_add_target_add_op_defs(mips_op_defs); + tcg_set_frame(s, TCG_AREG0, offsetof(CPUState, temp_buf), + CPU_TEMP_BUF_NLONGS * sizeof(long)); } diff --git a/tcg/ppc/tcg-target.c b/tcg/ppc/tcg-target.c index 7970268..6223c89 100644 --- a/tcg/ppc/tcg-target.c +++ b/tcg/ppc/tcg-target.c @@ -1919,4 +1919,6 @@ static void tcg_target_init(TCGContext *s) #endif tcg_add_target_add_op_defs(ppc_op_defs); + tcg_set_frame(s, TCG_AREG0, offsetof(CPUState, temp_buf), + CPU_TEMP_BUF_NLONGS * sizeof(long)); } diff --git a/tcg/ppc64/tcg-target.c b/tcg/ppc64/tcg-target.c index ebbee34..7b1bf01 100644 --- a/tcg/ppc64/tcg-target.c +++ b/tcg/ppc64/tcg-target.c @@ -1696,4 +1696,6 @@ static void tcg_target_init (TCGContext *s) tcg_regset_set_reg (s->reserved_regs, TCG_REG_R13); tcg_add_target_add_op_defs (ppc_op_defs); + tcg_set_frame(s, TCG_AREG0, offsetof(CPUState, temp_buf), + CPU_TEMP_BUF_NLONGS * sizeof(long)); } diff --git a/tcg/s390/tcg-target.c b/tcg/s390/tcg-target.c index 450fcab..17f9273 100644 --- a/tcg/s390/tcg-target.c +++ b/tcg/s390/tcg-target.c @@ -2291,6 +2291,8 @@ static void tcg_target_init(TCGContext *s) tcg_regset_set_reg(s->reserved_regs, TCG_REG_CALL_STACK); tcg_add_target_add_op_defs(s390_op_defs); + tcg_set_frame(s, TCG_AREG0, offsetof(CPUState, temp_buf), + CPU_TEMP_BUF_NLONGS * sizeof(long)); } static void tcg_target_qemu_prologue(TCGContext *s) diff --git a/tcg/sparc/tcg-target.c b/tcg/sparc/tcg-target.c index 5f1353a..3dd3696 100644 --- a/tcg/sparc/tcg-target.c +++ b/tcg/sparc/tcg-target.c @@ -1566,4 +1566,6 @@ static void tcg_target_init(TCGContext *s) tcg_regset_set_reg(s->reserved_regs, TCG_REG_O6); tcg_regset_set_reg(s->reserved_regs, TCG_REG_O7); tcg_add_target_add_op_defs(sparc_op_defs); + tcg_set_frame(s, TCG_AREG0, offsetof(CPUState, temp_buf), + CPU_TEMP_BUF_NLONGS * sizeof(long)); } diff --git a/translate-all.c b/translate-all.c index 2ca190c..771bc29 100644 --- a/translate-all.c +++ b/translate-all.c @@ -44,8 +44,6 @@ uint8_t gen_opc_instr_start[OPC_BUF_SIZE]; void cpu_gen_init(void) { tcg_context_init(&tcg_ctx); - tcg_set_frame(&tcg_ctx, TCG_AREG0, offsetof(CPUState, temp_buf), - CPU_TEMP_BUF_NLONGS * sizeof(long)); } /* return non zero if the very first instruction is invalid so that -- 1.6.2.4 --20cf303347db40ecbe04a341907e Content-Type: text/x-diff; charset=US-ASCII; name="0004-Delegate-setup-of-TCG-temporaries-to-targets.patch" Content-Disposition: attachment; filename="0004-Delegate-setup-of-TCG-temporaries-to-targets.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gnoyk7pd0 RnJvbSBiMTYyNjJmZjU3MzNmNTRiNWQ1MWMyYTJmYmZiYzY1ZTk2N2U0MjEyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpNZXNzYWdlLUlkOiA8YjE2MjYyZmY1NzMzZjU0YjVkNTFjMmEyZmJmYmM2 NWU5NjdlNDIxMi4xMzA1NDAxNzUwLmdpdC5ibGF1d2lyYmVsQGdtYWlsLmNvbT4KSW4tUmVwbHkt VG86IDw2ZTIxZGY4ZTM2OTM4OGEzMTUyZGNjN2RhMzA0MzFjNjcyZTFlZTM3LjEzMDU0MDE3NTAu Z2l0LmJsYXV3aXJiZWxAZ21haWwuY29tPgpSZWZlcmVuY2VzOiA8NmUyMWRmOGUzNjkzODhhMzE1 MmRjYzdkYTMwNDMxYzY3MmUxZWUzNy4xMzA1NDAxNzUwLmdpdC5ibGF1d2lyYmVsQGdtYWlsLmNv bT4KRnJvbTogQmx1ZSBTd2lybCA8YmxhdXdpcmJlbEBnbWFpbC5jb20+CkRhdGU6IFNhdCwgMTQg TWF5IDIwMTEgMTI6NTg6MDQgKzAwMDAKU3ViamVjdDogW1BBVENIIDA0LzExXSBEZWxlZ2F0ZSBz ZXR1cCBvZiBUQ0cgdGVtcG9yYXJpZXMgdG8gdGFyZ2V0cwoKRGVsZWdhdGUgVENHIHRlbXBfYnVm IHNldHVwIHRvIHRhcmdldHMsIHNvIHRoYXQgdGhleSBjYW4gdXNlIGEgc3RhY2sKZnJhbWUgbGF0 ZXIgaW5zdGVhZC4KClNpZ25lZC1vZmYtYnk6IEJsdWUgU3dpcmwgPGJsYXV3aXJiZWxAZ21haWwu Y29tPgotLS0KIHRjZy9hcm0vdGNnLXRhcmdldC5jICAgfCAgICAyICsrCiB0Y2cvaHBwYS90Y2ct dGFyZ2V0LmMgIHwgICAgMiArKwogdGNnL2kzODYvdGNnLXRhcmdldC5jICB8ICAgIDIgKysKIHRj Zy9pYTY0L3RjZy10YXJnZXQuYyAgfCAgICAyICsrCiB0Y2cvbWlwcy90Y2ctdGFyZ2V0LmMgIHwg ICAgMiArKwogdGNnL3BwYy90Y2ctdGFyZ2V0LmMgICB8ICAgIDIgKysKIHRjZy9wcGM2NC90Y2ct dGFyZ2V0LmMgfCAgICAyICsrCiB0Y2cvczM5MC90Y2ctdGFyZ2V0LmMgIHwgICAgMiArKwogdGNn L3NwYXJjL3RjZy10YXJnZXQuYyB8ICAgIDIgKysKIHRyYW5zbGF0ZS1hbGwuYyAgICAgICAgfCAg ICAyIC0tCiAxMCBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3RjZy9hcm0vdGNnLXRhcmdldC5jIGIvdGNnL2FybS90Y2ctdGFyZ2V0 LmMKaW5kZXggZmI4NThkOC4uZGFhNjcwNCAxMDA2NDQKLS0tIGEvdGNnL2FybS90Y2ctdGFyZ2V0 LmMKKysrIGIvdGNnL2FybS90Y2ctdGFyZ2V0LmMKQEAgLTE4MDQsNiArMTgwNCw4IEBAIHN0YXRp YyB2b2lkIHRjZ190YXJnZXRfaW5pdChUQ0dDb250ZXh0ICpzKQogICAgIHRjZ19yZWdzZXRfc2V0 X3JlZyhzLT5yZXNlcnZlZF9yZWdzLCBUQ0dfUkVHX1BDKTsKIAogICAgIHRjZ19hZGRfdGFyZ2V0 X2FkZF9vcF9kZWZzKGFybV9vcF9kZWZzKTsKKyAgICB0Y2dfc2V0X2ZyYW1lKHMsIFRDR19BUkVH MCwgb2Zmc2V0b2YoQ1BVU3RhdGUsIHRlbXBfYnVmKSwKKyAgICAgICAgICAgICAgICAgIENQVV9U RU1QX0JVRl9OTE9OR1MgKiBzaXplb2YobG9uZykpOwogfQogCiBzdGF0aWMgaW5saW5lIHZvaWQg dGNnX291dF9sZChUQ0dDb250ZXh0ICpzLCBUQ0dUeXBlIHR5cGUsIGludCBhcmcsCmRpZmYgLS1n aXQgYS90Y2cvaHBwYS90Y2ctdGFyZ2V0LmMgYi90Y2cvaHBwYS90Y2ctdGFyZ2V0LmMKaW5kZXgg N2Y0NjUzZS4uNWZjZjk1YSAxMDA2NDQKLS0tIGEvdGNnL2hwcGEvdGNnLXRhcmdldC5jCisrKyBi L3RjZy9ocHBhL3RjZy10YXJnZXQuYwpAQCAtMTY4MCw0ICsxNjgwLDYgQEAgc3RhdGljIHZvaWQg dGNnX3RhcmdldF9pbml0KFRDR0NvbnRleHQgKnMpCiAgICAgdGNnX3JlZ3NldF9zZXRfcmVnKHMt PnJlc2VydmVkX3JlZ3MsIFRDR19SRUdfUjMxKTsgLyogYmxlIGxpbmsgcmVnICovCiAKICAgICB0 Y2dfYWRkX3RhcmdldF9hZGRfb3BfZGVmcyhocHBhX29wX2RlZnMpOworICAgIHRjZ19zZXRfZnJh bWUocywgVENHX0FSRUcwLCBvZmZzZXRvZihDUFVTdGF0ZSwgdGVtcF9idWYpLAorICAgICAgICAg ICAgICAgICAgQ1BVX1RFTVBfQlVGX05MT05HUyAqIHNpemVvZihsb25nKSk7CiB9CmRpZmYgLS1n aXQgYS90Y2cvaTM4Ni90Y2ctdGFyZ2V0LmMgYi90Y2cvaTM4Ni90Y2ctdGFyZ2V0LmMKaW5kZXgg YmIxOWE5NS4uMDE3NDdmMyAxMDA2NDQKLS0tIGEvdGNnL2kzODYvdGNnLXRhcmdldC5jCisrKyBi L3RjZy9pMzg2L3RjZy10YXJnZXQuYwpAQCAtMTk3OSw0ICsxOTc5LDYgQEAgc3RhdGljIHZvaWQg dGNnX3RhcmdldF9pbml0KFRDR0NvbnRleHQgKnMpCiAgICAgdGNnX3JlZ3NldF9zZXRfcmVnKHMt PnJlc2VydmVkX3JlZ3MsIFRDR19SRUdfRVNQKTsKIAogICAgIHRjZ19hZGRfdGFyZ2V0X2FkZF9v cF9kZWZzKHg4Nl9vcF9kZWZzKTsKKyAgICB0Y2dfc2V0X2ZyYW1lKHMsIFRDR19BUkVHMCwgb2Zm c2V0b2YoQ1BVU3RhdGUsIHRlbXBfYnVmKSwKKyAgICAgICAgICAgICAgICAgIENQVV9URU1QX0JV Rl9OTE9OR1MgKiBzaXplb2YobG9uZykpOwogfQpkaWZmIC0tZ2l0IGEvdGNnL2lhNjQvdGNnLXRh cmdldC5jIGIvdGNnL2lhNjQvdGNnLXRhcmdldC5jCmluZGV4IDhkYWM3ZjcuLjg3ZGQxMWIgMTAw NjQ0Ci0tLSBhL3RjZy9pYTY0L3RjZy10YXJnZXQuYworKysgYi90Y2cvaWE2NC90Y2ctdGFyZ2V0 LmMKQEAgLTIzODcsNCArMjM4Nyw2IEBAIHN0YXRpYyB2b2lkIHRjZ190YXJnZXRfaW5pdChUQ0dD b250ZXh0ICpzKQogICAgIHRjZ19yZWdzZXRfc2V0X3JlZyhzLT5yZXNlcnZlZF9yZWdzLCBUQ0df UkVHX1I2KTsKIAogICAgIHRjZ19hZGRfdGFyZ2V0X2FkZF9vcF9kZWZzKGlhNjRfb3BfZGVmcyk7 CisgICAgdGNnX3NldF9mcmFtZShzLCBUQ0dfQVJFRzAsIG9mZnNldG9mKENQVVN0YXRlLCB0ZW1w X2J1ZiksCisgICAgICAgICAgICAgICAgICBDUFVfVEVNUF9CVUZfTkxPTkdTICogc2l6ZW9mKGxv bmcpKTsKIH0KZGlmZiAtLWdpdCBhL3RjZy9taXBzL3RjZy10YXJnZXQuYyBiL3RjZy9taXBzL3Rj Zy10YXJnZXQuYwppbmRleCBlMDRiMGRjLi4zODA1YjQ3IDEwMDY0NAotLS0gYS90Y2cvbWlwcy90 Y2ctdGFyZ2V0LmMKKysrIGIvdGNnL21pcHMvdGNnLXRhcmdldC5jCkBAIC0xNTMwLDQgKzE1MzAs NiBAQCBzdGF0aWMgdm9pZCB0Y2dfdGFyZ2V0X2luaXQoVENHQ29udGV4dCAqcykKICAgICB0Y2df cmVnc2V0X3NldF9yZWcocy0+cmVzZXJ2ZWRfcmVncywgVENHX1JFR19TUCk7ICAgLyogc3RhY2sg cG9pbnRlciAqLwogCiAgICAgdGNnX2FkZF90YXJnZXRfYWRkX29wX2RlZnMobWlwc19vcF9kZWZz KTsKKyAgICB0Y2dfc2V0X2ZyYW1lKHMsIFRDR19BUkVHMCwgb2Zmc2V0b2YoQ1BVU3RhdGUsIHRl bXBfYnVmKSwKKyAgICAgICAgICAgICAgICAgIENQVV9URU1QX0JVRl9OTE9OR1MgKiBzaXplb2Yo bG9uZykpOwogfQpkaWZmIC0tZ2l0IGEvdGNnL3BwYy90Y2ctdGFyZ2V0LmMgYi90Y2cvcHBjL3Rj Zy10YXJnZXQuYwppbmRleCA3OTcwMjY4Li42MjIzYzg5IDEwMDY0NAotLS0gYS90Y2cvcHBjL3Rj Zy10YXJnZXQuYworKysgYi90Y2cvcHBjL3RjZy10YXJnZXQuYwpAQCAtMTkxOSw0ICsxOTE5LDYg QEAgc3RhdGljIHZvaWQgdGNnX3RhcmdldF9pbml0KFRDR0NvbnRleHQgKnMpCiAjZW5kaWYKIAog ICAgIHRjZ19hZGRfdGFyZ2V0X2FkZF9vcF9kZWZzKHBwY19vcF9kZWZzKTsKKyAgICB0Y2dfc2V0 X2ZyYW1lKHMsIFRDR19BUkVHMCwgb2Zmc2V0b2YoQ1BVU3RhdGUsIHRlbXBfYnVmKSwKKyAgICAg ICAgICAgICAgICAgIENQVV9URU1QX0JVRl9OTE9OR1MgKiBzaXplb2YobG9uZykpOwogfQpkaWZm IC0tZ2l0IGEvdGNnL3BwYzY0L3RjZy10YXJnZXQuYyBiL3RjZy9wcGM2NC90Y2ctdGFyZ2V0LmMK aW5kZXggZWJiZWUzNC4uN2IxYmYwMSAxMDA2NDQKLS0tIGEvdGNnL3BwYzY0L3RjZy10YXJnZXQu YworKysgYi90Y2cvcHBjNjQvdGNnLXRhcmdldC5jCkBAIC0xNjk2LDQgKzE2OTYsNiBAQCBzdGF0 aWMgdm9pZCB0Y2dfdGFyZ2V0X2luaXQgKFRDR0NvbnRleHQgKnMpCiAgICAgdGNnX3JlZ3NldF9z ZXRfcmVnIChzLT5yZXNlcnZlZF9yZWdzLCBUQ0dfUkVHX1IxMyk7CiAKICAgICB0Y2dfYWRkX3Rh cmdldF9hZGRfb3BfZGVmcyAocHBjX29wX2RlZnMpOworICAgIHRjZ19zZXRfZnJhbWUocywgVENH X0FSRUcwLCBvZmZzZXRvZihDUFVTdGF0ZSwgdGVtcF9idWYpLAorICAgICAgICAgICAgICAgICAg Q1BVX1RFTVBfQlVGX05MT05HUyAqIHNpemVvZihsb25nKSk7CiB9CmRpZmYgLS1naXQgYS90Y2cv czM5MC90Y2ctdGFyZ2V0LmMgYi90Y2cvczM5MC90Y2ctdGFyZ2V0LmMKaW5kZXggNDUwZmNhYi4u MTdmOTI3MyAxMDA2NDQKLS0tIGEvdGNnL3MzOTAvdGNnLXRhcmdldC5jCisrKyBiL3RjZy9zMzkw L3RjZy10YXJnZXQuYwpAQCAtMjI5MSw2ICsyMjkxLDggQEAgc3RhdGljIHZvaWQgdGNnX3Rhcmdl dF9pbml0KFRDR0NvbnRleHQgKnMpCiAgICAgdGNnX3JlZ3NldF9zZXRfcmVnKHMtPnJlc2VydmVk X3JlZ3MsIFRDR19SRUdfQ0FMTF9TVEFDSyk7CiAKICAgICB0Y2dfYWRkX3RhcmdldF9hZGRfb3Bf ZGVmcyhzMzkwX29wX2RlZnMpOworICAgIHRjZ19zZXRfZnJhbWUocywgVENHX0FSRUcwLCBvZmZz ZXRvZihDUFVTdGF0ZSwgdGVtcF9idWYpLAorICAgICAgICAgICAgICAgICAgQ1BVX1RFTVBfQlVG X05MT05HUyAqIHNpemVvZihsb25nKSk7CiB9CiAKIHN0YXRpYyB2b2lkIHRjZ190YXJnZXRfcWVt dV9wcm9sb2d1ZShUQ0dDb250ZXh0ICpzKQpkaWZmIC0tZ2l0IGEvdGNnL3NwYXJjL3RjZy10YXJn ZXQuYyBiL3RjZy9zcGFyYy90Y2ctdGFyZ2V0LmMKaW5kZXggNWYxMzUzYS4uM2RkMzY5NiAxMDA2 NDQKLS0tIGEvdGNnL3NwYXJjL3RjZy10YXJnZXQuYworKysgYi90Y2cvc3BhcmMvdGNnLXRhcmdl dC5jCkBAIC0xNTY2LDQgKzE1NjYsNiBAQCBzdGF0aWMgdm9pZCB0Y2dfdGFyZ2V0X2luaXQoVENH Q29udGV4dCAqcykKICAgICB0Y2dfcmVnc2V0X3NldF9yZWcocy0+cmVzZXJ2ZWRfcmVncywgVENH X1JFR19PNik7CiAgICAgdGNnX3JlZ3NldF9zZXRfcmVnKHMtPnJlc2VydmVkX3JlZ3MsIFRDR19S RUdfTzcpOwogICAgIHRjZ19hZGRfdGFyZ2V0X2FkZF9vcF9kZWZzKHNwYXJjX29wX2RlZnMpOwor ICAgIHRjZ19zZXRfZnJhbWUocywgVENHX0FSRUcwLCBvZmZzZXRvZihDUFVTdGF0ZSwgdGVtcF9i dWYpLAorICAgICAgICAgICAgICAgICAgQ1BVX1RFTVBfQlVGX05MT05HUyAqIHNpemVvZihsb25n KSk7CiB9CmRpZmYgLS1naXQgYS90cmFuc2xhdGUtYWxsLmMgYi90cmFuc2xhdGUtYWxsLmMKaW5k ZXggMmNhMTkwYy4uNzcxYmMyOSAxMDA2NDQKLS0tIGEvdHJhbnNsYXRlLWFsbC5jCisrKyBiL3Ry YW5zbGF0ZS1hbGwuYwpAQCAtNDQsOCArNDQsNiBAQCB1aW50OF90IGdlbl9vcGNfaW5zdHJfc3Rh cnRbT1BDX0JVRl9TSVpFXTsKIHZvaWQgY3B1X2dlbl9pbml0KHZvaWQpCiB7CiAgICAgdGNnX2Nv bnRleHRfaW5pdCgmdGNnX2N0eCk7IAotICAgIHRjZ19zZXRfZnJhbWUoJnRjZ19jdHgsIFRDR19B UkVHMCwgb2Zmc2V0b2YoQ1BVU3RhdGUsIHRlbXBfYnVmKSwKLSAgICAgICAgICAgICAgICAgIENQ VV9URU1QX0JVRl9OTE9OR1MgKiBzaXplb2YobG9uZykpOwogfQogCiAvKiByZXR1cm4gbm9uIHpl cm8gaWYgdGhlIHZlcnkgZmlyc3QgaW5zdHJ1Y3Rpb24gaXMgaW52YWxpZCBzbyB0aGF0Ci0tIAox LjcuMi41Cgo= --20cf303347db40ecbe04a341907e--