Message ID | 20220726072119.2910839-1-chenglulu@loongson.cn |
---|---|
State | New, archived |
Headers |
Return-Path: <gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org> Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:6a10:b5d6:b0:2b9:3548:2db5 with SMTP id v22csp2096251pxt; Tue, 26 Jul 2022 00:21:55 -0700 (PDT) X-Google-Smtp-Source: AGRyM1vwFa13nXvbqllG5H5X6PlDQZRpIkGuoLgu+8oTTlc4phk0GWvBtYnZbqcKUOjas6oDk7+Q X-Received: by 2002:a05:6402:4395:b0:43a:c694:907d with SMTP id o21-20020a056402439500b0043ac694907dmr16645665edc.310.1658820115538; Tue, 26 Jul 2022 00:21:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1658820115; cv=none; d=google.com; s=arc-20160816; b=GmWBaMQzOID3/uhkqc9gf6hTEebiUufKcLE4u1yFjCeeEc7LA3NKBem9WqpDyGk2UG hAzPeNSOorFIvhqGPbLR3v9wccqTBxfZMWzMzUx0wv2yMfp95r75T1buNwzqE9K5++u9 nlEWiSKFEgFcDgcTuPYZVX3MSbSQgZTsBRzGnry85XsT8bHr0yKRKEe4pKHqaW5UcE3L 8rsUs2SE2pZkbUG5sSwMGQOKYGX8bk7hO7P3+s1MrgYQHjjOjn9dvoeu+9rAD2/h+qpM uYnTVxjPPNTNY0teQJluOrTquCHk1hJ6D+l6DMyI6JTEPj7V9t721CR10K4FqLMtKmX+ D4GA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:cc:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:message-id:date:subject:to:from:dmarc-filter :delivered-to; bh=NFMDUYPbK9JTspLStagxYJ8qWjYNfd1syklIBsyYUsk=; b=dRZeD+33uLgiQcs2XeM7KdeyuIIP7g+3npSTAW2G1xRQ2BKh8Ntfs1OHEaJKZNnsIn mMvSLHDrrQMIZ3QKh+hP1TxjT7dp/K9plA1SeG2+FgyNVIJnKDbEABHObi7Gn0IEoeZb 0/oP84U/MUJMfHq+76cNBIuVJVVpz8zOqOu7GXOexeQoaPH9BhAwIpdWddORCJWL0JRh RW73wAJjf2X2TJH/6gdiNG5morLFGSqulvRbXGlINYV9CSbrhtmAx5hmH6wX/5rEBnNz Beury7QZ8kN1A5H+eNo1oaYnX6Mmy9IEmZdeB5ceYYzFpKEYBOA29slF4oh3PfRSVi/c +QCQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org" Received: from sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id nd19-20020a170907629300b0072b452acb53si12576056ejc.875.2022.07.26.00.21.55 for <ouuuleilei@gmail.com> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 26 Jul 2022 00:21:55 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 0DD09385783E for <ouuuleilei@gmail.com>; Tue, 26 Jul 2022 07:21:52 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from loongson.cn (mail.loongson.cn [114.242.206.163]) by sourceware.org (Postfix) with ESMTP id 8DF073858D32 for <gcc-patches@gcc.gnu.org>; Tue, 26 Jul 2022 07:21:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 8DF073858D32 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=loongson.cn Received: from 5.5.5 (unknown [10.2.5.5]) by mail.loongson.cn (Coremail) with SMTP id AQAAf9Ax+eDxld9ibiw5AA--.34044S2; Tue, 26 Jul 2022 15:21:25 +0800 (CST) From: Lulu Cheng <chenglulu@loongson.cn> To: gcc-patches@gcc.gnu.org Subject: [PATCH][wwwdocs] gcc-13: Add loongarch '-mexplicit-relocs' support Date: Tue, 26 Jul 2022 15:21:19 +0800 Message-Id: <20220726072119.2910839-1-chenglulu@loongson.cn> X-Mailer: git-send-email 2.31.1 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-CM-TRANSID: AQAAf9Ax+eDxld9ibiw5AA--.34044S2 X-Coremail-Antispam: 1UD129KBjvJXoW7Zw47uw4xurWDWry8ur1fCrg_yoW8Xryrpr 1UuF95GF10qr1Skw1ft347Wwn8CFs5XF15ZFyIgw1FyFn0qFWkXr18tw1UC348Xr12qrWS q3WxKry5uF4UAwUanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUkS14x267AKxVWUJVW8JwAFc2x0x2IEx4CE42xK8VAvwI8IcIk0 rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xGY2AK02 1l84ACjcxK6xIIjxv20xvE14v26ryj6F1UM28EF7xvwVC0I7IYx2IY6xkF7I0E14v26F4j 6r4UJwA2z4x0Y4vEx4A2jsIE14v26F4UJVW0owA2z4x0Y4vEx4A2jsIEc7CjxVAFwI0_Gc CE3s1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E 2Ix0cI8IcVAFwI0_JrI_JrylYx0Ex4A2jsIE14v26r4j6F4UMcvjeVCFs4IE7xkEbVWUJV W8JwACjcxG0xvY0x0EwIxGrwACjI8F5VA0II8E6IAqYI8I648v4I1lc2xSY4AK6svPMxAI w28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I8CrVAFwI0_Jr0_Jr 4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUAVWUtwCIc40Y0x0EwIxG rwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x0267AKxVWUJVW8Jw CI42IY6xAIw20EY4v20xvaj40_Wr1j6rW3Jr1lIxAIcVC2z280aVAFwI0_Jr0_Gr1lIxAI cVC2z280aVCY1x0267AKxVWUJVW8JbIYCTnIWIevJa73UjIFyTuYvjfU5-B_UUUUU X-CM-SenderInfo: xfkh0wpoxo3qxorr0wxvrqhubq/ X-Spam-Status: No, score=-13.0 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, SPF_HELO_PASS, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list <gcc-patches.gcc.gnu.org> List-Unsubscribe: <https://gcc.gnu.org/mailman/options/gcc-patches>, <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>, <mailto:gcc-patches-request@gcc.gnu.org?subject=subscribe> Cc: xuchenghua@loongson.cn, Lulu Cheng <chenglulu@loongson.cn> Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" <gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org> X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1739398961610095579?= X-GMAIL-MSGID: =?utf-8?q?1739398961610095579?= |
Series |
[wwwdocs] gcc-13: Add loongarch '-mexplicit-relocs' support
|
|
Commit Message
chenglulu
July 26, 2022, 7:21 a.m. UTC
Hi, Recently we added split symbol support, changed in r13-1834. It is ok for wwwdocs? Thanks! Lulu Cheng --- htdocs/gcc-13/changes.html | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+)
Comments
+Xuerui (his English is much better than mine). On Tue, 2022-07-26 at 15:21 +0800, Lulu Cheng wrote: > Hi, > Recently we added split symbol support, changed in r13-1834. > It is ok for wwwdocs? > +<h3 id="loongarch">LoongArch</h3> > +<ul> > + <li>The option <code>-mexplicit-relocs</code> has been added, this indicate I think "added and enabled by default" would be better. > + whether the <code>la.*</code> macro instructions will be generated when > + loading symbolic addresses. > + This feature requires binutils version 2.40 or later. If you want to use the > + older version of bintuils, add compiler parameters > + <code>-mno-explicit-relocs</code> at compile time. Does it mean we need to make sure GCC 13 released after binutils-2.40? binutils-2.39 release branch is already created and it's now explicitly "no new feature" so a backport seems impossible... > + </li> > + <li>The method for calling global functions changed from > + <code>la.global + jirl</code> to <code>bl</code> when complied add > + <code>-fplt</code>. "from la.global + jirl to bl with -fno-plt and -mexplicit-relocs"? With "-fplt" GCC 12 is already using bl, and with -mno-explicit-relocs la.global is still used (if I read func-call-3.c correctly). > + <li>Enable option <code>-fsection-anchors</code> when <code>-O1</code> and > + more advanced optimization. "-fsection-anchors is enabled by default at <code>-O1</code> and higher optimization levels for better code generation". > + <li>Changed <code>ASM_PREFERRED_EH_DATA_FORMAT</code> macro definition from > + <code>WD_EH_PE_absptr</code> to <code>WD_EH_PE_pcrel | DW_EH_PE_sdata4</code>. > + </li> I don't think this paragraph is necessary because this change is purely internal.
On Tue, 26 Jul 2022, Lulu Cheng wrote: > +<h3 id="loongarch">LoongArch</h3> > +<ul> > + <li>The option <code>-mexplicit-relocs</code> has been added, this indicates > + whether the <code>la.*</code> macro instructions will be generated when > + loading symbolic addresses. How about making this "...has been added. It indicates..." or, if you prefer one sentence "...has been added to indicate whether"? > + This feature requires binutils version 2.40 or later. If you want to use the > + older version of bintuils, add compiler parameters > + <code>-mno-explicit-relocs</code> at compile time. "...older versions..." (or "...an older version...") And I believe we can simplify and just say "...add <code>-mno-explicit..." > + <li>The method for calling global functions changed from > + <code>la.global + jirl</code> to <code>bl</code> when complied add > + <code>-fplt</code>. Do you mean "compiled" instead of "complied"? And maybe "compiled with"? > + <li>Enable option <code>-fsection-anchors</code> when <code>-O1</code> and > + more advanced optimization. How about "<code>-fsection-anchors</code> is now enabled with <code>-O1</code> and above"? If my suggestions make sense to you, please go ahead and commit with those or variations thereof you may prefer. If you have any questions, please let me know and we'll sort things out quickly. Thank you, Gerald
在 2022/7/26 下午5:44, Xi Ruoyao 写道: > >> + whether the <code>la.*</code> macro instructions will be generated when >> + loading symbolic addresses. >> + This feature requires binutils version 2.40 or later. If you want to use the >> + older version of bintuils, add compiler parameters >> + <code>-mno-explicit-relocs</code> at compile time. > Does it mean we need to make sure GCC 13 released after binutils-2.40? > binutils-2.39 release branch is already created and it's now explicitly > "no new feature" so a backport seems impossible... Do you think it's okay if we don't write Binutils version restrictions now and wait until Binutils code is released to annotate? >> + </li> >> + <li>The method for calling global functions changed from >> + <code>la.global + jirl</code> to <code>bl</code> when complied add >> + <code>-fplt</code>. > "from la.global + jirl to bl with -fno-plt and -mexplicit-relocs"? With > "-fplt" GCC 12 is already using bl, and with -mno-explicit-relocs > la.global is still used (if I read func-call-3.c correctly). I should put '-fplt -mexplicit-relocs' here. >> + <li>Changed <code>ASM_PREFERRED_EH_DATA_FORMAT</code> macro definition from >> + <code>WD_EH_PE_absptr</code> to <code>WD_EH_PE_pcrel | DW_EH_PE_sdata4</code>. >> + </li> > I don't think this paragraph is necessary because this change is purely > internal. > Should we indicate that our .eh_frame section format has changed? Thanks!
On Tue, 2022-07-26 at 19:42 +0800, Lulu Cheng wrote: > 在 2022/7/26 下午5:44, Xi Ruoyao 写道: > > > > > + whether the <code>la.*</code> macro instructions will be generated when > > > + loading symbolic addresses. > > > + This feature requires binutils version 2.40 or later. If you want to use the > > > + older version of bintuils, add compiler parameters > > > + <code>-mno-explicit-relocs</code> at compile time. > > Does it mean we need to make sure GCC 13 released after binutils-2.40? > > binutils-2.39 release branch is already created and it's now explicitly > > "no new feature" so a backport seems impossible... > > Do you think it's okay if we don't write Binutils version restrictions > now and wait until Binutils code is released to annotate? I think you can just put Binutils 2.40 here. GCC 13 will be released in Apr or May 2023, and Binutils-2.40 will be released in Jan or Feb 2023 (if no bad thing happens), so my previous concern is actually not a problem. Maybe we can add a check in gcc/configure.ac to see if gcc_cv_ld supports %got_pc_hi20 and adjust the default for -m[no]-explicit-relocs? > > Should we indicate that our .eh_frame section format has changed? I don't really understand C++ exception handling, so: does the change breaks something? For example, if foo links to libbar, libbar is built with GCC 12 (or vice versa), would an exception thrown from libbar properly caught by foo? Generally changes.html is for compiler users (instead of developers), and I believe at least 90% of users (including I) don't know the potential consequences from a .eh_frame format change. So it's better to describe the breakage and possible workaround here. If nothing will be broken, we can just skip the change in changes.html.
在 2022/7/26 下午7:32, Gerald Pfeifer 写道: > On Tue, 26 Jul 2022, Lulu Cheng wrote: >> +<h3 id="loongarch">LoongArch</h3> >> +<ul> >> + <li>The option <code>-mexplicit-relocs</code> has been added, this indicates >> + whether the <code>la.*</code> macro instructions will be generated when >> + loading symbolic addresses. > How about making this "...has been added. It indicates..." or, if you > prefer one sentence "...has been added to indicate whether"? > >> + This feature requires binutils version 2.40 or later. If you want to use the >> + older version of bintuils, add compiler parameters >> + <code>-mno-explicit-relocs</code> at compile time. > "...older versions..." (or "...an older version...") > > And I believe we can simplify and just say "...add <code>-mno-explicit..." > >> + <li>The method for calling global functions changed from >> + <code>la.global + jirl</code> to <code>bl</code> when complied add >> + <code>-fplt</code>. > Do you mean "compiled" instead of "complied"? > > And maybe "compiled with"? > >> + <li>Enable option <code>-fsection-anchors</code> when <code>-O1</code> and >> + more advanced optimization. > How about "<code>-fsection-anchors</code> is now enabled with > <code>-O1</code> and above"? > > > If my suggestions make sense to you, please go ahead and commit with those > or variations thereof you may prefer. > > If you have any questions, please let me know and we'll sort things out > quickly. > > Thank you, > Gerald Thanks a lot, I will fix it soon. Lulu Cheng
在 2022/7/26 下午8:01, Xi Ruoyao 写道: > On Tue, 2022-07-26 at 19:42 +0800, Lulu Cheng wrote: > >> 在 2022/7/26 下午5:44, Xi Ruoyao 写道: >>>> + whether the <code>la.*</code> macro instructions will be generated when >>>> + loading symbolic addresses. >>>> + This feature requires binutils version 2.40 or later. If you want to use the >>>> + older version of bintuils, add compiler parameters >>>> + <code>-mno-explicit-relocs</code> at compile time. >>> Does it mean we need to make sure GCC 13 released after binutils-2.40? >>> binutils-2.39 release branch is already created and it's now explicitly >>> "no new feature" so a backport seems impossible... >> Do you think it's okay if we don't write Binutils version restrictions >> now and wait until Binutils code is released to annotate? > I think you can just put Binutils 2.40 here. GCC 13 will be released in > Apr or May 2023, and Binutils-2.40 will be released in Jan or Feb 2023 > (if no bad thing happens), so my previous concern is actually not a > problem. > > Maybe we can add a check in gcc/configure.ac to see if gcc_cv_ld > supports %got_pc_hi20 and adjust the default for -m[no]-explicit-relocs? I think this is a good way, I'll look at adding a check. >> Should we indicate that our .eh_frame section format has changed? > I don't really understand C++ exception handling, so: does the change > breaks something? For example, if foo links to libbar, libbar is built > with GCC 12 (or vice versa), would an exception thrown from libbar > properly caught by foo? > > Generally changes.html is for compiler users (instead of developers), > and I believe at least 90% of users (including I) don't know the > potential consequences from a .eh_frame format change. So it's better > to describe the breakage and possible workaround here. If nothing will > be broken, we can just skip the change in changes.html. > > I'm looking to see if I can find a test that can verify the compatibility or incompatibility before and after the modification. Thanks!:-)
在 2022/7/26 下午8:01, Xi Ruoyao 写道: > On Tue, 2022-07-26 at 19:42 +0800, Lulu Cheng wrote: > >> 在 2022/7/26 下午5:44, Xi Ruoyao 写道: >>> Should we indicate that our .eh_frame section format has changed? > I don't really understand C++ exception handling, so: does the change > breaks something? For example, if foo links to libbar, libbar is built > with GCC 12 (or vice versa), would an exception thrown from libbar > properly caught by foo? > > Generally changes.html is for compiler users (instead of developers), > and I believe at least 90% of users (including I) don't know the > potential consequences from a .eh_frame format change. So it's better > to describe the breakage and possible workaround here. If nothing will > be broken, we can just skip the change in changes.html. > > The ASM_PREFERRED_EH_DATA_FORMAT macro before and after modification is as follows: #define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL) \ - (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_absptr) + (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | DW_EH_PE_sdata4) Use the following tests to describe the effect of modifying this macro on the generated assembly code: #include <iostream> #include <exception> using namespace std; int main() { try { throw 1; } catch (int i) { cout << i << endl; } } The main comparisons related to the eh_frame section are as follows: OLD NEW .LFB1997 = . | .LFB1780 = . .cfi_startproc | .cfi_startproc .cfi_personality 0x80,DW.ref.__gxx_personality_v0 | .cfi_personality 0x9b,DW.ref.__gxx_personality_v0 .cfi_lsda 0,.LLSDA1997 | .cfi_lsda 0x1b,.LLSDA1780 If the assembly file generated by the new gcc is compiled with the binutils of version 2.38, the following error will be reported: test.s:74: Error: invalid or unsupported encoding in .cfi_personality test.s:75: Error: invalid or unsupported encoding in .cfi_lsda So I think I should judge whether binutils supports this encoding when gcc is configured, and then choose how to define macro ASM_PREFERRED_EH_DATA_FORMAT.
On Thu, 2022-07-28 at 10:59 +0800, Lulu Cheng wrote: > > The ASM_PREFERRED_EH_DATA_FORMAT macro before and after modification > > is > as follows: > #define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL) \ > - (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_absptr) > + (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | > DW_EH_PE_sdata4) The master branch still contains: #define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL) \ (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_absptr) Did you forgot to commit this change (or lost it during a rebase)?
在 2022/7/28 下午6:41, Xi Ruoyao 写道: > On Thu, 2022-07-28 at 10:59 +0800, Lulu Cheng wrote: > >>> The ASM_PREFERRED_EH_DATA_FORMAT macro before and after modification >>> is >> as follows: >> #define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL) \ >> - (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_absptr) >> + (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_pcrel | >> DW_EH_PE_sdata4) > The master branch still contains: > > #define ASM_PREFERRED_EH_DATA_FORMAT(CODE, GLOBAL) \ > (((GLOBAL) ? DW_EH_PE_indirect : 0) | DW_EH_PE_absptr) > > Did you forgot to commit this change (or lost it during a rebase)? > > Oh,sorry I forgot to commit to upstream.
diff --git a/htdocs/gcc-13/changes.html b/htdocs/gcc-13/changes.html index 57bd8724..60399e4e 100644 --- a/htdocs/gcc-13/changes.html +++ b/htdocs/gcc-13/changes.html @@ -124,6 +124,27 @@ a work-in-progress.</p> <!-- <h3 id="x86">IA-32/x86-64</h3> --> +<h3 id="loongarch">LoongArch</h3> +<ul> + <li>The option <code>-mexplicit-relocs</code> has been added, this indicates + whether the <code>la.*</code> macro instructions will be generated when + loading symbolic addresses. + This feature requires binutils version 2.40 or later. If you want to use the + older version of bintuils, add compiler parameters + <code>-mno-explicit-relocs</code> at compile time. + </li> + <li>The method for calling global functions changed from + <code>la.global + jirl</code> to <code>bl</code> when complied add + <code>-fplt</code>. + </li> + <li>Enable option <code>-fsection-anchors</code> when <code>-O1</code> and + more advanced optimization. + </li> + <li>Changed <code>ASM_PREFERRED_EH_DATA_FORMAT</code> macro definition from + <code>WD_EH_PE_absptr</code> to <code>WD_EH_PE_pcrel | DW_EH_PE_sdata4</code>. + </li> +</ul> + <!-- <h3 id="mips">MIPS</h3> --> <!-- <h3 id="mep">MeP</h3> -->