From patchwork Tue Jan 16 11:06:54 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: mengqinggang X-Patchwork-Id: 188495 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:42cf:b0:101:a8e8:374 with SMTP id q15csp178491dye; Tue, 16 Jan 2024 03:07:20 -0800 (PST) X-Google-Smtp-Source: AGHT+IEvBMfDWldPbrzjN0twvRKAfqzFcOVO8Su8ki61TSbR5IQZ0ivuBmsibkaOFC6Eaojb+EFb X-Received: by 2002:a05:620a:4050:b0:781:a0f5:c94c with SMTP id i16-20020a05620a405000b00781a0f5c94cmr9244765qko.84.1705403240684; Tue, 16 Jan 2024 03:07:20 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1705403240; cv=pass; d=google.com; s=arc-20160816; b=bVxaUGiMBBmc8E9LvJGyeuX8c+gMH92C/hpwSwj7yXMP9R3ZRQ298DOD9GydwdatOt il2tpsqc+4QMJ0SvH2g3gvRrhIGP/exLx/tPMYqGttz6Kxbq+IUqGWngfPS2KVB0XMvH cL/j4RHQPgMmnbvF0Xmt0cjBebbzNQvMapGYwIabpyYNf3NkWZCherfXZTaz1M4LDrPu Cs5YaW/G6HJU7oI6Z0ptef93hEIjmkemyevY82Wgfs49LzZey2029Y8GKnCEu3rBZv4h cW7pOLAfKp3foEXdE+L6fFqr3zX3Lo54sz1UAE+Z2LA2lTiZOTNfwDzlxQN96LjUHAiv hwMg== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :mime-version:message-id:date:subject:cc:to:from:arc-filter :dmarc-filter:delivered-to; bh=l8736hxxMEKvoCSVGVpgXuScIsVid/bZRSP1kGLNi+Y=; fh=IjBrBzj0HafC7UFRTZLmdEImc4JDKXFiCrZAu8bdkFw=; b=pWquc904A4tFIph8aobDXoS36j5rEmZGBGWQeWgQs4Zgdbp5LKOjFEilBDXwCACTbf KOejDO41Z5FkI7FeL4P/IgM7n6tkfMGlQFBC8TVYfdtQzhw9VlOeldHl9I7ZoNQcDfOn sKb+ArgxR6261PZczdaC8riMkIpGzOZ/AkMDjMIntdwgphtpQ4LPhRZ9kDK9xIU6r6Wb KQpCSSl4s7G4Sz3S6hEGlfnn8v1v4+QSoacDWTxUAXm8emyGXvqWPGvXb8aoyv+v+9Ea kwh3HvViV/u2HN3ETVax5uaj+DcRBYRpIfKD8OlZJducqm6yuY2njGWAq94BDnz714RQ vwPg== ARC-Authentication-Results: i=2; mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id da34-20020a05620a362200b007833d16dea2si9316360qkb.488.2024.01.16.03.07.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jan 2024 03:07:20 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; arc=pass (i=1); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org" Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 5FA433857725 for ; Tue, 16 Jan 2024 11:07:20 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail.loongson.cn (mail.loongson.cn [114.242.206.163]) by sourceware.org (Postfix) with ESMTP id A8E223857701 for ; Tue, 16 Jan 2024 11:06:59 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org A8E223857701 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=loongson.cn Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=loongson.cn ARC-Filter: OpenARC Filter v1.0.0 sourceware.org A8E223857701 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=114.242.206.163 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705403228; cv=none; b=CURUKBd+iUEdCvQrKuboL4Y58qNAfE+NjAjm0NAQ52ypXZ3fmOQODXz/Sbk/2nUT6QEU/16aPtNszlOfWHSmpHPRNWlW91yAO80a4IOBRWFp1wNfjwCDfn7mw0gN76mtTKrMoeAe+43ntdKRYIk6lq/9nP0LIlnV1KuJ3wy2LTc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705403228; c=relaxed/simple; bh=rdLMF7mfSIJLmICwei2OsEa6gSHwZIb7XNXfgvynBp4=; h=From:To:Subject:Date:Message-Id:MIME-Version; b=bL/ryAXzYA0udwy5TF7orPDiTTGquZLt5Ec+7QTflomYmj7U3eiamTn69GDB9AydY0NW4K6iFSd3ur9TjglFYhkmvG2TiF3L+OYWhKBofnjGXHAURUEInaaihDp/eM/9AmTrUS+xsWg1vJor2ncdac9acuQnIZqM2CnPgpNA0E4= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from loongson.cn (unknown [10.2.6.5]) by gateway (Coremail) with SMTP id _____8BxuvBQY6Zl5asAAA--.3429S3; Tue, 16 Jan 2024 19:06:57 +0800 (CST) Received: from 5.5.5 (unknown [10.2.6.5]) by localhost.localdomain (Coremail) with SMTP id AQAAf8AxTs1PY6ZllucDAA--.18067S2; Tue, 16 Jan 2024 19:06:55 +0800 (CST) From: mengqinggang To: binutils@sourceware.org Cc: xuchenghua@loongson.cn, chenglulu@loongson.cn, liuzhensong@loongson.cn, cailulu@loongson.cn, xry111@xry111.site, i.swmail@xen0n.name, maskray@google.com, luweining@loongson.cn, wanglei@loongson.cn, hejinyang@loongson.cn, mengqinggang Subject: [PATCH] LoongArch: Do not emit R_LARCH_RELAX for two register macros Date: Tue, 16 Jan 2024 19:06:54 +0800 Message-Id: <20240116110654.2411769-1-mengqinggang@loongson.cn> X-Mailer: git-send-email 2.39.3 MIME-Version: 1.0 X-CM-TRANSID: AQAAf8AxTs1PY6ZllucDAA--.18067S2 X-CM-SenderInfo: 5phqw15lqjwttqj6z05rqj20fqof0/ X-Coremail-Antispam: 1Uk129KBj9fXoWfWr1rWF4kWr47GryUGrykJFc_yoW5XFWxZo WUAasYv3Z3Ka97t3y7JF1UX3WUZFyUGF10kr9xtw1UKw17Kw4Ygr4avr4Syw4xGrWUX3Z0 gFy5KrWDG34rKr1Dl-sFpf9Il3svdjkaLaAFLSUrUUUU1b8apTn2vfkv8UJUUUU8wcxFpf 9Il3svdxBIdaVrn0xqx4xG64xvF2IEw4CE5I8CrVC2j2Jv73VFW2AGmfu7bjvjm3AaLaJ3 UjIYCTnIWjp_UUUYy7kC6x804xWl14x267AKxVWUJVW8JwAFc2x0x2IEx4CE42xK8VAvwI 8IcIk0rVWrJVCq3wAFIxvE14AKwVWUJVWUGwA2ocxC64kIII0Yj41l84x0c7CEw4AK67xG Y2AK021l84ACjcxK6xIIjxv20xvE14v26r1I6r4UM28EF7xvwVC0I7IYx2IY6xkF7I0E14 v26r1j6r4UM28EF7xvwVC2z280aVAFwI0_Gr1j6F4UJwA2z4x0Y4vEx4A2jsIEc7CjxVAF wI0_Gr1j6F4UJwAaw2AFwI0_Jrv_JF1le2I262IYc4CY6c8Ij28IcVAaY2xG8wAqjxCEc2 xF0cIa020Ex4CE44I27wAqx4xG64xvF2IEw4CE5I8CrVC2j2WlYx0E2Ix0cI8IcVAFwI0_ Jrv_JF1lYx0Ex4A2jsIE14v26r1j6r4UMcvjeVCFs4IE7xkEbVWUJVW8JwACjcxG0xvY0x 0EwIxGrwCF04k20xvY0x0EwIxGrwCFx2IqxVCFs4IE7xkEbVWUJVW8JwCFI7km07C267AK xVWUXVWUAwC20s026c02F40E14v26r1j6r18MI8I3I0E7480Y4vE14v26r106r1rMI8E67 AF67kF1VAFwI0_Jw0_GFylIxkGc2Ij64vIr41lIxAIcVC0I7IYx2IY67AKxVWUJVWUCwCI 42IY6xIIjxv20xvEc7CjxVAFwI0_Jr0_Gr1lIxAIcVCF04k26cxKx2IYs7xG6r1j6r1xMI IF0xvEx4A2jsIE14v26r4j6F4UMIIF0xvEx4A2jsIEc7CjxVAFwI0_Gr0_Gr1UYxBIdaVF xhVjvjDU0xZFpf9x07jjwZcUUUUU= X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, GIT_PATCH_0, KAM_DMARC_STATUS, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1788244908729588356 X-GMAIL-MSGID: 1788244908729588356 For two register macros (e.g. la.local $t0, $t1, symbol) used in extreme code model, do not emit R_LARCH_RELAX relocations. --- gas/config/tc-loongarch.c | 45 ++- .../gas/loongarch/macro_op_extreme_pc.d | 151 ++++--- .../gas/loongarch/tlsdesc_large_pc.d | 58 ++- ld/testsuite/ld-loongarch-elf/macro_op.d | 376 +++++++++--------- 4 files changed, 311 insertions(+), 319 deletions(-) diff --git a/gas/config/tc-loongarch.c b/gas/config/tc-loongarch.c index 5348371fa2c..863ac9cea43 100644 --- a/gas/config/tc-loongarch.c +++ b/gas/config/tc-loongarch.c @@ -71,7 +71,17 @@ struct loongarch_cl_insn long where; /* The relocs associated with the instruction, if any. */ fixS *fixp[MAX_RELOC_NUMBER_A_INSN]; - long macro_id; + /* Represents macros or instructions expanded from macro. + For la.local -> la.pcrel or la.pcrel -> pcalau12i + addi.d, la.pcrel, + pcalau12i and addi.d are expanded from macro. + The first bit represents expanded from one register macro (e.g. + la.local $t0, symbol) and emit R_LARCH_RELAX relocations. + The second bit represents expanded from two registers macro (e.g. + la.local $t0, $t1, symbol) and not emit R_LARCH_RELAX relocations. + + The macros or instructions expanded from macros do not output register + deprecated warning. */ + unsigned int expand_from_macro; }; #ifndef DEFAULT_ARCH @@ -722,7 +732,10 @@ loongarch_args_parser_can_match_arg_helper (char esc_ch1, char esc_ch2, ip->reloc_info[ip->reloc_num].value = const_0; ip->reloc_num++; } - if (LARCH_opts.relax && ip->macro_id + + /* Only one register macros (used in normal code model) + emit R_LARCH_RELAX. */ + if (LARCH_opts.relax && (ip->expand_from_macro & 1) && (BFD_RELOC_LARCH_PCALA_HI20 == reloc_type || BFD_RELOC_LARCH_PCALA_LO12 == reloc_type || BFD_RELOC_LARCH_GOT_PC_HI20 == reloc_type @@ -754,7 +767,9 @@ loongarch_args_parser_can_match_arg_helper (char esc_ch1, char esc_ch2, imm = (intptr_t) str_hash_find (r_deprecated_htab, arg); ip->match_now = 0 < imm; ret = imm - 1; - if (ip->match_now && !ip->macro_id) + /* !ip->expand_from_macro: avoiding duplicate output warnings, + only the first macro output warning. */ + if (ip->match_now && !ip->expand_from_macro) as_warn (_("register alias %s is deprecated, use %s instead"), arg, r_abi_names[ret]); break; @@ -773,7 +788,7 @@ loongarch_args_parser_can_match_arg_helper (char esc_ch1, char esc_ch2, } ip->match_now = 0 < imm; ret = imm - 1; - if (ip->match_now && !ip->macro_id) + if (ip->match_now && !ip->expand_from_macro) break; /* Handle potential usage of deprecated register aliases. */ imm = (intptr_t) str_hash_find (f_deprecated_htab, arg); @@ -1172,7 +1187,7 @@ assember_macro_helper (const char *const args[], void *context_ptr) * assuming 'not starting with space and not ending with space' or pass in * empty c_str. */ static void -loongarch_assemble_INSNs (char *str, struct loongarch_cl_insn *ctx) +loongarch_assemble_INSNs (char *str, unsigned int expand_from_macro) { char *rest; size_t len_str = strlen(str); @@ -1195,7 +1210,7 @@ loongarch_assemble_INSNs (char *str, struct loongarch_cl_insn *ctx) struct loongarch_cl_insn the_one = { 0 }; the_one.name = str; - the_one.macro_id = ctx->macro_id; + the_one.expand_from_macro = expand_from_macro; for (; *str && *str != ' '; str++) ; @@ -1217,29 +1232,37 @@ loongarch_assemble_INSNs (char *str, struct loongarch_cl_insn *ctx) break; append_fixp_and_insn (&the_one); + + /* Expanding macro instructions. */ if (the_one.insn_length == 0 && the_one.insn->macro) { - the_one.macro_id = 1; + unsigned int new_expand_from_macro = 0; + if (2 == the_one.arg_num) + new_expand_from_macro |= 1; + else if (3 == the_one.arg_num) + new_expand_from_macro |= 2; char *c_str = loongarch_expand_macro (the_one.insn->macro, the_one.arg_strs, assember_macro_helper, &the_one, len_str); - loongarch_assemble_INSNs (c_str, &the_one); + /* The first instruction expanded from macro. */ + loongarch_assemble_INSNs (c_str, new_expand_from_macro); free (c_str); } } while (0); + /* The rest instructions expanded from macro, split by semicolon(;), + assembly one by one. */ if (*rest != '\0') - loongarch_assemble_INSNs (rest, ctx); + loongarch_assemble_INSNs (rest, expand_from_macro); } void md_assemble (char *str) { - struct loongarch_cl_insn the_one = { 0 }; - loongarch_assemble_INSNs (str, &the_one); + loongarch_assemble_INSNs (str, 0); } const char * diff --git a/gas/testsuite/gas/loongarch/macro_op_extreme_pc.d b/gas/testsuite/gas/loongarch/macro_op_extreme_pc.d index 8e4b6e6c2b1..68fbb338c36 100644 --- a/gas/testsuite/gas/loongarch/macro_op_extreme_pc.d +++ b/gas/testsuite/gas/loongarch/macro_op_extreme_pc.d @@ -2,87 +2,76 @@ #objdump: -dr #skip: loongarch32-*-* -.*: file format .* +.*:[ ]+file format .* + Disassembly of section .text: -0+ <.L1>: - 0: 1a000004 pcalau12i \$a0, 0 - 0: R_LARCH_PCALA_HI20 .L1 - 0: R_LARCH_RELAX \*ABS\* - 4: 02c00005 li.d \$a1, 0 - 4: R_LARCH_PCALA_LO12 .L1 - 4: R_LARCH_RELAX \*ABS\* - 8: 16000005 lu32i.d \$a1, 0 - 8: R_LARCH_PCALA64_LO20 .L1 - c: 030000a5 lu52i.d \$a1, \$a1, 0 - c: R_LARCH_PCALA64_HI12 .L1 - 10: 00109484 add.d \$a0, \$a0, \$a1 - 14: 1a000004 pcalau12i \$a0, 0 - 14: R_LARCH_PCALA_HI20 .L1 - 14: R_LARCH_RELAX \*ABS\* - 18: 02c00005 li.d \$a1, 0 - 18: R_LARCH_PCALA_LO12 .L1 - 18: R_LARCH_RELAX \*ABS\* - 1c: 16000005 lu32i.d \$a1, 0 - 1c: R_LARCH_PCALA64_LO20 .L1 - 20: 030000a5 lu52i.d \$a1, \$a1, 0 - 20: R_LARCH_PCALA64_HI12 .L1 - 24: 00109484 add.d \$a0, \$a0, \$a1 - 28: 1a000004 pcalau12i \$a0, 0 - 28: R_LARCH_PCALA_HI20 .L1 - 28: R_LARCH_RELAX \*ABS\* - 2c: 02c00005 li.d \$a1, 0 - 2c: R_LARCH_PCALA_LO12 .L1 - 2c: R_LARCH_RELAX \*ABS\* - 30: 16000005 lu32i.d \$a1, 0 - 30: R_LARCH_PCALA64_LO20 .L1 - 34: 030000a5 lu52i.d \$a1, \$a1, 0 - 34: R_LARCH_PCALA64_HI12 .L1 - 38: 00109484 add.d \$a0, \$a0, \$a1 - 3c: 1a000004 pcalau12i \$a0, 0 - 3c: R_LARCH_GOT_PC_HI20 .L1 - 3c: R_LARCH_RELAX \*ABS\* - 40: 02c00005 li.d \$a1, 0 - 40: R_LARCH_GOT_PC_LO12 .L1 - 40: R_LARCH_RELAX \*ABS\* - 44: 16000005 lu32i.d \$a1, 0 - 44: R_LARCH_GOT64_PC_LO20 .L1 - 48: 030000a5 lu52i.d \$a1, \$a1, 0 - 48: R_LARCH_GOT64_PC_HI12 .L1 - 4c: 380c1484 ldx.d \$a0, \$a0, \$a1 - 50: 14000004 lu12i.w \$a0, 0 - 50: R_LARCH_TLS_LE_HI20 TLS1 - 54: 03800084 ori \$a0, \$a0, 0x0 - 54: R_LARCH_TLS_LE_LO12 TLS1 - 58: 1a000004 pcalau12i \$a0, 0 - 58: R_LARCH_TLS_IE_PC_HI20 TLS1 - 5c: 02c00005 li.d \$a1, 0 - 5c: R_LARCH_TLS_IE_PC_LO12 TLS1 - 60: 16000005 lu32i.d \$a1, 0 - 60: R_LARCH_TLS_IE64_PC_LO20 TLS1 - 64: 030000a5 lu52i.d \$a1, \$a1, 0 - 64: R_LARCH_TLS_IE64_PC_HI12 TLS1 - 68: 380c1484 ldx.d \$a0, \$a0, \$a1 - 6c: 1a000004 pcalau12i \$a0, 0 - 6c: R_LARCH_TLS_LD_PC_HI20 TLS1 - 6c: R_LARCH_RELAX \*ABS\* - 70: 02c00005 li.d \$a1, 0 - 70: R_LARCH_GOT_PC_LO12 TLS1 - 70: R_LARCH_RELAX \*ABS\* - 74: 16000005 lu32i.d \$a1, 0 - 74: R_LARCH_GOT64_PC_LO20 TLS1 - 78: 030000a5 lu52i.d \$a1, \$a1, 0 - 78: R_LARCH_GOT64_PC_HI12 TLS1 - 7c: 00109484 add.d \$a0, \$a0, \$a1 - 80: 1a000004 pcalau12i \$a0, 0 - 80: R_LARCH_TLS_GD_PC_HI20 TLS1 - 80: R_LARCH_RELAX \*ABS\* - 84: 02c00005 li.d \$a1, 0 - 84: R_LARCH_GOT_PC_LO12 TLS1 - 84: R_LARCH_RELAX \*ABS\* - 88: 16000005 lu32i.d \$a1, 0 - 88: R_LARCH_GOT64_PC_LO20 TLS1 - 8c: 030000a5 lu52i.d \$a1, \$a1, 0 - 8c: R_LARCH_GOT64_PC_HI12 TLS1 - 90: 00109484 add.d \$a0, \$a0, \$a1 +[ ]*0000000000000000 <.L1>: +[ ]+0:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+0: R_LARCH_PCALA_HI20[ ]+.L1 +[ ]+4:[ ]+02c00005[ ]+li.d[ ]+\$a1, 0 +[ ]+4: R_LARCH_PCALA_LO12[ ]+.L1 +[ ]+8:[ ]+16000005[ ]+lu32i.d[ ]+\$a1, 0 +[ ]+8: R_LARCH_PCALA64_LO20[ ]+.L1 +[ ]+c:[ ]+030000a5[ ]+lu52i.d[ ]+\$a1, \$a1, 0 +[ ]+c: R_LARCH_PCALA64_HI12[ ]+.L1 +[ ]+10:[ ]+00109484[ ]+add.d[ ]+\$a0, \$a0, \$a1 +[ ]+14:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+14: R_LARCH_PCALA_HI20[ ]+.L1 +[ ]+18:[ ]+02c00005[ ]+li.d[ ]+\$a1, 0 +[ ]+18: R_LARCH_PCALA_LO12[ ]+.L1 +[ ]+1c:[ ]+16000005[ ]+lu32i.d[ ]+\$a1, 0 +[ ]+1c: R_LARCH_PCALA64_LO20[ ]+.L1 +[ ]+20:[ ]+030000a5[ ]+lu52i.d[ ]+\$a1, \$a1, 0 +[ ]+20: R_LARCH_PCALA64_HI12[ ]+.L1 +[ ]+24:[ ]+00109484[ ]+add.d[ ]+\$a0, \$a0, \$a1 +[ ]+28:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+28: R_LARCH_PCALA_HI20[ ]+.L1 +[ ]+2c:[ ]+02c00005[ ]+li.d[ ]+\$a1, 0 +[ ]+2c: R_LARCH_PCALA_LO12[ ]+.L1 +[ ]+30:[ ]+16000005[ ]+lu32i.d[ ]+\$a1, 0 +[ ]+30: R_LARCH_PCALA64_LO20[ ]+.L1 +[ ]+34:[ ]+030000a5[ ]+lu52i.d[ ]+\$a1, \$a1, 0 +[ ]+34: R_LARCH_PCALA64_HI12[ ]+.L1 +[ ]+38:[ ]+00109484[ ]+add.d[ ]+\$a0, \$a0, \$a1 +[ ]+3c:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+3c: R_LARCH_GOT_PC_HI20[ ]+.L1 +[ ]+40:[ ]+02c00005[ ]+li.d[ ]+\$a1, 0 +[ ]+40: R_LARCH_GOT_PC_LO12[ ]+.L1 +[ ]+44:[ ]+16000005[ ]+lu32i.d[ ]+\$a1, 0 +[ ]+44: R_LARCH_GOT64_PC_LO20[ ]+.L1 +[ ]+48:[ ]+030000a5[ ]+lu52i.d[ ]+\$a1, \$a1, 0 +[ ]+48: R_LARCH_GOT64_PC_HI12[ ]+.L1 +[ ]+4c:[ ]+380c1484[ ]+ldx.d[ ]+\$a0, \$a0, \$a1 +[ ]+50:[ ]+14000004[ ]+lu12i.w[ ]+\$a0, 0 +[ ]+50: R_LARCH_TLS_LE_HI20[ ]+TLS1 +[ ]+54:[ ]+03800084[ ]+ori[ ]+\$a0, \$a0, 0x0 +[ ]+54: R_LARCH_TLS_LE_LO12[ ]+TLS1 +[ ]+58:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+58: R_LARCH_TLS_IE_PC_HI20[ ]+TLS1 +[ ]+5c:[ ]+02c00005[ ]+li.d[ ]+\$a1, 0 +[ ]+5c: R_LARCH_TLS_IE_PC_LO12[ ]+TLS1 +[ ]+60:[ ]+16000005[ ]+lu32i.d[ ]+\$a1, 0 +[ ]+60: R_LARCH_TLS_IE64_PC_LO20[ ]+TLS1 +[ ]+64:[ ]+030000a5[ ]+lu52i.d[ ]+\$a1, \$a1, 0 +[ ]+64: R_LARCH_TLS_IE64_PC_HI12[ ]+TLS1 +[ ]+68:[ ]+380c1484[ ]+ldx.d[ ]+\$a0, \$a0, \$a1 +[ ]+6c:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+6c: R_LARCH_TLS_LD_PC_HI20[ ]+TLS1 +[ ]+70:[ ]+02c00005[ ]+li.d[ ]+\$a1, 0 +[ ]+70: R_LARCH_GOT_PC_LO12[ ]+TLS1 +[ ]+74:[ ]+16000005[ ]+lu32i.d[ ]+\$a1, 0 +[ ]+74: R_LARCH_GOT64_PC_LO20[ ]+TLS1 +[ ]+78:[ ]+030000a5[ ]+lu52i.d[ ]+\$a1, \$a1, 0 +[ ]+78: R_LARCH_GOT64_PC_HI12[ ]+TLS1 +[ ]+7c:[ ]+00109484[ ]+add.d[ ]+\$a0, \$a0, \$a1 +[ ]+80:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+80: R_LARCH_TLS_GD_PC_HI20[ ]+TLS1 +[ ]+84:[ ]+02c00005[ ]+li.d[ ]+\$a1, 0 +[ ]+84: R_LARCH_GOT_PC_LO12[ ]+TLS1 +[ ]+88:[ ]+16000005[ ]+lu32i.d[ ]+\$a1, 0 +[ ]+88: R_LARCH_GOT64_PC_LO20[ ]+TLS1 +[ ]+8c:[ ]+030000a5[ ]+lu52i.d[ ]+\$a1, \$a1, 0 +[ ]+8c: R_LARCH_GOT64_PC_HI12[ ]+TLS1 +[ ]+90:[ ]+00109484[ ]+add.d[ ]+\$a0, \$a0, \$a1 diff --git a/gas/testsuite/gas/loongarch/tlsdesc_large_pc.d b/gas/testsuite/gas/loongarch/tlsdesc_large_pc.d index 2b7a466083a..a7fcce31615 100644 --- a/gas/testsuite/gas/loongarch/tlsdesc_large_pc.d +++ b/gas/testsuite/gas/loongarch/tlsdesc_large_pc.d @@ -2,37 +2,35 @@ #objdump: -dr #skip: loongarch32-*-* -.*: file format .* +.*:[ ]+file format .* Disassembly of section .text: -0+ <.*>: - 0: 1a000004 pcalau12i \$a0, 0 - 0: R_LARCH_TLS_DESC_PC_HI20 var - 4: 02c00005 li.d \$a1, 0 - 4: R_LARCH_TLS_DESC_PC_LO12 var - 8: 16000005 lu32i.d \$a1, 0 - 8: R_LARCH_TLS_DESC64_PC_LO20 var - c: 030000a5 lu52i.d \$a1, \$a1, 0 - c: R_LARCH_TLS_DESC64_PC_HI12 var - 10: 00109484 add.d \$a0, \$a0, \$a1 - 14: 28c00081 ld.d \$ra, \$a0, 0 - 14: R_LARCH_TLS_DESC_LD var - 18: 4c000021 jirl \$ra, \$ra, 0 - 18: R_LARCH_TLS_DESC_CALL var - 1c: 1a000004 pcalau12i \$a0, 0 - 1c: R_LARCH_TLS_DESC_PC_HI20 var - 1c: R_LARCH_RELAX \*ABS\* - 20: 02c00001 li.d \$ra, 0 - 20: R_LARCH_TLS_DESC_PC_LO12 var - 20: R_LARCH_RELAX \*ABS\* - 24: 16000001 lu32i.d \$ra, 0 - 24: R_LARCH_TLS_DESC64_PC_LO20 var - 28: 03000021 lu52i.d \$ra, \$ra, 0 - 28: R_LARCH_TLS_DESC64_PC_HI12 var - 2c: 00108484 add.d \$a0, \$a0, \$ra - 30: 28c00081 ld.d \$ra, \$a0, 0 - 30: R_LARCH_TLS_DESC_LD var - 34: 4c000021 jirl \$ra, \$ra, 0 - 34: R_LARCH_TLS_DESC_CALL var +[ ]*0000000000000000 <.text>: +[ ]+0:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+0: R_LARCH_TLS_DESC_PC_HI20[ ]+var +[ ]+4:[ ]+02c00005[ ]+li.d[ ]+\$a1, 0 +[ ]+4: R_LARCH_TLS_DESC_PC_LO12[ ]+var +[ ]+8:[ ]+16000005[ ]+lu32i.d[ ]+\$a1, 0 +[ ]+8: R_LARCH_TLS_DESC64_PC_LO20[ ]+var +[ ]+c:[ ]+030000a5[ ]+lu52i.d[ ]+\$a1, \$a1, 0 +[ ]+c: R_LARCH_TLS_DESC64_PC_HI12[ ]+var +[ ]+10:[ ]+00109484[ ]+add.d[ ]+\$a0, \$a0, \$a1 +[ ]+14:[ ]+28c00081[ ]+ld.d[ ]+\$ra, \$a0, 0 +[ ]+14: R_LARCH_TLS_DESC_LD[ ]+var +[ ]+18:[ ]+4c000021[ ]+jirl[ ]+\$ra, \$ra, 0 +[ ]+18: R_LARCH_TLS_DESC_CALL[ ]+var +[ ]+1c:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+1c: R_LARCH_TLS_DESC_PC_HI20[ ]+var +[ ]+20:[ ]+02c00001[ ]+li.d[ ]+\$ra, 0 +[ ]+20: R_LARCH_TLS_DESC_PC_LO12[ ]+var +[ ]+24:[ ]+16000001[ ]+lu32i.d[ ]+\$ra, 0 +[ ]+24: R_LARCH_TLS_DESC64_PC_LO20[ ]+var +[ ]+28:[ ]+03000021[ ]+lu52i.d[ ]+\$ra, \$ra, 0 +[ ]+28: R_LARCH_TLS_DESC64_PC_HI12[ ]+var +[ ]+2c:[ ]+00108484[ ]+add.d[ ]+\$a0, \$a0, \$ra +[ ]+30:[ ]+28c00081[ ]+ld.d[ ]+\$ra, \$a0, 0 +[ ]+30: R_LARCH_TLS_DESC_LD[ ]+var +[ ]+34:[ ]+4c000021[ ]+jirl[ ]+\$ra, \$ra, 0 +[ ]+34: R_LARCH_TLS_DESC_CALL[ ]+var diff --git a/ld/testsuite/ld-loongarch-elf/macro_op.d b/ld/testsuite/ld-loongarch-elf/macro_op.d index f0d87c03802..c9493918a93 100644 --- a/ld/testsuite/ld-loongarch-elf/macro_op.d +++ b/ld/testsuite/ld-loongarch-elf/macro_op.d @@ -2,204 +2,186 @@ #objdump: -dr #skip: loongarch32-*-* -.*: file format .* +.*:[ ]+file format .* Disassembly of section .text: -0+ <.L1>: - 0: 00150004 move \$a0, \$zero - 4: 02bffc04 li.w \$a0, -1 - 8: 00150004 move \$a0, \$zero - c: 02bffc04 li.w \$a0, -1 - 10: 1a000004 pcalau12i \$a0, 0 - 10: R_LARCH_GOT_PC_HI20 .L1 - 10: R_LARCH_RELAX \*ABS\* - 14: 28c00084 ld.d \$a0, \$a0, 0 - 14: R_LARCH_GOT_PC_LO12 .L1 - 14: R_LARCH_RELAX \*ABS\* - 18: 1a000004 pcalau12i \$a0, 0 - 18: R_LARCH_GOT_PC_HI20 .L1 - 18: R_LARCH_RELAX \*ABS\* - 1c: 28c00084 ld.d \$a0, \$a0, 0 - 1c: R_LARCH_GOT_PC_LO12 .L1 - 1c: R_LARCH_RELAX \*ABS\* - 20: 1a000004 pcalau12i \$a0, 0 - 20: R_LARCH_GOT_PC_HI20 .L1 - 20: R_LARCH_RELAX \*ABS\* - 24: 02c00005 li.d \$a1, 0 - 24: R_LARCH_GOT_PC_LO12 .L1 - 24: R_LARCH_RELAX \*ABS\* - 28: 16000005 lu32i.d \$a1, 0 - 28: R_LARCH_GOT64_PC_LO20 .L1 - 2c: 030000a5 lu52i.d \$a1, \$a1, 0 - 2c: R_LARCH_GOT64_PC_HI12 .L1 - 30: 380c1484 ldx.d \$a0, \$a0, \$a1 - 34: 1a000004 pcalau12i \$a0, 0 - 34: R_LARCH_GOT_PC_HI20 .L1 - 34: R_LARCH_RELAX \*ABS\* - 38: 28c00084 ld.d \$a0, \$a0, 0 - 38: R_LARCH_GOT_PC_LO12 .L1 - 38: R_LARCH_RELAX \*ABS\* - 3c: 1a000004 pcalau12i \$a0, 0 - 3c: R_LARCH_GOT_PC_HI20 .L1 - 3c: R_LARCH_RELAX \*ABS\* - 40: 02c00005 li.d \$a1, 0 - 40: R_LARCH_GOT_PC_LO12 .L1 - 40: R_LARCH_RELAX \*ABS\* - 44: 16000005 lu32i.d \$a1, 0 - 44: R_LARCH_GOT64_PC_LO20 .L1 - 48: 030000a5 lu52i.d \$a1, \$a1, 0 - 48: R_LARCH_GOT64_PC_HI12 .L1 - 4c: 380c1484 ldx.d \$a0, \$a0, \$a1 - 50: 1a000004 pcalau12i \$a0, 0 - 50: R_LARCH_GOT_PC_HI20 .L1 - 50: R_LARCH_RELAX \*ABS\* - 54: 28c00084 ld.d \$a0, \$a0, 0 - 54: R_LARCH_GOT_PC_LO12 .L1 - 54: R_LARCH_RELAX \*ABS\* - 58: 1a000004 pcalau12i \$a0, 0 - 58: R_LARCH_GOT_PC_HI20 .L1 - 58: R_LARCH_RELAX \*ABS\* - 5c: 02c00005 li.d \$a1, 0 - 5c: R_LARCH_GOT_PC_LO12 .L1 - 5c: R_LARCH_RELAX \*ABS\* - 60: 16000005 lu32i.d \$a1, 0 - 60: R_LARCH_GOT64_PC_LO20 .L1 - 64: 030000a5 lu52i.d \$a1, \$a1, 0 - 64: R_LARCH_GOT64_PC_HI12 .L1 - 68: 380c1484 ldx.d \$a0, \$a0, \$a1 - 6c: 1a000004 pcalau12i \$a0, 0 - 6c: R_LARCH_PCALA_HI20 .L1 - 6c: R_LARCH_RELAX \*ABS\* - 70: 02c00084 addi.d \$a0, \$a0, 0 - 70: R_LARCH_PCALA_LO12 .L1 - 70: R_LARCH_RELAX \*ABS\* - 74: 1a000004 pcalau12i \$a0, 0 - 74: R_LARCH_PCALA_HI20 .L1 - 74: R_LARCH_RELAX \*ABS\* - 78: 02c00005 li.d \$a1, 0 - 78: R_LARCH_PCALA_LO12 .L1 - 78: R_LARCH_RELAX \*ABS\* - 7c: 16000005 lu32i.d \$a1, 0 - 7c: R_LARCH_PCALA64_LO20 .L1 - 80: 030000a5 lu52i.d \$a1, \$a1, 0 - 80: R_LARCH_PCALA64_HI12 .L1 - 84: 00109484 add.d \$a0, \$a0, \$a1 - 88: 1a000004 pcalau12i \$a0, 0 - 88: R_LARCH_PCALA_HI20 .L1 - 88: R_LARCH_RELAX \*ABS\* - 8c: 02c00084 addi.d \$a0, \$a0, 0 - 8c: R_LARCH_PCALA_LO12 .L1 - 8c: R_LARCH_RELAX \*ABS\* - 90: 1a000004 pcalau12i \$a0, 0 - 90: R_LARCH_PCALA_HI20 .L1 - 90: R_LARCH_RELAX \*ABS\* - 94: 02c00005 li.d \$a1, 0 - 94: R_LARCH_PCALA_LO12 .L1 - 94: R_LARCH_RELAX \*ABS\* - 98: 16000005 lu32i.d \$a1, 0 - 98: R_LARCH_PCALA64_LO20 .L1 - 9c: 030000a5 lu52i.d \$a1, \$a1, 0 - 9c: R_LARCH_PCALA64_HI12 .L1 - a0: 00109484 add.d \$a0, \$a0, \$a1 - a4: 14000004 lu12i.w \$a0, 0 - a4: R_LARCH_MARK_LA \*ABS\* - a4: R_LARCH_ABS_HI20 .L1 - a8: 03800084 ori \$a0, \$a0, 0x0 - a8: R_LARCH_ABS_LO12 .L1 - ac: 16000004 lu32i.d \$a0, 0 - ac: R_LARCH_ABS64_LO20 .L1 - b0: 03000084 lu52i.d \$a0, \$a0, 0 - b0: R_LARCH_ABS64_HI12 .L1 - b4: 1a000004 pcalau12i \$a0, 0 - b4: R_LARCH_PCALA_HI20 .L1 - b4: R_LARCH_RELAX \*ABS\* - b8: 02c00084 addi.d \$a0, \$a0, 0 - b8: R_LARCH_PCALA_LO12 .L1 - b8: R_LARCH_RELAX \*ABS\* - bc: 1a000004 pcalau12i \$a0, 0 - bc: R_LARCH_PCALA_HI20 .L1 - bc: R_LARCH_RELAX \*ABS\* - c0: 02c00084 addi.d \$a0, \$a0, 0 - c0: R_LARCH_PCALA_LO12 .L1 - c0: R_LARCH_RELAX \*ABS\* - c4: 1a000004 pcalau12i \$a0, 0 - c4: R_LARCH_PCALA_HI20 .L1 - c4: R_LARCH_RELAX \*ABS\* - c8: 02c00005 li.d \$a1, 0 - c8: R_LARCH_PCALA_LO12 .L1 - c8: R_LARCH_RELAX \*ABS\* - cc: 16000005 lu32i.d \$a1, 0 - cc: R_LARCH_PCALA64_LO20 .L1 - d0: 030000a5 lu52i.d \$a1, \$a1, 0 - d0: R_LARCH_PCALA64_HI12 .L1 - d4: 00109484 add.d \$a0, \$a0, \$a1 - d8: 1a000004 pcalau12i \$a0, 0 - d8: R_LARCH_GOT_PC_HI20 .L1 - d8: R_LARCH_RELAX \*ABS\* - dc: 28c00084 ld.d \$a0, \$a0, 0 - dc: R_LARCH_GOT_PC_LO12 .L1 - dc: R_LARCH_RELAX \*ABS\* - e0: 1a000004 pcalau12i \$a0, 0 - e0: R_LARCH_GOT_PC_HI20 .L1 - e0: R_LARCH_RELAX \*ABS\* - e4: 02c00005 li.d \$a1, 0 - e4: R_LARCH_GOT_PC_LO12 .L1 - e4: R_LARCH_RELAX \*ABS\* - e8: 16000005 lu32i.d \$a1, 0 - e8: R_LARCH_GOT64_PC_LO20 .L1 - ec: 030000a5 lu52i.d \$a1, \$a1, 0 - ec: R_LARCH_GOT64_PC_HI12 .L1 - f0: 380c1484 ldx.d \$a0, \$a0, \$a1 - f4: 14000004 lu12i.w \$a0, 0 - f4: R_LARCH_TLS_LE_HI20 TLS1 - f8: 03800084 ori \$a0, \$a0, 0x0 - f8: R_LARCH_TLS_LE_LO12 TLS1 - fc: 1a000004 pcalau12i \$a0, 0 - fc: R_LARCH_TLS_IE_PC_HI20 TLS1 - 100: 28c00084 ld.d \$a0, \$a0, 0 - 100: R_LARCH_TLS_IE_PC_LO12 TLS1 - 104: 1a000004 pcalau12i \$a0, 0 - 104: R_LARCH_TLS_IE_PC_HI20 TLS1 - 108: 02c00005 li.d \$a1, 0 - 108: R_LARCH_TLS_IE_PC_LO12 TLS1 - 10c: 16000005 lu32i.d \$a1, 0 - 10c: R_LARCH_TLS_IE64_PC_LO20 TLS1 - 110: 030000a5 lu52i.d \$a1, \$a1, 0 - 110: R_LARCH_TLS_IE64_PC_HI12 TLS1 - 114: 380c1484 ldx.d \$a0, \$a0, \$a1 - 118: 1a000004 pcalau12i \$a0, 0 - 118: R_LARCH_TLS_LD_PC_HI20 TLS1 - 118: R_LARCH_RELAX \*ABS\* - 11c: 02c00084 addi.d \$a0, \$a0, 0 - 11c: R_LARCH_GOT_PC_LO12 TLS1 - 11c: R_LARCH_RELAX \*ABS\* - 120: 1a000004 pcalau12i \$a0, 0 - 120: R_LARCH_TLS_LD_PC_HI20 TLS1 - 120: R_LARCH_RELAX \*ABS\* - 124: 02c00005 li.d \$a1, 0 - 124: R_LARCH_GOT_PC_LO12 TLS1 - 124: R_LARCH_RELAX \*ABS\* - 128: 16000005 lu32i.d \$a1, 0 - 128: R_LARCH_GOT64_PC_LO20 TLS1 - 12c: 030000a5 lu52i.d \$a1, \$a1, 0 - 12c: R_LARCH_GOT64_PC_HI12 TLS1 - 130: 00109484 add.d \$a0, \$a0, \$a1 - 134: 1a000004 pcalau12i \$a0, 0 - 134: R_LARCH_TLS_GD_PC_HI20 TLS1 - 134: R_LARCH_RELAX \*ABS\* - 138: 02c00084 addi.d \$a0, \$a0, 0 - 138: R_LARCH_GOT_PC_LO12 TLS1 - 138: R_LARCH_RELAX \*ABS\* - 13c: 1a000004 pcalau12i \$a0, 0 - 13c: R_LARCH_TLS_GD_PC_HI20 TLS1 - 13c: R_LARCH_RELAX \*ABS\* - 140: 02c00005 li.d \$a1, 0 - 140: R_LARCH_GOT_PC_LO12 TLS1 - 140: R_LARCH_RELAX \*ABS\* - 144: 16000005 lu32i.d \$a1, 0 - 144: R_LARCH_GOT64_PC_LO20 TLS1 - 148: 030000a5 lu52i.d \$a1, \$a1, 0 - 148: R_LARCH_GOT64_PC_HI12 TLS1 - 14c: 00109484 add.d \$a0, \$a0, \$a1 +[ ]*0000000000000000 <.L1>: +[ ]+0:[ ]+00150004[ ]+move[ ]+\$a0, \$zero +[ ]+4:[ ]+02bffc04[ ]+li.w[ ]+\$a0, -1 +[ ]+8:[ ]+00150004[ ]+move[ ]+\$a0, \$zero +[ ]+c:[ ]+02bffc04[ ]+li.w[ ]+\$a0, -1 +[ ]+10:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+10: R_LARCH_GOT_PC_HI20[ ]+.L1 +[ ]+10: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+14:[ ]+28c00084[ ]+ld.d[ ]+\$a0, \$a0, 0 +[ ]+14: R_LARCH_GOT_PC_LO12[ ]+.L1 +[ ]+14: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+18:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+18: R_LARCH_GOT_PC_HI20[ ]+.L1 +[ ]+18: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+1c:[ ]+28c00084[ ]+ld.d[ ]+\$a0, \$a0, 0 +[ ]+1c: R_LARCH_GOT_PC_LO12[ ]+.L1 +[ ]+1c: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+20:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+20: R_LARCH_GOT_PC_HI20[ ]+.L1 +[ ]+24:[ ]+02c00005[ ]+li.d[ ]+\$a1, 0 +[ ]+24: R_LARCH_GOT_PC_LO12[ ]+.L1 +[ ]+28:[ ]+16000005[ ]+lu32i.d[ ]+\$a1, 0 +[ ]+28: R_LARCH_GOT64_PC_LO20[ ]+.L1 +[ ]+2c:[ ]+030000a5[ ]+lu52i.d[ ]+\$a1, \$a1, 0 +[ ]+2c: R_LARCH_GOT64_PC_HI12[ ]+.L1 +[ ]+30:[ ]+380c1484[ ]+ldx.d[ ]+\$a0, \$a0, \$a1 +[ ]+34:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+34: R_LARCH_GOT_PC_HI20[ ]+.L1 +[ ]+34: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+38:[ ]+28c00084[ ]+ld.d[ ]+\$a0, \$a0, 0 +[ ]+38: R_LARCH_GOT_PC_LO12[ ]+.L1 +[ ]+38: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+3c:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+3c: R_LARCH_GOT_PC_HI20[ ]+.L1 +[ ]+40:[ ]+02c00005[ ]+li.d[ ]+\$a1, 0 +[ ]+40: R_LARCH_GOT_PC_LO12[ ]+.L1 +[ ]+44:[ ]+16000005[ ]+lu32i.d[ ]+\$a1, 0 +[ ]+44: R_LARCH_GOT64_PC_LO20[ ]+.L1 +[ ]+48:[ ]+030000a5[ ]+lu52i.d[ ]+\$a1, \$a1, 0 +[ ]+48: R_LARCH_GOT64_PC_HI12[ ]+.L1 +[ ]+4c:[ ]+380c1484[ ]+ldx.d[ ]+\$a0, \$a0, \$a1 +[ ]+50:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+50: R_LARCH_GOT_PC_HI20[ ]+.L1 +[ ]+50: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+54:[ ]+28c00084[ ]+ld.d[ ]+\$a0, \$a0, 0 +[ ]+54: R_LARCH_GOT_PC_LO12[ ]+.L1 +[ ]+54: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+58:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+58: R_LARCH_GOT_PC_HI20[ ]+.L1 +[ ]+5c:[ ]+02c00005[ ]+li.d[ ]+\$a1, 0 +[ ]+5c: R_LARCH_GOT_PC_LO12[ ]+.L1 +[ ]+60:[ ]+16000005[ ]+lu32i.d[ ]+\$a1, 0 +[ ]+60: R_LARCH_GOT64_PC_LO20[ ]+.L1 +[ ]+64:[ ]+030000a5[ ]+lu52i.d[ ]+\$a1, \$a1, 0 +[ ]+64: R_LARCH_GOT64_PC_HI12[ ]+.L1 +[ ]+68:[ ]+380c1484[ ]+ldx.d[ ]+\$a0, \$a0, \$a1 +[ ]+6c:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+6c: R_LARCH_PCALA_HI20[ ]+.L1 +[ ]+6c: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+70:[ ]+02c00084[ ]+addi.d[ ]+\$a0, \$a0, 0 +[ ]+70: R_LARCH_PCALA_LO12[ ]+.L1 +[ ]+70: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+74:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+74: R_LARCH_PCALA_HI20[ ]+.L1 +[ ]+78:[ ]+02c00005[ ]+li.d[ ]+\$a1, 0 +[ ]+78: R_LARCH_PCALA_LO12[ ]+.L1 +[ ]+7c:[ ]+16000005[ ]+lu32i.d[ ]+\$a1, 0 +[ ]+7c: R_LARCH_PCALA64_LO20[ ]+.L1 +[ ]+80:[ ]+030000a5[ ]+lu52i.d[ ]+\$a1, \$a1, 0 +[ ]+80: R_LARCH_PCALA64_HI12[ ]+.L1 +[ ]+84:[ ]+00109484[ ]+add.d[ ]+\$a0, \$a0, \$a1 +[ ]+88:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+88: R_LARCH_PCALA_HI20[ ]+.L1 +[ ]+88: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+8c:[ ]+02c00084[ ]+addi.d[ ]+\$a0, \$a0, 0 +[ ]+8c: R_LARCH_PCALA_LO12[ ]+.L1 +[ ]+8c: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+90:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+90: R_LARCH_PCALA_HI20[ ]+.L1 +[ ]+94:[ ]+02c00005[ ]+li.d[ ]+\$a1, 0 +[ ]+94: R_LARCH_PCALA_LO12[ ]+.L1 +[ ]+98:[ ]+16000005[ ]+lu32i.d[ ]+\$a1, 0 +[ ]+98: R_LARCH_PCALA64_LO20[ ]+.L1 +[ ]+9c:[ ]+030000a5[ ]+lu52i.d[ ]+\$a1, \$a1, 0 +[ ]+9c: R_LARCH_PCALA64_HI12[ ]+.L1 +[ ]+a0:[ ]+00109484[ ]+add.d[ ]+\$a0, \$a0, \$a1 +[ ]+a4:[ ]+14000004[ ]+lu12i.w[ ]+\$a0, 0 +[ ]+a4: R_LARCH_MARK_LA[ ]+\*ABS\* +[ ]+a4: R_LARCH_ABS_HI20[ ]+.L1 +[ ]+a8:[ ]+03800084[ ]+ori[ ]+\$a0, \$a0, 0x0 +[ ]+a8: R_LARCH_ABS_LO12[ ]+.L1 +[ ]+ac:[ ]+16000004[ ]+lu32i.d[ ]+\$a0, 0 +[ ]+ac: R_LARCH_ABS64_LO20[ ]+.L1 +[ ]+b0:[ ]+03000084[ ]+lu52i.d[ ]+\$a0, \$a0, 0 +[ ]+b0: R_LARCH_ABS64_HI12[ ]+.L1 +[ ]+b4:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+b4: R_LARCH_PCALA_HI20[ ]+.L1 +[ ]+b4: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+b8:[ ]+02c00084[ ]+addi.d[ ]+\$a0, \$a0, 0 +[ ]+b8: R_LARCH_PCALA_LO12[ ]+.L1 +[ ]+b8: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+bc:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+bc: R_LARCH_PCALA_HI20[ ]+.L1 +[ ]+bc: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+c0:[ ]+02c00084[ ]+addi.d[ ]+\$a0, \$a0, 0 +[ ]+c0: R_LARCH_PCALA_LO12[ ]+.L1 +[ ]+c0: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+c4:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+c4: R_LARCH_PCALA_HI20[ ]+.L1 +[ ]+c8:[ ]+02c00005[ ]+li.d[ ]+\$a1, 0 +[ ]+c8: R_LARCH_PCALA_LO12[ ]+.L1 +[ ]+cc:[ ]+16000005[ ]+lu32i.d[ ]+\$a1, 0 +[ ]+cc: R_LARCH_PCALA64_LO20[ ]+.L1 +[ ]+d0:[ ]+030000a5[ ]+lu52i.d[ ]+\$a1, \$a1, 0 +[ ]+d0: R_LARCH_PCALA64_HI12[ ]+.L1 +[ ]+d4:[ ]+00109484[ ]+add.d[ ]+\$a0, \$a0, \$a1 +[ ]+d8:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+d8: R_LARCH_GOT_PC_HI20[ ]+.L1 +[ ]+d8: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+dc:[ ]+28c00084[ ]+ld.d[ ]+\$a0, \$a0, 0 +[ ]+dc: R_LARCH_GOT_PC_LO12[ ]+.L1 +[ ]+dc: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+e0:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+e0: R_LARCH_GOT_PC_HI20[ ]+.L1 +[ ]+e4:[ ]+02c00005[ ]+li.d[ ]+\$a1, 0 +[ ]+e4: R_LARCH_GOT_PC_LO12[ ]+.L1 +[ ]+e8:[ ]+16000005[ ]+lu32i.d[ ]+\$a1, 0 +[ ]+e8: R_LARCH_GOT64_PC_LO20[ ]+.L1 +[ ]+ec:[ ]+030000a5[ ]+lu52i.d[ ]+\$a1, \$a1, 0 +[ ]+ec: R_LARCH_GOT64_PC_HI12[ ]+.L1 +[ ]+f0:[ ]+380c1484[ ]+ldx.d[ ]+\$a0, \$a0, \$a1 +[ ]+f4:[ ]+14000004[ ]+lu12i.w[ ]+\$a0, 0 +[ ]+f4: R_LARCH_TLS_LE_HI20[ ]+TLS1 +[ ]+f8:[ ]+03800084[ ]+ori[ ]+\$a0, \$a0, 0x0 +[ ]+f8: R_LARCH_TLS_LE_LO12[ ]+TLS1 +[ ]+fc:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+fc: R_LARCH_TLS_IE_PC_HI20[ ]+TLS1 +[ ]+100:[ ]+28c00084[ ]+ld.d[ ]+\$a0, \$a0, 0 +[ ]+100: R_LARCH_TLS_IE_PC_LO12[ ]+TLS1 +[ ]+104:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+104: R_LARCH_TLS_IE_PC_HI20[ ]+TLS1 +[ ]+108:[ ]+02c00005[ ]+li.d[ ]+\$a1, 0 +[ ]+108: R_LARCH_TLS_IE_PC_LO12[ ]+TLS1 +[ ]+10c:[ ]+16000005[ ]+lu32i.d[ ]+\$a1, 0 +[ ]+10c: R_LARCH_TLS_IE64_PC_LO20[ ]+TLS1 +[ ]+110:[ ]+030000a5[ ]+lu52i.d[ ]+\$a1, \$a1, 0 +[ ]+110: R_LARCH_TLS_IE64_PC_HI12[ ]+TLS1 +[ ]+114:[ ]+380c1484[ ]+ldx.d[ ]+\$a0, \$a0, \$a1 +[ ]+118:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+118: R_LARCH_TLS_LD_PC_HI20[ ]+TLS1 +[ ]+118: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+11c:[ ]+02c00084[ ]+addi.d[ ]+\$a0, \$a0, 0 +[ ]+11c: R_LARCH_GOT_PC_LO12[ ]+TLS1 +[ ]+11c: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+120:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+120: R_LARCH_TLS_LD_PC_HI20[ ]+TLS1 +[ ]+124:[ ]+02c00005[ ]+li.d[ ]+\$a1, 0 +[ ]+124: R_LARCH_GOT_PC_LO12[ ]+TLS1 +[ ]+128:[ ]+16000005[ ]+lu32i.d[ ]+\$a1, 0 +[ ]+128: R_LARCH_GOT64_PC_LO20[ ]+TLS1 +[ ]+12c:[ ]+030000a5[ ]+lu52i.d[ ]+\$a1, \$a1, 0 +[ ]+12c: R_LARCH_GOT64_PC_HI12[ ]+TLS1 +[ ]+130:[ ]+00109484[ ]+add.d[ ]+\$a0, \$a0, \$a1 +[ ]+134:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+134: R_LARCH_TLS_GD_PC_HI20[ ]+TLS1 +[ ]+134: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+138:[ ]+02c00084[ ]+addi.d[ ]+\$a0, \$a0, 0 +[ ]+138: R_LARCH_GOT_PC_LO12[ ]+TLS1 +[ ]+138: R_LARCH_RELAX[ ]+\*ABS\* +[ ]+13c:[ ]+1a000004[ ]+pcalau12i[ ]+\$a0, 0 +[ ]+13c: R_LARCH_TLS_GD_PC_HI20[ ]+TLS1 +[ ]+140:[ ]+02c00005[ ]+li.d[ ]+\$a1, 0 +[ ]+140: R_LARCH_GOT_PC_LO12[ ]+TLS1 +[ ]+144:[ ]+16000005[ ]+lu32i.d[ ]+\$a1, 0 +[ ]+144: R_LARCH_GOT64_PC_LO20[ ]+TLS1 +[ ]+148:[ ]+030000a5[ ]+lu52i.d[ ]+\$a1, \$a1, 0 +[ ]+148: R_LARCH_GOT64_PC_HI12[ ]+TLS1 +[ ]+14c:[ ]+00109484[ ]+add.d[ ]+\$a0, \$a0, \$a1