From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19251 invoked by alias); 16 Jan 2013 14:09:54 -0000 Received: (qmail 19241 invoked by uid 22791); 16 Jan 2013 14:09:54 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,RCVD_IN_DNSWL_LOW,RCVD_IN_HOSTKARMA_YE X-Spam-Check-By: sourceware.org Received: from mail-ea0-f182.google.com (HELO mail-ea0-f182.google.com) (209.85.215.182) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Wed, 16 Jan 2013 14:09:48 +0000 Received: by mail-ea0-f182.google.com with SMTP id a12so545762eaa.13 for ; Wed, 16 Jan 2013 06:09:47 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=mime-version:x-received:date:message-id:subject:from:to :content-type:x-gm-message-state; bh=X9ikC3gzlXPtYwfAS0yUyGGaIosrcrnQG8IyNLsfhw8=; b=pbDwV+Raav0J/2QoFt7K5mN24ycZRyckClVIoxhrlOqVoM8SJBDk5trwaVjKM8Tjb8 9cBHu4z4FitQaxkac0nqn1nmkKt4bI/Z6DHRX8RwR3XE8HTBUqr3F6o07b5rIaFjN+XH hnKF9c4fnRkb1qHHh/dzWtoU6n3MrXjXCNKnK9aXj+ENLpwQpm+mj3cuHSzE0ar/8lMh LO9EfnfrFyeokQst9jJwEcP3MCPsYjY3694nugSe5JK9cy0IRcrJ+DccL81iysYeHMlp WOnK+p16NoZp+AZsk6P4aOWX+6ERzIzkFSO/wrzb9A7rigOsqMNVvl0MZjOZ41S53TzD AZkA== MIME-Version: 1.0 X-Received: by 10.14.204.70 with SMTP id g46mr3177498eeo.15.1358345387458; Wed, 16 Jan 2013 06:09:47 -0800 (PST) Received: by 10.14.29.78 with HTTP; Wed, 16 Jan 2013 06:09:47 -0800 (PST) Date: Wed, 16 Jan 2013 14:09:00 -0000 Message-ID: Subject: [PATCH] AArch64 optimized memmove. From: Marcus Shawcroft To: libc-ports@sourceware.org Content-Type: multipart/mixed; boundary=047d7b343cdc4d418604d3686ea2 X-Gm-Message-State: ALoCoQnSP2kjjFZZggc1/yfzeO0sV3Bn21CwMGzcyWsQx7hm2kBrNVjnuMoQ5ydJPLGN3iysXBGg X-IsSubscribed: yes Mailing-List: contact libc-ports-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: libc-ports-owner@sourceware.org X-SW-Source: 2013-01/txt/msg00025.txt.bz2 --047d7b343cdc4d418604d3686ea2 Content-Type: text/plain; charset=UTF-8 Content-length: 74 This patch provides an AArch64 optimized memmove implementation. /Marcus --047d7b343cdc4d418604d3686ea2 Content-Type: application/octet-stream; name="0005-AArch64-Implement-optimized-memmove.patch" Content-Disposition: attachment; filename="0005-AArch64-Implement-optimized-memmove.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hc0jrjle0 Content-length: 11676 ZGlmZiAtLWdpdCBhL3BvcnRzL0NoYW5nZUxvZy5hYXJjaDY0IGIvcG9ydHMv Q2hhbmdlTG9nLmFhcmNoNjQKaW5kZXggNWZiM2ExNC4uM2Y0YjRkZCAxMDA2 NDQKLS0tIGEvcG9ydHMvQ2hhbmdlTG9nLmFhcmNoNjQKKysrIGIvcG9ydHMv Q2hhbmdlTG9nLmFhcmNoNjQKQEAgLTEsNSArMSw5IEBACiAyMDEzLTAxLTE2 ICBNYXJjdXMgU2hhd2Nyb2Z0ICA8bWFyY3VzLnNoYXdjcm9mdEBsaW5hcm8u b3JnPgogCisgICAgICAgICogc3lzZGVwcy9hYXJjaDY0L21lbW1vdmUuUzog TmV3IGZpbGUuCisKKzIwMTMtMDEtMTYgIE1hcmN1cyBTaGF3Y3JvZnQgIDxt YXJjdXMuc2hhd2Nyb2Z0QGxpbmFyby5vcmc+CisKICAgICAgICAgKiBzeXNk ZXBzL2FhcmNoNjQvbWVtY3B5LlM6IE5ldyBmaWxlLgogCiAyMDEzLTAxLTE2 ICBNYXJjdXMgU2hhd2Nyb2Z0ICA8bWFyY3VzLnNoYXdjcm9mdEBsaW5hcm8u b3JnPgpkaWZmIC0tZ2l0IGEvcG9ydHMvc3lzZGVwcy9hYXJjaDY0L21lbW1v dmUuUyBiL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9tZW1tb3ZlLlMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzQyZWIxYwotLS0gL2Rl di9udWxsCisrKyBiL3BvcnRzL3N5c2RlcHMvYWFyY2g2NC9tZW1tb3ZlLlMK QEAgLTAsMCArMSwzMTIgQEAKKy8qIENvcHlyaWdodCAoQykgMjAxMi0yMDEz IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgorCisgICBUaGlzIGZp bGUgaXMgcGFydCBvZiB0aGUgR05VIEMgTGlicmFyeS4KKworICAgVGhlIEdO VSBDIExpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3Ry aWJ1dGUgaXQgYW5kL29yCisgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljCisgICBMaWNlbnNl IGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9u OyBlaXRoZXIKKyAgIHZlcnNpb24gMi4xIG9mIHRoZSBMaWNlbnNlLCBvciAo YXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorCisgICBUaGUg R05VIEMgTGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0 IGl0IHdpbGwgYmUgdXNlZnVsLAorICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJB TlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKKyAg IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIg UFVSUE9TRS4gIFNlZSB0aGUgR05VCisgICBMZXNzZXIgR2VuZXJhbCBQdWJs aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgorCisgICBZb3Ugc2hvdWxk IGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVy YWwgUHVibGljCisgICBMaWNlbnNlIGFsb25nIHdpdGggdGhlIEdOVSBDIExp YnJhcnkuICBJZiBub3QsIHNlZQorICAgPGh0dHA6Ly93d3cuZ251Lm9yZy9s aWNlbnNlcy8+LiAgKi8KKworI2luY2x1ZGUgPHN5c2RlcC5oPgorCisvKiBB c3N1bXB0aW9uczoKKyAqCisgKiBBUk12OC1hLCBBQXJjaDY0CisgKiBVbmFs aWduZWQgYWNjZXNzZXMKKyAqLworCisvKiBQYXJhbWV0ZXJzIGFuZCByZXN1 bHQuICAqLworI2RlZmluZSBkc3Rpbgl4MAorI2RlZmluZSBzcmMJeDEKKyNk ZWZpbmUgY291bnQJeDIKKyNkZWZpbmUgdG1wMQl4MworI2RlZmluZSB0bXAx dwl3MworI2RlZmluZSB0bXAyCXg0CisjZGVmaW5lIHRtcDJ3CXc0CisjZGVm aW5lIHRtcDMJeDUKKyNkZWZpbmUgdG1wM3cJdzUKKyNkZWZpbmUgZHN0CXg2 CisKKyNkZWZpbmUgQV9sCXg3CisjZGVmaW5lIEFfaAl4OAorI2RlZmluZSBC X2wJeDkKKyNkZWZpbmUgQl9oCXgxMAorI2RlZmluZSBDX2wJeDExCisjZGVm aW5lIENfaAl4MTIKKyNkZWZpbmUgRF9sCXgxMworI2RlZmluZSBEX2gJeDE0 CisKK0VOVFJZX0FMSUdOIChtZW1tb3ZlLCA2KQorCisJY21wCWRzdGluLCBz cmMKKwliLmxvCUwoZG93bndhcmRzKQorCWFkZAl0bXAxLCBzcmMsIGNvdW50 CisJY21wCWRzdGluLCB0bXAxCisJYi5ocwltZW1jcHkJCS8qIE5vIG92ZXJs YXAuICAqLworCisJLyogVXB3YXJkcyBtb3ZlIHdpdGggcG90ZW50aWFsIG92 ZXJsYXAuCisJICogTmVlZCB0byBtb3ZlIGZyb20gdGhlIHRhaWwgYmFja3dh cmRzLiAgU1JDIGFuZCBEU1QgcG9pbnQgb25lCisJICogYnl0ZSBiZXlvbmQg dGhlIHJlbWFpbmluZyBkYXRhIHRvIG1vdmUuICAqLworCWFkZAlkc3QsIGRz dGluLCBjb3VudAorCWFkZAlzcmMsIHNyYywgY291bnQKKwljbXAJY291bnQs ICM2NAorCWIuZ2UJTChtb3Zfbm90X3Nob3J0X3VwKQorCisJLyogRGVhbCB3 aXRoIHNtYWxsIG1vdmVzIHF1aWNrbHkgYnkgZHJvcHBpbmcgc3RyYWlnaHQg aW50byB0aGUKKwkgKiBleGl0IGJsb2NrLiAgKi8KK0wodGFpbDYzdXApOgor CS8qIE1vdmUgdXAgdG8gNDggYnl0ZXMgb2YgZGF0YS4gIEF0IHRoaXMgcG9p bnQgd2Ugb25seSBuZWVkIHRoZQorCSAqIGJvdHRvbSA2IGJpdHMgb2YgY291 bnQgdG8gYmUgYWNjdXJhdGUuICAqLworCWFuZHMJdG1wMSwgY291bnQsICMw eDMwCisJYi5lcQlMKHRhaWwxNXVwKQorCXN1Yglkc3QsIGRzdCwgdG1wMQor CXN1YglzcmMsIHNyYywgdG1wMQorCWNtcAl0bXAxdywgIzB4MjAKKwliLmVx CTFmCisJYi5sdAkyZgorCWxkcAlBX2wsIEFfaCwgW3NyYywgIzMyXQorCXN0 cAlBX2wsIEFfaCwgW2RzdCwgIzMyXQorMToKKwlsZHAJQV9sLCBBX2gsIFtz cmMsICMxNl0KKwlzdHAJQV9sLCBBX2gsIFtkc3QsICMxNl0KKzI6CisJbGRw CUFfbCwgQV9oLCBbc3JjXQorCXN0cAlBX2wsIEFfaCwgW2RzdF0KK0wodGFp bDE1dXApOgorCS8qIE1vdmUgdXAgdG8gMTUgYnl0ZXMgb2YgZGF0YS4gIERv ZXMgbm90IGFzc3VtZSBhZGRpdGlvbmFsIGRhdGEKKwkgKiBiZWluZyBtb3Zl ZC4gICovCisJdGJ6CWNvdW50LCAjMywgMWYKKwlsZHIJdG1wMSwgW3NyYywg Iy04XSEKKwlzdHIJdG1wMSwgW2RzdCwgIy04XSEKKzE6CisJdGJ6CWNvdW50 LCAjMiwgMWYKKwlsZHIJdG1wMXcsIFtzcmMsICMtNF0hCisJc3RyCXRtcDF3 LCBbZHN0LCAjLTRdIQorMToKKwl0YnoJY291bnQsICMxLCAxZgorCWxkcmgJ dG1wMXcsIFtzcmMsICMtMl0hCisJc3RyaAl0bXAxdywgW2RzdCwgIy0yXSEK KzE6CisJdGJ6CWNvdW50LCAjMCwgMWYKKwlsZHJiCXRtcDF3LCBbc3JjLCAj LTFdCisJc3RyYgl0bXAxdywgW2RzdCwgIy0xXQorMToKKwlSRVQKKworTCht b3Zfbm90X3Nob3J0X3VwKToKKwkvKiBXZSBkb24ndCBtdWNoIGNhcmUgYWJv dXQgdGhlIGFsaWdubWVudCBvZiBEU1QsIGJ1dCB3ZSB3YW50IFNSQworCSAq IHRvIGJlIDEyOC1iaXQgKDE2IGJ5dGUpIGFsaWduZWQgc28gdGhhdCB3ZSBk b24ndCBjcm9zcyBjYWNoZSBsaW5lCisJICogYm91bmRhcmllcyBvbiBib3Ro IGxvYWRzIGFuZCBzdG9yZXMuICAqLworCWFuZHMJdG1wMiwgc3JjLCAjMTUJ CS8qIEJ5dGVzIHRvIHJlYWNoIGFsaWdubWVudC4gICovCisJYi5lcQkyZgor CXN1Ygljb3VudCwgY291bnQsIHRtcDIKKwkvKiBNb3ZlIGVub3VnaCBkYXRh IHRvIHJlYWNoIGFsaWdubWVudDsgdW5saWtlIG1lbWNweSwgd2UgaGF2ZSB0 bworCSAqIGJlIGF3YXJlIG9mIHRoZSBvdmVybGFwLCB3aGljaCBtZWFucyB3 ZSBjYW4ndCBtb3ZlIGRhdGEgdHdpY2UuICAqLworCXRiegl0bXAyLCAjMywg MWYKKwlsZHIJdG1wMSwgW3NyYywgIy04XSEKKwlzdHIJdG1wMSwgW2RzdCwg Iy04XSEKKzE6CisJdGJ6CXRtcDIsICMyLCAxZgorCWxkcgl0bXAxdywgW3Ny YywgIy00XSEKKwlzdHIJdG1wMXcsIFtkc3QsICMtNF0hCisxOgorCXRiegl0 bXAyLCAjMSwgMWYKKwlsZHJoCXRtcDF3LCBbc3JjLCAjLTJdIQorCXN0cmgJ dG1wMXcsIFtkc3QsICMtMl0hCisxOgorCXRiegl0bXAyLCAjMCwgMWYKKwls ZHJiCXRtcDF3LCBbc3JjLCAjLTFdIQorCXN0cmIJdG1wMXcsIFtkc3QsICMt MV0hCisxOgorCisJLyogVGhlcmUgbWF5IGJlIGxlc3MgdGhhbiA2MyBieXRl cyB0byBnbyBub3cuICAqLworCWNtcAljb3VudCwgIzYzCisJYi5sZQlMKHRh aWw2M3VwKQorMjoKKwlzdWJzCWNvdW50LCBjb3VudCwgIzEyOAorCWIuZ2UJ TChtb3ZfYm9keV9sYXJnZV91cCkKKwkvKiBMZXNzIHRoYW4gMTI4IGJ5dGVz IHRvIG1vdmUsIHNvIGhhbmRsZSA2NCBoZXJlIGFuZCB0aGVuIGp1bXAKKwkg KiB0byB0aGUgdGFpbC4gICovCisJbGRwCUFfbCwgQV9oLCBbc3JjLCAjLTY0 XSEKKwlsZHAJQl9sLCBCX2gsIFtzcmMsICMxNl0KKwlsZHAJQ19sLCBDX2gs IFtzcmMsICMzMl0KKwlsZHAJRF9sLCBEX2gsIFtzcmMsICM0OF0KKwlzdHAJ QV9sLCBBX2gsIFtkc3QsICMtNjRdIQorCXN0cAlCX2wsIEJfaCwgW2RzdCwg IzE2XQorCXN0cAlDX2wsIENfaCwgW2RzdCwgIzMyXQorCXN0cAlEX2wsIERf aCwgW2RzdCwgIzQ4XQorCXRzdAljb3VudCwgIzB4M2YKKwliLm5lCUwodGFp bDYzdXApCisJUkVUCisKKwkvKiBDcml0aWNhbCBsb29wLiAgU3RhcnQgYXQg YSBuZXcgSWNhY2hlIGxpbmUgYm91bmRhcnkuICBBc3N1bWluZworCSAqIDY0 IGJ5dGVzIHBlciBsaW5lIHRoaXMgZW5zdXJlcyB0aGUgZW50aXJlIGxvb3Ag aXMgaW4gb25lIGxpbmUuICAqLworCS5wMmFsaWduIDYKK0wobW92X2JvZHlf bGFyZ2VfdXApOgorCS8qIFRoZXJlIGFyZSBhdCBsZWFzdCAxMjggYnl0ZXMg dG8gbW92ZS4gICovCisJbGRwCUFfbCwgQV9oLCBbc3JjLCAjLTE2XQorCWxk cAlCX2wsIEJfaCwgW3NyYywgIy0zMl0KKwlsZHAJQ19sLCBDX2gsIFtzcmMs ICMtNDhdCisJbGRwCURfbCwgRF9oLCBbc3JjLCAjLTY0XSEKKzE6CisJc3Rw CUFfbCwgQV9oLCBbZHN0LCAjLTE2XQorCWxkcAlBX2wsIEFfaCwgW3NyYywg Iy0xNl0KKwlzdHAJQl9sLCBCX2gsIFtkc3QsICMtMzJdCisJbGRwCUJfbCwg Ql9oLCBbc3JjLCAjLTMyXQorCXN0cAlDX2wsIENfaCwgW2RzdCwgIy00OF0K KwlsZHAJQ19sLCBDX2gsIFtzcmMsICMtNDhdCisJc3RwCURfbCwgRF9oLCBb ZHN0LCAjLTY0XSEKKwlsZHAJRF9sLCBEX2gsIFtzcmMsICMtNjRdIQorCXN1 YnMJY291bnQsIGNvdW50LCAjNjQKKwliLmdlCTFiCisJc3RwCUFfbCwgQV9o LCBbZHN0LCAjLTE2XQorCXN0cAlCX2wsIEJfaCwgW2RzdCwgIy0zMl0KKwlz dHAJQ19sLCBDX2gsIFtkc3QsICMtNDhdCisJc3RwCURfbCwgRF9oLCBbZHN0 LCAjLTY0XSEKKwl0c3QJY291bnQsICMweDNmCisJYi5uZQlMKHRhaWw2M3Vw KQorCVJFVAorCitMKGRvd253YXJkcyk6CisJLyogRm9yIGEgZG93bndhcmRz IG1vdmUgd2UgY2FuIHNhZmVseSB1c2UgbWVtY3B5IHByb3ZpZGVkIHRoYXQK KwkgKiBEU1QgaXMgbW9yZSB0aGFuIDE2IGJ5dGVzIGF3YXkgZnJvbSBTUkMu ICAqLworCXN1Ygl0bXAxLCBzcmMsICMxNgorCWNtcAlkc3RpbiwgdG1wMQor CWIubHMJbWVtY3B5CQkvKiBNYXkgb3ZlcmxhcCwgYnV0IG5vdCBjcml0aWNh bGx5LiAgKi8KKworCW1vdglkc3QsIGRzdGluCS8qIFByZXNlcnZlIERTVElO IGZvciByZXR1cm4gdmFsdWUuICAqLworCWNtcAljb3VudCwgIzY0CisJYi5n ZQlMKG1vdl9ub3Rfc2hvcnRfZG93bikKKworCS8qIERlYWwgd2l0aCBzbWFs bCBtb3ZlcyBxdWlja2x5IGJ5IGRyb3BwaW5nIHN0cmFpZ2h0IGludG8gdGhl CisJICogZXhpdCBibG9jay4gICovCitMKHRhaWw2M2Rvd24pOgorCS8qIE1v dmUgdXAgdG8gNDggYnl0ZXMgb2YgZGF0YS4gIEF0IHRoaXMgcG9pbnQgd2Ug b25seSBuZWVkIHRoZQorCSAqIGJvdHRvbSA2IGJpdHMgb2YgY291bnQgdG8g YmUgYWNjdXJhdGUuICAqLworCWFuZHMJdG1wMSwgY291bnQsICMweDMwCisJ Yi5lcQlMKHRhaWwxNWRvd24pCisJYWRkCWRzdCwgZHN0LCB0bXAxCisJYWRk CXNyYywgc3JjLCB0bXAxCisJY21wCXRtcDF3LCAjMHgyMAorCWIuZXEJMWYK KwliLmx0CTJmCisJbGRwCUFfbCwgQV9oLCBbc3JjLCAjLTQ4XQorCXN0cAlB X2wsIEFfaCwgW2RzdCwgIy00OF0KKzE6CisJbGRwCUFfbCwgQV9oLCBbc3Jj LCAjLTMyXQorCXN0cAlBX2wsIEFfaCwgW2RzdCwgIy0zMl0KKzI6CisJbGRw CUFfbCwgQV9oLCBbc3JjLCAjLTE2XQorCXN0cAlBX2wsIEFfaCwgW2RzdCwg Iy0xNl0KK0wodGFpbDE1ZG93bik6CisJLyogTW92ZSB1cCB0byAxNSBieXRl cyBvZiBkYXRhLiAgRG9lcyBub3QgYXNzdW1lIGFkZGl0aW9uYWwgZGF0YQor CSAgIGJlaW5nIG1vdmVkLiAgKi8KKwl0YnoJY291bnQsICMzLCAxZgorCWxk cgl0bXAxLCBbc3JjXSwgIzgKKwlzdHIJdG1wMSwgW2RzdF0sICM4CisxOgor CXRiegljb3VudCwgIzIsIDFmCisJbGRyCXRtcDF3LCBbc3JjXSwgIzQKKwlz dHIJdG1wMXcsIFtkc3RdLCAjNAorMToKKwl0YnoJY291bnQsICMxLCAxZgor CWxkcmgJdG1wMXcsIFtzcmNdLCAjMgorCXN0cmgJdG1wMXcsIFtkc3RdLCAj MgorMToKKwl0YnoJY291bnQsICMwLCAxZgorCWxkcmIJdG1wMXcsIFtzcmNd CisJc3RyYgl0bXAxdywgW2RzdF0KKzE6CisJUkVUCisKK0wobW92X25vdF9z aG9ydF9kb3duKToKKwkvKiBXZSBkb24ndCBtdWNoIGNhcmUgYWJvdXQgdGhl IGFsaWdubWVudCBvZiBEU1QsIGJ1dCB3ZSB3YW50IFNSQworCSAqIHRvIGJl IDEyOC1iaXQgKDE2IGJ5dGUpIGFsaWduZWQgc28gdGhhdCB3ZSBkb24ndCBj cm9zcyBjYWNoZSBsaW5lCisJICogYm91bmRhcmllcyBvbiBib3RoIGxvYWRz IGFuZCBzdG9yZXMuICAqLworCW5lZwl0bXAyLCBzcmMKKwlhbmRzCXRtcDIs IHRtcDIsICMxNQkJLyogQnl0ZXMgdG8gcmVhY2ggYWxpZ25tZW50LiAgKi8K KwliLmVxCTJmCisJc3ViCWNvdW50LCBjb3VudCwgdG1wMgorCS8qIE1vdmUg ZW5vdWdoIGRhdGEgdG8gcmVhY2ggYWxpZ25tZW50OyB1bmxpa2UgbWVtY3B5 LCB3ZSBoYXZlIHRvCisJICogYmUgYXdhcmUgb2YgdGhlIG92ZXJsYXAsIHdo aWNoIG1lYW5zIHdlIGNhbid0IG1vdmUgZGF0YSB0d2ljZS4gICovCisJdGJ6 CXRtcDIsICMzLCAxZgorCWxkcgl0bXAxLCBbc3JjXSwgIzgKKwlzdHIJdG1w MSwgW2RzdF0sICM4CisxOgorCXRiegl0bXAyLCAjMiwgMWYKKwlsZHIJdG1w MXcsIFtzcmNdLCAjNAorCXN0cgl0bXAxdywgW2RzdF0sICM0CisxOgorCXRi egl0bXAyLCAjMSwgMWYKKwlsZHJoCXRtcDF3LCBbc3JjXSwgIzIKKwlzdHJo CXRtcDF3LCBbZHN0XSwgIzIKKzE6CisJdGJ6CXRtcDIsICMwLCAxZgorCWxk cmIJdG1wMXcsIFtzcmNdLCAjMQorCXN0cmIJdG1wMXcsIFtkc3RdLCAjMQor MToKKworCS8qIFRoZXJlIG1heSBiZSBsZXNzIHRoYW4gNjMgYnl0ZXMgdG8g Z28gbm93LiAgKi8KKwljbXAJY291bnQsICM2MworCWIubGUJTCh0YWlsNjNk b3duKQorMjoKKwlzdWJzCWNvdW50LCBjb3VudCwgIzEyOAorCWIuZ2UJTCht b3ZfYm9keV9sYXJnZV9kb3duKQorCS8qIExlc3MgdGhhbiAxMjggYnl0ZXMg dG8gbW92ZSwgc28gaGFuZGxlIDY0IGhlcmUgYW5kIHRoZW4ganVtcAorCSAq IHRvIHRoZSB0YWlsLiAgKi8KKwlsZHAJQV9sLCBBX2gsIFtzcmNdCisJbGRw CUJfbCwgQl9oLCBbc3JjLCAjMTZdCisJbGRwCUNfbCwgQ19oLCBbc3JjLCAj MzJdCisJbGRwCURfbCwgRF9oLCBbc3JjLCAjNDhdCisJc3RwCUFfbCwgQV9o LCBbZHN0XQorCXN0cAlCX2wsIEJfaCwgW2RzdCwgIzE2XQorCXN0cAlDX2ws IENfaCwgW2RzdCwgIzMyXQorCXN0cAlEX2wsIERfaCwgW2RzdCwgIzQ4XQor CXRzdAljb3VudCwgIzB4M2YKKwlhZGQJc3JjLCBzcmMsICM2NAorCWFkZAlk c3QsIGRzdCwgIzY0CisJYi5uZQlMKHRhaWw2M2Rvd24pCisJUkVUCisKKwkv KiBDcml0aWNhbCBsb29wLiAgU3RhcnQgYXQgYSBuZXcgY2FjaGUgbGluZSBi b3VuZGFyeS4gIEFzc3VtaW5nCisJICogNjQgYnl0ZXMgcGVyIGxpbmUgdGhp cyBlbnN1cmVzIHRoZSBlbnRpcmUgbG9vcCBpcyBpbiBvbmUgbGluZS4gICov CisJLnAyYWxpZ24gNgorTChtb3ZfYm9keV9sYXJnZV9kb3duKToKKwkvKiBU aGVyZSBhcmUgYXQgbGVhc3QgMTI4IGJ5dGVzIHRvIG1vdmUuICAqLworCWxk cAlBX2wsIEFfaCwgW3NyYywgIzBdCisJc3ViCWRzdCwgZHN0LCAjMTYJCS8q IFByZS1iaWFzLiAgKi8KKwlsZHAJQl9sLCBCX2gsIFtzcmMsICMxNl0KKwls ZHAJQ19sLCBDX2gsIFtzcmMsICMzMl0KKwlsZHAJRF9sLCBEX2gsIFtzcmMs ICM0OF0hCS8qIHNyYyArPSA2NCAtIFByZS1iaWFzLiAgKi8KKzE6CisJc3Rw CUFfbCwgQV9oLCBbZHN0LCAjMTZdCisJbGRwCUFfbCwgQV9oLCBbc3JjLCAj MTZdCisJc3RwCUJfbCwgQl9oLCBbZHN0LCAjMzJdCisJbGRwCUJfbCwgQl9o LCBbc3JjLCAjMzJdCisJc3RwCUNfbCwgQ19oLCBbZHN0LCAjNDhdCisJbGRw CUNfbCwgQ19oLCBbc3JjLCAjNDhdCisJc3RwCURfbCwgRF9oLCBbZHN0LCAj NjRdIQorCWxkcAlEX2wsIERfaCwgW3NyYywgIzY0XSEKKwlzdWJzCWNvdW50 LCBjb3VudCwgIzY0CisJYi5nZQkxYgorCXN0cAlBX2wsIEFfaCwgW2RzdCwg IzE2XQorCXN0cAlCX2wsIEJfaCwgW2RzdCwgIzMyXQorCXN0cAlDX2wsIENf aCwgW2RzdCwgIzQ4XQorCXN0cAlEX2wsIERfaCwgW2RzdCwgIzY0XQorCWFk ZAlzcmMsIHNyYywgIzE2CisJYWRkCWRzdCwgZHN0LCAjNjQgKyAxNgorCXRz dAljb3VudCwgIzB4M2YKKwliLm5lCUwodGFpbDYzZG93bikKKwlSRVQKK0VO RCAobWVtbW92ZSkKKworbGliY19oaWRkZW5fYnVpbHRpbl9kZWYgKG1lbW1v dmUpCi0tIAoxLjcuMTEuNQoK --047d7b343cdc4d418604d3686ea2--