--- /dev/null
+Return-path: <libre-riscv-dev-bounces@lists.libre-riscv.org>
+Envelope-to: publicinbox@libre-riscv.org
+Delivery-date: Sat, 16 May 2020 01:24:58 +0100
+Received: from localhost ([::1] helo=libre-riscv.org)
+ by libre-soc.org with esmtp (Exim 4.89)
+ (envelope-from <libre-riscv-dev-bounces@lists.libre-riscv.org>)
+ id 1jZkdN-0004pm-ME; Sat, 16 May 2020 01:24:57 +0100
+Received: from localhost ([127.0.0.1] helo=bugs.libre-soc.org)
+ by libre-soc.org with esmtp (Exim 4.89)
+ (envelope-from <bugzilla-daemon@libre-soc.org>) id 1jZkdM-0004pd-31
+ for libre-riscv-dev@lists.libre-riscv.org; Sat, 16 May 2020 01:24:56 +0100
+From: bugzilla-daemon@libre-soc.org
+To: libre-riscv-dev@lists.libre-riscv.org
+Date: Sat, 16 May 2020 00:24:56 +0000
+X-Bugzilla-Reason: CC
+X-Bugzilla-Type: changed
+X-Bugzilla-Watch-Reason: None
+X-Bugzilla-Product: Libre-SOC's first SoC
+X-Bugzilla-Component: Source Code
+X-Bugzilla-Version: unspecified
+X-Bugzilla-Keywords:
+X-Bugzilla-Severity: normal
+X-Bugzilla-Who: colepoirier@gmail.com
+X-Bugzilla-Status: CONFIRMED
+X-Bugzilla-Resolution:
+X-Bugzilla-Priority: Normal
+X-Bugzilla-Assigned-To: colepoirier@gmail.com
+X-Bugzilla-Flags:
+X-Bugzilla-Changed-Fields:
+Message-ID: <bug-316-13-QkkXOjVoWe@https.bugs.libre-soc.org/>
+In-Reply-To: <bug-316-13@https.bugs.libre-soc.org/>
+References: <bug-316-13@https.bugs.libre-soc.org/>
+X-Bugzilla-URL: https://bugs.libre-soc.org/
+Auto-Submitted: auto-generated
+MIME-Version: 1.0
+Subject: [libre-riscv-dev] [Bug 316] bperm TODO
+X-BeenThere: libre-riscv-dev@lists.libre-riscv.org
+X-Mailman-Version: 2.1.23
+Precedence: list
+List-Id: Libre-RISCV General Development
+ <libre-riscv-dev.lists.libre-riscv.org>
+List-Unsubscribe: <http://lists.libre-riscv.org/mailman/options/libre-riscv-dev>,
+ <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=unsubscribe>
+List-Archive: <http://lists.libre-riscv.org/pipermail/libre-riscv-dev/>
+List-Post: <mailto:libre-riscv-dev@lists.libre-riscv.org>
+List-Help: <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=help>
+List-Subscribe: <http://lists.libre-riscv.org/mailman/listinfo/libre-riscv-dev>,
+ <mailto:libre-riscv-dev-request@lists.libre-riscv.org?subject=subscribe>
+Reply-To: Libre-RISCV General Development
+ <libre-riscv-dev@lists.libre-riscv.org>
+Content-Type: text/plain; charset="utf-8"
+Content-Transfer-Encoding: base64
+Errors-To: libre-riscv-dev-bounces@lists.libre-riscv.org
+Sender: "libre-riscv-dev" <libre-riscv-dev-bounces@lists.libre-riscv.org>
+
+aHR0cHM6Ly9idWdzLmxpYnJlLXNvYy5vcmcvc2hvd19idWcuY2dpP2lkPTMxNgoKLS0tIENvbW1l
+bnQgIzYgZnJvbSBDb2xlIFBvaXJpZXIgPGNvbGVwb2lyaWVyQGdtYWlsLmNvbT4gLS0tCihJbiBy
+ZXBseSB0byBMdWtlIEtlbm5ldGggQ2Fzc29uIExlaWdodG9uIGZyb20gY29tbWVudCAjNCkKPiAo
+SW4gcmVwbHkgdG8gQ29sZSBQb2lyaWVyIGZyb20gY29tbWVudCAjMSkKPiBnb29kIGZvciB5b3Uh
+ICB0aHJvdyBpdCBpbnRvLi4uIG1tbS4uLiBsZXQncyBzZWUuLi4KPiBzb2Mvc3JjL3NvYy9sb2dp
+Y2FsL2JwZXJtLnB5CgpUaGFuayB5b3Ugc28gbXVjaCBMdWtlLCBhbSBwb3NpdGl2ZWx5IGdpZGR5
+IGF0IGhhdmluZyB3cml0dGVuIG15IGZpcnN0IGJpdCBvZgpubWlnZW4gSERMISEhIAoKKEluIHJl
+cGx5IHRvIEx1a2UgS2VubmV0aCBDYXNzb24gTGVpZ2h0b24gZnJvbSBjb21tZW50ICM1KQo+IChJ
+biByZXBseSB0byBDb2xlIFBvaXJpZXIgZnJvbSBjb21tZW50ICMzKSAKPiBlcnIuLi4gZXJyLi4u
+LiBhaCA6KSAgcnJycmlnaHQsIHlvdSBuZWVkIHRvIHVzZSBubWlnZW4uQXJyYXkuCj4gCj4gYmFz
+aWNhbGx5Ogo+IAo+ICogY3JlYXRlIGEgbGlzdCBvZiA2NCBzaWduYWxzLCBlYWNoIDEtYml0IHdp
+ZGUsIGZvci1sb29wLCBhcHBlbmQgdGhlbSBlYWNoCj4gdG8gdGhlCj4gICBsaXN0Cj4gKiBhc3Np
+Z24gMSBiaXQgb2YgcmIgaW50byBlYWNoIG9mIHRob3NlIDY0IChzaWduYWxfMV9iaXQuZXEocmJb
+aV0pIAo+ICogY3JlYXRlIHRoZSBhcnJheTogcmI4ID0gQXJyYXkobXlfbGlzdF9vZl82NF9zaWdu
+YWxzKQo+IAo+ICp0aGVuKiB5b3UgY2FuIGluZGV4IHRoZW0uCj4gCj4gaG93ZXZlci4uLiBiZSBh
+d2FyZSB0aGF0IHRoaXMgaXMgYW4gYWJzb2x1dGVseSB0cnVseSBkcmVhZGZ1bCB3YXkgdG8gZG8g
+aXQgOikKPiBpdCB3aWxsIGF0IGxlYXN0IGJlIGZ1bmN0aW9uYWwgYW5kIHdlIGNhbiB3b3JrIG9u
+IGFuIGltcHJvdmVkIGRlc2lnbiBpbiBhCj4gc2Vjb25kIGl0ZXJhdGlvbi4KPiAKPiBiYXNpY2Fs
+bHkgaXQgaXMgYWJzb2x1dGVseSBhd2Z1bCBiZWNhdXNlIHdlIGFyZSBjcmVhdGluZyBhICpTSVhU
+WSBGT1VSKiB3YXkKPiBjcm9zc2Jhci4uLiBhY3R1YWxseSA4IHN1Y2ggNjQtd2F5IGNyb3NzYmFy
+cyEKPiAKPiB0aGlzIGlzIHByZXR0eSBtYXNzaXZlLgo+IAo+IGhvd2V2ZXIuLi4gYmVmb3JlIGNv
+bXBsZXRlbHkgZnJlYWtpbmcgb3V0LCBpdCBpcyB3b3J0aHdoaWxlIHNlZWluZyB3aGF0Cj4geW9z
+eXMgYWN0dWFsbHkgZ2VuZXJhdGVzIChzeW50aCBjb21tYW5kKS4gIGl0ICptaWdodCogYWN0dWFs
+bHkgZ2VuZXJhdGUKPiBhbiBlZmZpY2llbnQgZGVzaWduLiAgd2UgaGF2ZSB0byBzZWUuCj4gCj4g
+aWYgaXQgcmVhbGx5IGRvZXNuJ3QsIHRoZW4gd2UgY2FuIGxvb2sgYXJvdW5kIGZvciBhbHRlcm5h
+dGl2ZXMuICB0aGVyZSBtaWdodAo+IGJlIHNvbWV0aGluZyBpbiBjbGlmZm9yZCB3b2xmJ3MgZXhj
+ZWxsZW50IGJpdG1hbmlwIGNvZGUuCgpJIGxvb2tlZCB1cCAnY2xpZmZvcmQgd29sZiBiaXRtYW5p
+cCcgYW5kIGZvdW5kIHRoaXMKaHR0cHM6Ly9naXRodWIuY29tL3Jpc2N2L3Jpc2N2LWJpdG1hbmlw
+L2Jsb2IvbWFzdGVyL3Zlcmlsb2cvcnZiX2JleHRkZXAvcnZiX2JleHRkZXAudgp3aGljaCBzZWVt
+cyB0byBpbXBsZW1lbnQgdGhlIHJ2YiBlcXVpdmFsZW50IG9mIGJwZXJtLCBzaGZsIChhbmQgdW5z
+aGZsKS4gV29sZiwKd2hvIEkgYmVsaWV2ZSBmcm9tIHRoZSBjb3B5cmlnaHQgb24gdGhpcyBmaWxl
+IG5vdyBnb2VzIGJ5IENsYWlyZSwgd3JvdGUgdGhlCnJpc2N2IGJpdG1hbmlwIGV4dGVudGlvbiBw
+cm9wb3NhbCwgd2hpY2ggaXMgYWxzbyBhdmFpbGFibGUgaW4gdGhlIGxpbmtlZCByZXBvCmluIHBy
+ZS1idWlsdCBvciBzZWxmLWJ1aWx0IHBkZiBmb3JtLiBJcyB0aGlzIHRoZSBiaXRtYW5pcCBjb2Rl
+IHlvdSBhcmUKcmVmZXJyaW5nIHRvPwoKPiBidXQgLSBnbyB0aHJvdWdoIHdpdGggdGhpcyBhcyBp
+dCBpcywgdGhlbiB3cml0ZSBhIHVuaXQgdGVzdC4gIHlvdSB3aWxsIHRoZW4KPiBoYXZlICJzb21l
+dGhpbmcgdG8gdGVzdCBhbiBhbHRlcm5hdGl2ZSBkZXNpZ24gYWdhaW5zdCIsIGxhdGVyLgoKSSBi
+ZWxpZXZlIEkgaGF2ZSBpbXBsZW1lbnRlZCB0aGUgZml4ZXMgeW91IGhhdmUgc3VnZ2VzdGVkLCBi
+dXQgSSdtIHJlYWxseQpzdHJ1Z2dsaW5nIHdpdGggaG93IHRvIHdyaXRlIGFuIGFwcHJvcHJpYXRl
+IHVuaXQgdGVzdCwgd2hpY2ggcHJldmVudHMgbWUgZnJvbQpjb21taXR0aW5nIG15IGNvZGUgdG8g
+eW91ciBzdWdnZXN0ZWQgbG9jYXRpb24gaW4gdGhlIHNvYyByZXBvLCBpZiBJJ20gcmVjYWxsaW5n
+CnRoZSBIRExfV29ya2Zsb3cgZGV2ZWxvcG1lbnQgcnVsZXMgY29ycmVjdGx5LiBDYW4geW91IHBv
+aW50IG1lIHRvIGEgcmVzb3VyY2Ugb3IKZXhwbGFpbiB0aGUgYmFzaWMgcHJpbmNpcGxlcyBvciBy
+dWxlcyBvZiB3cml0aW5nIGhhcmR3YXJlIHVuaXQgdGVzdHM/IEknbQpmZWVsaW5nIGF0IGEgdG90
+YWwgbG9zcyBvZiB3aGVyZSB0byBzdGFydCBoZXJlLiBBZGRpdGlvbmFsbHksIHBhcmRvbiBteQpp
+Z25vcmFuY2UsIGJ1dCBhcmUgdGhlIHVuaXQgdGVzdHMgc3VwcG9zZWQgdG8gYmUgd3JpdHRlbiBp
+bmxpbmUgb3IgcHV0IGluIHRoZQp0ZXN0cyBkaXJlY3Rvcnkgb2YgdGhlIHdvcmtpbmcgZGlyZWN0
+b3J5PyAoSXQgd2Fzbid0IG9idmlvdXMgdG8gbWUgYWZ0ZXIKZXhhbWluaW5nIHRoZSBhbHUgYW5k
+IGV4cGVyaW1lbnQgZGlyZWN0b3JpZXMpCgpIZXJlIGlzIG15IGF0dGVtcHQgYXQgdGhlIGFycmF5
+IGNvZGUgYmVjYXVzZSBJIGJlbGlldmUgSSBjYW4ndCB5ZXQgY29tbWl0IGl0IHRvCnRoZSByZXBv
+OgpgYGAKIGZyb20gbm1pZ2VuIGltcG9ydCBFbGFib3JhdGFibGUsIFNpZ25hbCwgTW9kdWxlLCBS
+ZXBsLCBDYXQsIENvbnN0LCBBcnJheQogZnJvbSBubWlnZW4uY2xpIGltcG9ydCBtYWluCgogY2xh
+c3MgQnBlcm1kKEVsYWJvcmF0YWJsZSk6ICAgIAogICAgIGRlZiBfX2luaXRfXyhzZWxmLCB3aWR0
+aCk6CiAgICAgICAgIHNlbGYucGVybSA9IFNpZ25hbCh3aWR0aCkKICAgICAgICAgc2VsZi5ycyAg
+ID0gU2lnbmFsKHdpZHRoKQogICAgICAgICBzZWxmLnJhICAgPSBTaWduYWwod2lkdGgpCiAgICAg
+ICAgIHNlbGYucmIgICA9IFNpZ25hbCh3aWR0aCkKCiAgICAgZGVmIGVsYWJvcmF0ZShzZWxmLCBw
+bGF0Zm9ybSk6CiAgICAgICAgIG0gPSBNb2R1bGUoKQogICAgICAgICBtLmQuY29tYiArPSBzZWxm
+LnBlcm0uZXEoQ29uc3QoMCw4KSkKICAgICAgICAgaW5kZXggPSBTaWduYWwoOCkKICAgICAgICAg
+c2lnbmFscyA9IFsgU2lnbmFsKDEpIGZvciBpIGluIHJhbmdlKDAsNjQpIF0KICAgICAgICAgZm9y
+IGksbiBpbiBlbnVtZXJhdGUoc2lnbmFscyk6CiAgICAgICAgICAgICBuLmVxKHNlbGYucmJbaV0p
+CiAgICAgICAgIHJiOCA9IEFycmF5KHNpZ25hbHMpCiAgICAgICAgIGZvciBpIGluIHJhbmdlKDAs
+IDcgKyAxKToKICAgICAgICAgICAgIGluZGV4ID0gc2VsZi5yc1s4ICogaTo4ICogaSArIDcgKyAx
+XQogICAgICAgICAgICAgd2l0aCBtLklmKGluZGV4IDwgNjQpOgogICAgICAgICAgICAgICAgIG0u
+ZC5jb21iICs9IHNlbGYucGVybVtpXS5lcShyYjhbaW5kZXhdKQogICAgICAgICAgICAgd2l0aCBt
+LkVsc2UoKToKICAgICAgICAgICAgICAgICBtLmQuY29tYiArPSBzZWxmLnBlcm1baV0uZXEoMCkK
+ICAgICAgICAgbS5kLmNvbWIgKz0gc2VsZi5yYVswOjhdLmVxKHNlbGYucGVybSkKICAgICAgICAg
+cmV0dXJuIG0KCiBpZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgogICAgIGJwZXJtID0gQnBlcm1k
+KHdpZHRoPTY0KQogICAgIG1haW4oYnBlcm0scG9ydHM9W2JwZXJtLnBlcm0sIGJwZXJtLnJzLCBi
+cGVybS5yYSwgYnBlcm0ucmJdKQpgYGAKCi0tIApZb3UgYXJlIHJlY2VpdmluZyB0aGlzIG1haWwg
+YmVjYXVzZToKWW91IGFyZSBvbiB0aGUgQ0MgbGlzdCBmb3IgdGhlIGJ1Zy4KX19fX19fX19fX19f
+X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbGlicmUtcmlzY3YtZGV2IG1haWxp
+bmcgbGlzdApsaWJyZS1yaXNjdi1kZXZAbGlzdHMubGlicmUtcmlzY3Yub3JnCmh0dHA6Ly9saXN0
+cy5saWJyZS1yaXNjdi5vcmcvbWFpbG1hbi9saXN0aW5mby9saWJyZS1yaXNjdi1kZXYK
+