static struct htab *cr_htab = NULL;
static struct htab *v_htab = NULL;
static struct htab *x_htab = NULL;
+static struct htab *cfi_r_htab = NULL;
+static struct htab *cfi_f_htab = NULL;
void
loongarch_after_parse_args ()
if (!r_deprecated_htab)
r_deprecated_htab = str_htab_create (),
str_hash_insert (r_deprecated_htab, "", 0, 0);
+ /* Init cfi registers alias. */
+ if (!cfi_r_htab)
+ cfi_r_htab = str_htab_create (), str_hash_insert (cfi_r_htab, "", 0, 0);
r_abi_names = loongarch_r_normal_name;
for (i = 0; i < ARRAY_SIZE (loongarch_r_normal_name); i++)
- str_hash_insert (r_htab, loongarch_r_normal_name[i], (void *) (i + 1), 0);
-
+ {
+ str_hash_insert (r_htab, loongarch_r_normal_name[i],
+ (void *) (i + 1), 0);
+ str_hash_insert (cfi_r_htab, loongarch_r_normal_name[i],
+ (void *) (i + 1), 0);
+ }
/* Init ilp32/lp64 registers alias. */
r_abi_names = loongarch_r_alias;
for (i = 0; i < ARRAY_SIZE (loongarch_r_alias); i++)
- str_hash_insert (r_htab, loongarch_r_alias[i], (void *) (i + 1), 0);
+ {
+ str_hash_insert (r_htab, loongarch_r_alias[i],
+ (void *) (i + 1), 0);
+ str_hash_insert (cfi_r_htab, loongarch_r_alias[i],
+ (void *) (i + 1), 0);
+ }
for (i = 0; i < ARRAY_SIZE (loongarch_r_alias_1); i++)
str_hash_insert (r_htab, loongarch_r_alias_1[i], (void *) (i + 1), 0);
str_hash_insert (r_deprecated_htab, loongarch_r_alias_deprecated[i],
(void *) (i + 1), 0);
+ /* The .cfi directive supports register aliases without the "$" prefix. */
+ for (i = 0; i < ARRAY_SIZE (loongarch_r_cfi_name); i++)
+ {
+ str_hash_insert (cfi_r_htab, loongarch_r_cfi_name[i],
+ (void *)(i + 1), 0);
+ str_hash_insert (cfi_r_htab, loongarch_r_cfi_name_alias[i],
+ (void *)(i + 1), 0);
+ }
+
if (!cr_htab)
cr_htab = str_htab_create (), str_hash_insert (cr_htab, "", 0, 0);
if (!f_deprecated_htab)
f_deprecated_htab = str_htab_create (),
str_hash_insert (f_deprecated_htab, "", 0, 0);
+ if (!cfi_f_htab)
+ cfi_f_htab = str_htab_create (), str_hash_insert (cfi_f_htab, "", 0, 0);
f_abi_names = loongarch_f_normal_name;
for (i = 0; i < ARRAY_SIZE (loongarch_f_normal_name); i++)
- str_hash_insert (f_htab, loongarch_f_normal_name[i], (void *) (i + 1),
- 0);
-
+ {
+ str_hash_insert (f_htab, loongarch_f_normal_name[i],
+ (void *) (i + 1), 0);
+ str_hash_insert (cfi_f_htab, loongarch_f_normal_name[i],
+ (void *) (i + 1), 0);
+ }
/* Init float-ilp32/lp64 registers alias. */
f_abi_names = loongarch_f_alias;
for (i = 0; i < ARRAY_SIZE (loongarch_f_alias); i++)
- str_hash_insert (f_htab, loongarch_f_alias[i],
- (void *) (i + 1), 0);
+ {
+ str_hash_insert (f_htab, loongarch_f_alias[i],
+ (void *) (i + 1), 0);
+ str_hash_insert (cfi_f_htab, loongarch_f_alias[i],
+ (void *) (i + 1), 0);
+ }
for (i = 0; i < ARRAY_SIZE (loongarch_f_alias_deprecated); i++)
str_hash_insert (f_deprecated_htab, loongarch_f_alias_deprecated[i],
(void *) (i + 1), 0);
+ /* The .cfi directive supports register aliases without the "$" prefix. */
+ for (i = 0; i < ARRAY_SIZE (loongarch_f_cfi_name); i++)
+ {
+ str_hash_insert (cfi_f_htab, loongarch_f_cfi_name[i],
+ (void *)(i + 1), 0);
+ str_hash_insert (cfi_f_htab, loongarch_f_cfi_name_alias[i],
+ (void *)(i + 1), 0);
+ }
+
if (!fc_htab)
fc_htab = str_htab_create (), str_hash_insert (fc_htab, "", 0, 0);
cfi_add_CFA_def_cfa_register (3 /* $sp */);
}
+/* Convert REGNAME to a DWARF register number. */
+int
+tc_loongarch_regname_to_dw2regnum (char *regname)
+{
+ int reg;
+
+ /* Look up in the general purpose register table. */
+ if ((reg = (intptr_t) str_hash_find (cfi_r_htab, regname)) > 0)
+ return reg - 1;
+
+ /* Look up in the floating point register table. */
+ if ((reg = (intptr_t) str_hash_find (cfi_f_htab, regname)) > 0)
+ return reg + 31;
+
+ as_bad (_("unknown register `%s`"), regname);
+ return -1;
+}
+
+/* Derived from tc_parse_to_dw2regnum, but excluding the case where
+ the prefix '%'. */
+void
+tc_loongarch_parse_to_dw2regnum (expressionS *exp)
+{
+ SKIP_WHITESPACE ();
+ if (is_name_beginner (*input_line_pointer))
+ {
+ char *name, c;
+
+ c = get_symbol_name (& name);
+
+ exp->X_op = O_constant;
+ exp->X_add_number = tc_loongarch_regname_to_dw2regnum (name);
+
+ restore_line_pointer (c);
+ }
+ else
+ expression_and_evaluate (exp);
+}
+
+
void
loongarch_pre_output_hook (void)
{
subseg_set (seg, subseg);
}
-void
-tc_loongarch_parse_to_dw2regnum (expressionS *exp)
-{
- expression_and_evaluate (exp);
-}
-
void
md_show_usage (FILE *stream)
{
--- /dev/null
+#objdump: --dwarf=frames
+
+.*: file format .*
+
+Contents of the .*:
+
+
+00000000 [a-zA-Z0-9]+ [a-zA-Z0-9]+ CIE
+ Version: .*
+ Augmentation: .*
+ Code alignment factor: .*
+ Data alignment factor: .*
+ Return address column: .*
+ Augmentation data: .*
+#...
+[a-zA-Z0-9]+ [a-zA-Z0-9]+ [a-zA-Z0-9]+ FDE cie=00000000 pc=[a-zA-Z0-9]+\.\.[a-zA-Z0-9]+
+ DW_CFA_advance_loc: 4 to 0000000000000020
+ DW_CFA_offset_extended_sf: r0 \(\$zero\) at cfa\+8
+ DW_CFA_offset_extended_sf: r1 \(\$ra\) at cfa\+16
+ DW_CFA_offset_extended_sf: r2 \(\$tp\) at cfa\+24
+ DW_CFA_offset_extended_sf: r3 \(\$sp\) at cfa\+32
+ DW_CFA_offset_extended_sf: r4 \(\$a0\) at cfa\+40
+ DW_CFA_offset_extended_sf: r5 \(\$a1\) at cfa\+48
+ DW_CFA_offset_extended_sf: r6 \(\$a2\) at cfa\+56
+ DW_CFA_offset_extended_sf: r7 \(\$a3\) at cfa\+64
+ DW_CFA_offset_extended_sf: r8 \(\$a4\) at cfa\+72
+ DW_CFA_offset_extended_sf: r9 \(\$a5\) at cfa\+80
+ DW_CFA_offset_extended_sf: r10 \(\$a6\) at cfa\+88
+ DW_CFA_offset_extended_sf: r11 \(\$a7\) at cfa\+96
+ DW_CFA_offset_extended_sf: r12 \(\$t0\) at cfa\+104
+ DW_CFA_offset_extended_sf: r13 \(\$t1\) at cfa\+112
+ DW_CFA_offset_extended_sf: r14 \(\$t2\) at cfa\+120
+ DW_CFA_offset_extended_sf: r15 \(\$t3\) at cfa\+128
+ DW_CFA_offset_extended_sf: r16 \(\$t4\) at cfa\+136
+ DW_CFA_offset_extended_sf: r17 \(\$t5\) at cfa\+144
+ DW_CFA_offset_extended_sf: r18 \(\$t6\) at cfa\+152
+ DW_CFA_offset_extended_sf: r19 \(\$t7\) at cfa\+160
+ DW_CFA_offset_extended_sf: r20 \(\$t8\) at cfa\+168
+ DW_CFA_offset_extended_sf: r21 \(\$r21\) at cfa\+176
+ DW_CFA_offset_extended_sf: r22 \(\$fp\) at cfa\+184
+ DW_CFA_offset_extended_sf: r23 \(\$s0\) at cfa\+192
+ DW_CFA_offset_extended_sf: r24 \(\$s1\) at cfa\+200
+ DW_CFA_offset_extended_sf: r25 \(\$s2\) at cfa\+208
+ DW_CFA_offset_extended_sf: r26 \(\$s3\) at cfa\+216
+ DW_CFA_offset_extended_sf: r27 \(\$s4\) at cfa\+224
+ DW_CFA_offset_extended_sf: r28 \(\$s5\) at cfa\+232
+ DW_CFA_offset_extended_sf: r29 \(\$s6\) at cfa\+240
+ DW_CFA_offset_extended_sf: r30 \(\$s7\) at cfa\+248
+ DW_CFA_offset_extended_sf: r31 \(\$s8\) at cfa\+256
+ DW_CFA_offset_extended_sf: r0 \(\$zero\) at cfa\+8
+ DW_CFA_offset_extended_sf: r1 \(\$ra\) at cfa\+16
+ DW_CFA_offset_extended_sf: r2 \(\$tp\) at cfa\+24
+ DW_CFA_offset_extended_sf: r3 \(\$sp\) at cfa\+32
+ DW_CFA_offset_extended_sf: r4 \(\$a0\) at cfa\+40
+ DW_CFA_offset_extended_sf: r5 \(\$a1\) at cfa\+48
+ DW_CFA_offset_extended_sf: r6 \(\$a2\) at cfa\+56
+ DW_CFA_offset_extended_sf: r7 \(\$a3\) at cfa\+64
+ DW_CFA_offset_extended_sf: r8 \(\$a4\) at cfa\+72
+ DW_CFA_offset_extended_sf: r9 \(\$a5\) at cfa\+80
+ DW_CFA_offset_extended_sf: r10 \(\$a6\) at cfa\+88
+ DW_CFA_offset_extended_sf: r11 \(\$a7\) at cfa\+96
+ DW_CFA_offset_extended_sf: r12 \(\$t0\) at cfa\+104
+ DW_CFA_offset_extended_sf: r13 \(\$t1\) at cfa\+112
+ DW_CFA_offset_extended_sf: r14 \(\$t2\) at cfa\+120
+ DW_CFA_offset_extended_sf: r15 \(\$t3\) at cfa\+128
+ DW_CFA_offset_extended_sf: r16 \(\$t4\) at cfa\+136
+ DW_CFA_offset_extended_sf: r17 \(\$t5\) at cfa\+144
+ DW_CFA_offset_extended_sf: r18 \(\$t6\) at cfa\+152
+ DW_CFA_offset_extended_sf: r19 \(\$t7\) at cfa\+160
+ DW_CFA_offset_extended_sf: r20 \(\$t8\) at cfa\+168
+ DW_CFA_offset_extended_sf: r21 \(\$r21\) at cfa\+176
+ DW_CFA_offset_extended_sf: r22 \(\$fp\) at cfa\+184
+ DW_CFA_offset_extended_sf: r23 \(\$s0\) at cfa\+192
+ DW_CFA_offset_extended_sf: r24 \(\$s1\) at cfa\+200
+ DW_CFA_offset_extended_sf: r25 \(\$s2\) at cfa\+208
+ DW_CFA_offset_extended_sf: r26 \(\$s3\) at cfa\+216
+ DW_CFA_offset_extended_sf: r27 \(\$s4\) at cfa\+224
+ DW_CFA_offset_extended_sf: r28 \(\$s5\) at cfa\+232
+ DW_CFA_offset_extended_sf: r29 \(\$s6\) at cfa\+240
+ DW_CFA_offset_extended_sf: r30 \(\$s7\) at cfa\+248
+ DW_CFA_offset_extended_sf: r31 \(\$s8\) at cfa\+256
+ DW_CFA_offset_extended_sf: r0 \(\$zero\) at cfa\+8
+ DW_CFA_offset_extended_sf: r1 \(\$ra\) at cfa\+16
+ DW_CFA_offset_extended_sf: r2 \(\$tp\) at cfa\+24
+ DW_CFA_offset_extended_sf: r3 \(\$sp\) at cfa\+32
+ DW_CFA_offset_extended_sf: r4 \(\$a0\) at cfa\+40
+ DW_CFA_offset_extended_sf: r5 \(\$a1\) at cfa\+48
+ DW_CFA_offset_extended_sf: r6 \(\$a2\) at cfa\+56
+ DW_CFA_offset_extended_sf: r7 \(\$a3\) at cfa\+64
+ DW_CFA_offset_extended_sf: r8 \(\$a4\) at cfa\+72
+ DW_CFA_offset_extended_sf: r9 \(\$a5\) at cfa\+80
+ DW_CFA_offset_extended_sf: r10 \(\$a6\) at cfa\+88
+ DW_CFA_offset_extended_sf: r11 \(\$a7\) at cfa\+96
+ DW_CFA_offset_extended_sf: r12 \(\$t0\) at cfa\+104
+ DW_CFA_offset_extended_sf: r13 \(\$t1\) at cfa\+112
+ DW_CFA_offset_extended_sf: r14 \(\$t2\) at cfa\+120
+ DW_CFA_offset_extended_sf: r15 \(\$t3\) at cfa\+128
+ DW_CFA_offset_extended_sf: r16 \(\$t4\) at cfa\+136
+ DW_CFA_offset_extended_sf: r17 \(\$t5\) at cfa\+144
+ DW_CFA_offset_extended_sf: r18 \(\$t6\) at cfa\+152
+ DW_CFA_offset_extended_sf: r19 \(\$t7\) at cfa\+160
+ DW_CFA_offset_extended_sf: r20 \(\$t8\) at cfa\+168
+ DW_CFA_offset_extended_sf: r21 \(\$r21\) at cfa\+176
+ DW_CFA_offset_extended_sf: r22 \(\$fp\) at cfa\+184
+ DW_CFA_offset_extended_sf: r23 \(\$s0\) at cfa\+192
+ DW_CFA_offset_extended_sf: r24 \(\$s1\) at cfa\+200
+ DW_CFA_offset_extended_sf: r25 \(\$s2\) at cfa\+208
+ DW_CFA_offset_extended_sf: r26 \(\$s3\) at cfa\+216
+ DW_CFA_offset_extended_sf: r27 \(\$s4\) at cfa\+224
+ DW_CFA_offset_extended_sf: r28 \(\$s5\) at cfa\+232
+ DW_CFA_offset_extended_sf: r29 \(\$s6\) at cfa\+240
+ DW_CFA_offset_extended_sf: r30 \(\$s7\) at cfa\+248
+ DW_CFA_offset_extended_sf: r31 \(\$s8\) at cfa\+256
+ DW_CFA_offset_extended_sf: r0 \(\$zero\) at cfa\+8
+ DW_CFA_offset_extended_sf: r1 \(\$ra\) at cfa\+16
+ DW_CFA_offset_extended_sf: r2 \(\$tp\) at cfa\+24
+ DW_CFA_offset_extended_sf: r3 \(\$sp\) at cfa\+32
+ DW_CFA_offset_extended_sf: r4 \(\$a0\) at cfa\+40
+ DW_CFA_offset_extended_sf: r5 \(\$a1\) at cfa\+48
+ DW_CFA_offset_extended_sf: r6 \(\$a2\) at cfa\+56
+ DW_CFA_offset_extended_sf: r7 \(\$a3\) at cfa\+64
+ DW_CFA_offset_extended_sf: r8 \(\$a4\) at cfa\+72
+ DW_CFA_offset_extended_sf: r9 \(\$a5\) at cfa\+80
+ DW_CFA_offset_extended_sf: r10 \(\$a6\) at cfa\+88
+ DW_CFA_offset_extended_sf: r11 \(\$a7\) at cfa\+96
+ DW_CFA_offset_extended_sf: r12 \(\$t0\) at cfa\+104
+ DW_CFA_offset_extended_sf: r13 \(\$t1\) at cfa\+112
+ DW_CFA_offset_extended_sf: r14 \(\$t2\) at cfa\+120
+ DW_CFA_offset_extended_sf: r15 \(\$t3\) at cfa\+128
+ DW_CFA_offset_extended_sf: r16 \(\$t4\) at cfa\+136
+ DW_CFA_offset_extended_sf: r17 \(\$t5\) at cfa\+144
+ DW_CFA_offset_extended_sf: r18 \(\$t6\) at cfa\+152
+ DW_CFA_offset_extended_sf: r19 \(\$t7\) at cfa\+160
+ DW_CFA_offset_extended_sf: r20 \(\$t8\) at cfa\+168
+ DW_CFA_offset_extended_sf: r21 \(\$r21\) at cfa\+176
+ DW_CFA_offset_extended_sf: r22 \(\$fp\) at cfa\+184
+ DW_CFA_offset_extended_sf: r23 \(\$s0\) at cfa\+192
+ DW_CFA_offset_extended_sf: r24 \(\$s1\) at cfa\+200
+ DW_CFA_offset_extended_sf: r25 \(\$s2\) at cfa\+208
+ DW_CFA_offset_extended_sf: r26 \(\$s3\) at cfa\+216
+ DW_CFA_offset_extended_sf: r27 \(\$s4\) at cfa\+224
+ DW_CFA_offset_extended_sf: r28 \(\$s5\) at cfa\+232
+ DW_CFA_offset_extended_sf: r29 \(\$s6\) at cfa\+240
+ DW_CFA_offset_extended_sf: r30 \(\$s7\) at cfa\+248
+ DW_CFA_offset_extended_sf: r31 \(\$s8\) at cfa\+256
+ DW_CFA_offset_extended_sf: r0 \(\$zero\) at cfa\+8
+ DW_CFA_offset_extended_sf: r1 \(\$ra\) at cfa\+16
+ DW_CFA_offset_extended_sf: r2 \(\$tp\) at cfa\+24
+ DW_CFA_offset_extended_sf: r3 \(\$sp\) at cfa\+32
+ DW_CFA_offset_extended_sf: r4 \(\$a0\) at cfa\+40
+ DW_CFA_offset_extended_sf: r5 \(\$a1\) at cfa\+48
+ DW_CFA_offset_extended_sf: r6 \(\$a2\) at cfa\+56
+ DW_CFA_offset_extended_sf: r7 \(\$a3\) at cfa\+64
+ DW_CFA_offset_extended_sf: r8 \(\$a4\) at cfa\+72
+ DW_CFA_offset_extended_sf: r9 \(\$a5\) at cfa\+80
+ DW_CFA_offset_extended_sf: r10 \(\$a6\) at cfa\+88
+ DW_CFA_offset_extended_sf: r11 \(\$a7\) at cfa\+96
+ DW_CFA_offset_extended_sf: r12 \(\$t0\) at cfa\+104
+ DW_CFA_offset_extended_sf: r13 \(\$t1\) at cfa\+112
+ DW_CFA_offset_extended_sf: r14 \(\$t2\) at cfa\+120
+ DW_CFA_offset_extended_sf: r15 \(\$t3\) at cfa\+128
+ DW_CFA_offset_extended_sf: r16 \(\$t4\) at cfa\+136
+ DW_CFA_offset_extended_sf: r17 \(\$t5\) at cfa\+144
+ DW_CFA_offset_extended_sf: r18 \(\$t6\) at cfa\+152
+ DW_CFA_offset_extended_sf: r19 \(\$t7\) at cfa\+160
+ DW_CFA_offset_extended_sf: r20 \(\$t8\) at cfa\+168
+ DW_CFA_offset_extended_sf: r21 \(\$r21\) at cfa\+176
+ DW_CFA_offset_extended_sf: r22 \(\$fp\) at cfa\+184
+ DW_CFA_offset_extended_sf: r23 \(\$s0\) at cfa\+192
+ DW_CFA_offset_extended_sf: r24 \(\$s1\) at cfa\+200
+ DW_CFA_offset_extended_sf: r25 \(\$s2\) at cfa\+208
+ DW_CFA_offset_extended_sf: r26 \(\$s3\) at cfa\+216
+ DW_CFA_offset_extended_sf: r27 \(\$s4\) at cfa\+224
+ DW_CFA_offset_extended_sf: r28 \(\$s5\) at cfa\+232
+ DW_CFA_offset_extended_sf: r29 \(\$s6\) at cfa\+240
+ DW_CFA_offset_extended_sf: r30 \(\$s7\) at cfa\+248
+ DW_CFA_offset_extended_sf: r31 \(\$s8\) at cfa\+256
+ DW_CFA_offset_extended_sf: r32 \(\$fa0\) at cfa\+264
+ DW_CFA_offset_extended_sf: r33 \(\$fa1\) at cfa\+272
+ DW_CFA_offset_extended_sf: r34 \(\$fa2\) at cfa\+280
+ DW_CFA_offset_extended_sf: r35 \(\$fa3\) at cfa\+288
+ DW_CFA_offset_extended_sf: r36 \(\$fa4\) at cfa\+296
+ DW_CFA_offset_extended_sf: r37 \(\$fa5\) at cfa\+304
+ DW_CFA_offset_extended_sf: r38 \(\$fa6\) at cfa\+312
+ DW_CFA_offset_extended_sf: r39 \(\$fa7\) at cfa\+320
+ DW_CFA_offset_extended_sf: r40 \(\$ft0\) at cfa\+328
+ DW_CFA_offset_extended_sf: r41 \(\$ft1\) at cfa\+336
+ DW_CFA_offset_extended_sf: r42 \(\$ft2\) at cfa\+344
+ DW_CFA_offset_extended_sf: r43 \(\$ft3\) at cfa\+352
+ DW_CFA_offset_extended_sf: r44 \(\$ft4\) at cfa\+360
+ DW_CFA_offset_extended_sf: r45 \(\$ft5\) at cfa\+368
+ DW_CFA_offset_extended_sf: r46 \(\$ft6\) at cfa\+376
+ DW_CFA_offset_extended_sf: r47 \(\$ft7\) at cfa\+384
+ DW_CFA_offset_extended_sf: r48 \(\$ft8\) at cfa\+392
+ DW_CFA_offset_extended_sf: r49 \(\$ft9\) at cfa\+400
+ DW_CFA_offset_extended_sf: r50 \(\$ft10\) at cfa\+408
+ DW_CFA_offset_extended_sf: r51 \(\$ft11\) at cfa\+416
+ DW_CFA_offset_extended_sf: r52 \(\$ft12\) at cfa\+424
+ DW_CFA_offset_extended_sf: r53 \(\$ft13\) at cfa\+432
+ DW_CFA_offset_extended_sf: r54 \(\$ft14\) at cfa\+440
+ DW_CFA_offset_extended_sf: r55 \(\$ft15\) at cfa\+448
+ DW_CFA_offset_extended_sf: r56 \(\$fs0\) at cfa\+456
+ DW_CFA_offset_extended_sf: r57 \(\$fs1\) at cfa\+464
+ DW_CFA_offset_extended_sf: r58 \(\$fs2\) at cfa\+472
+ DW_CFA_offset_extended_sf: r59 \(\$fs3\) at cfa\+480
+ DW_CFA_offset_extended_sf: r60 \(\$fs4\) at cfa\+488
+ DW_CFA_offset_extended_sf: r61 \(\$fs5\) at cfa\+496
+ DW_CFA_offset_extended_sf: r62 \(\$fs6\) at cfa\+504
+ DW_CFA_offset_extended_sf: r63 \(\$fs7\) at cfa\+512
+ DW_CFA_offset_extended_sf: r32 \(\$fa0\) at cfa\+264
+ DW_CFA_offset_extended_sf: r33 \(\$fa1\) at cfa\+272
+ DW_CFA_offset_extended_sf: r34 \(\$fa2\) at cfa\+280
+ DW_CFA_offset_extended_sf: r35 \(\$fa3\) at cfa\+288
+ DW_CFA_offset_extended_sf: r36 \(\$fa4\) at cfa\+296
+ DW_CFA_offset_extended_sf: r37 \(\$fa5\) at cfa\+304
+ DW_CFA_offset_extended_sf: r38 \(\$fa6\) at cfa\+312
+ DW_CFA_offset_extended_sf: r39 \(\$fa7\) at cfa\+320
+ DW_CFA_offset_extended_sf: r40 \(\$ft0\) at cfa\+328
+ DW_CFA_offset_extended_sf: r41 \(\$ft1\) at cfa\+336
+ DW_CFA_offset_extended_sf: r42 \(\$ft2\) at cfa\+344
+ DW_CFA_offset_extended_sf: r43 \(\$ft3\) at cfa\+352
+ DW_CFA_offset_extended_sf: r44 \(\$ft4\) at cfa\+360
+ DW_CFA_offset_extended_sf: r45 \(\$ft5\) at cfa\+368
+ DW_CFA_offset_extended_sf: r46 \(\$ft6\) at cfa\+376
+ DW_CFA_offset_extended_sf: r47 \(\$ft7\) at cfa\+384
+ DW_CFA_offset_extended_sf: r48 \(\$ft8\) at cfa\+392
+ DW_CFA_offset_extended_sf: r49 \(\$ft9\) at cfa\+400
+ DW_CFA_offset_extended_sf: r50 \(\$ft10\) at cfa\+408
+ DW_CFA_offset_extended_sf: r51 \(\$ft11\) at cfa\+416
+ DW_CFA_offset_extended_sf: r52 \(\$ft12\) at cfa\+424
+ DW_CFA_offset_extended_sf: r53 \(\$ft13\) at cfa\+432
+ DW_CFA_offset_extended_sf: r54 \(\$ft14\) at cfa\+440
+ DW_CFA_offset_extended_sf: r55 \(\$ft15\) at cfa\+448
+ DW_CFA_offset_extended_sf: r56 \(\$fs0\) at cfa\+456
+ DW_CFA_offset_extended_sf: r57 \(\$fs1\) at cfa\+464
+ DW_CFA_offset_extended_sf: r58 \(\$fs2\) at cfa\+472
+ DW_CFA_offset_extended_sf: r59 \(\$fs3\) at cfa\+480
+ DW_CFA_offset_extended_sf: r60 \(\$fs4\) at cfa\+488
+ DW_CFA_offset_extended_sf: r61 \(\$fs5\) at cfa\+496
+ DW_CFA_offset_extended_sf: r62 \(\$fs6\) at cfa\+504
+ DW_CFA_offset_extended_sf: r63 \(\$fs7\) at cfa\+512
+ DW_CFA_offset_extended_sf: r32 \(\$fa0\) at cfa\+264
+ DW_CFA_offset_extended_sf: r33 \(\$fa1\) at cfa\+272
+ DW_CFA_offset_extended_sf: r34 \(\$fa2\) at cfa\+280
+ DW_CFA_offset_extended_sf: r35 \(\$fa3\) at cfa\+288
+ DW_CFA_offset_extended_sf: r36 \(\$fa4\) at cfa\+296
+ DW_CFA_offset_extended_sf: r37 \(\$fa5\) at cfa\+304
+ DW_CFA_offset_extended_sf: r38 \(\$fa6\) at cfa\+312
+ DW_CFA_offset_extended_sf: r39 \(\$fa7\) at cfa\+320
+ DW_CFA_offset_extended_sf: r40 \(\$ft0\) at cfa\+328
+ DW_CFA_offset_extended_sf: r41 \(\$ft1\) at cfa\+336
+ DW_CFA_offset_extended_sf: r42 \(\$ft2\) at cfa\+344
+ DW_CFA_offset_extended_sf: r43 \(\$ft3\) at cfa\+352
+ DW_CFA_offset_extended_sf: r44 \(\$ft4\) at cfa\+360
+ DW_CFA_offset_extended_sf: r45 \(\$ft5\) at cfa\+368
+ DW_CFA_offset_extended_sf: r46 \(\$ft6\) at cfa\+376
+ DW_CFA_offset_extended_sf: r47 \(\$ft7\) at cfa\+384
+ DW_CFA_offset_extended_sf: r48 \(\$ft8\) at cfa\+392
+ DW_CFA_offset_extended_sf: r49 \(\$ft9\) at cfa\+400
+ DW_CFA_offset_extended_sf: r50 \(\$ft10\) at cfa\+408
+ DW_CFA_offset_extended_sf: r51 \(\$ft11\) at cfa\+416
+ DW_CFA_offset_extended_sf: r52 \(\$ft12\) at cfa\+424
+ DW_CFA_offset_extended_sf: r53 \(\$ft13\) at cfa\+432
+ DW_CFA_offset_extended_sf: r54 \(\$ft14\) at cfa\+440
+ DW_CFA_offset_extended_sf: r55 \(\$ft15\) at cfa\+448
+ DW_CFA_offset_extended_sf: r56 \(\$fs0\) at cfa\+456
+ DW_CFA_offset_extended_sf: r57 \(\$fs1\) at cfa\+464
+ DW_CFA_offset_extended_sf: r58 \(\$fs2\) at cfa\+472
+ DW_CFA_offset_extended_sf: r59 \(\$fs3\) at cfa\+480
+ DW_CFA_offset_extended_sf: r60 \(\$fs4\) at cfa\+488
+ DW_CFA_offset_extended_sf: r61 \(\$fs5\) at cfa\+496
+ DW_CFA_offset_extended_sf: r62 \(\$fs6\) at cfa\+504
+ DW_CFA_offset_extended_sf: r63 \(\$fs7\) at cfa\+512
+ DW_CFA_offset_extended_sf: r32 \(\$fa0\) at cfa\+264
+ DW_CFA_offset_extended_sf: r33 \(\$fa1\) at cfa\+272
+ DW_CFA_offset_extended_sf: r34 \(\$fa2\) at cfa\+280
+ DW_CFA_offset_extended_sf: r35 \(\$fa3\) at cfa\+288
+ DW_CFA_offset_extended_sf: r36 \(\$fa4\) at cfa\+296
+ DW_CFA_offset_extended_sf: r37 \(\$fa5\) at cfa\+304
+ DW_CFA_offset_extended_sf: r38 \(\$fa6\) at cfa\+312
+ DW_CFA_offset_extended_sf: r39 \(\$fa7\) at cfa\+320
+ DW_CFA_offset_extended_sf: r40 \(\$ft0\) at cfa\+328
+ DW_CFA_offset_extended_sf: r41 \(\$ft1\) at cfa\+336
+ DW_CFA_offset_extended_sf: r42 \(\$ft2\) at cfa\+344
+ DW_CFA_offset_extended_sf: r43 \(\$ft3\) at cfa\+352
+ DW_CFA_offset_extended_sf: r44 \(\$ft4\) at cfa\+360
+ DW_CFA_offset_extended_sf: r45 \(\$ft5\) at cfa\+368
+ DW_CFA_offset_extended_sf: r46 \(\$ft6\) at cfa\+376
+ DW_CFA_offset_extended_sf: r47 \(\$ft7\) at cfa\+384
+ DW_CFA_offset_extended_sf: r48 \(\$ft8\) at cfa\+392
+ DW_CFA_offset_extended_sf: r49 \(\$ft9\) at cfa\+400
+ DW_CFA_offset_extended_sf: r50 \(\$ft10\) at cfa\+408
+ DW_CFA_offset_extended_sf: r51 \(\$ft11\) at cfa\+416
+ DW_CFA_offset_extended_sf: r52 \(\$ft12\) at cfa\+424
+ DW_CFA_offset_extended_sf: r53 \(\$ft13\) at cfa\+432
+ DW_CFA_offset_extended_sf: r54 \(\$ft14\) at cfa\+440
+ DW_CFA_offset_extended_sf: r55 \(\$ft15\) at cfa\+448
+ DW_CFA_offset_extended_sf: r56 \(\$fs0\) at cfa\+456
+ DW_CFA_offset_extended_sf: r57 \(\$fs1\) at cfa\+464
+ DW_CFA_offset_extended_sf: r58 \(\$fs2\) at cfa\+472
+ DW_CFA_offset_extended_sf: r59 \(\$fs3\) at cfa\+480
+ DW_CFA_offset_extended_sf: r60 \(\$fs4\) at cfa\+488
+ DW_CFA_offset_extended_sf: r61 \(\$fs5\) at cfa\+496
+ DW_CFA_offset_extended_sf: r62 \(\$fs6\) at cfa\+504
+ DW_CFA_offset_extended_sf: r63 \(\$fs7\) at cfa\+512
+ DW_CFA_offset_extended_sf: r32 \(\$fa0\) at cfa\+264
+ DW_CFA_offset_extended_sf: r33 \(\$fa1\) at cfa\+272
+ DW_CFA_offset_extended_sf: r34 \(\$fa2\) at cfa\+280
+ DW_CFA_offset_extended_sf: r35 \(\$fa3\) at cfa\+288
+ DW_CFA_offset_extended_sf: r36 \(\$fa4\) at cfa\+296
+ DW_CFA_offset_extended_sf: r37 \(\$fa5\) at cfa\+304
+ DW_CFA_offset_extended_sf: r38 \(\$fa6\) at cfa\+312
+ DW_CFA_offset_extended_sf: r39 \(\$fa7\) at cfa\+320
+ DW_CFA_offset_extended_sf: r40 \(\$ft0\) at cfa\+328
+ DW_CFA_offset_extended_sf: r41 \(\$ft1\) at cfa\+336
+ DW_CFA_offset_extended_sf: r42 \(\$ft2\) at cfa\+344
+ DW_CFA_offset_extended_sf: r43 \(\$ft3\) at cfa\+352
+ DW_CFA_offset_extended_sf: r44 \(\$ft4\) at cfa\+360
+ DW_CFA_offset_extended_sf: r45 \(\$ft5\) at cfa\+368
+ DW_CFA_offset_extended_sf: r46 \(\$ft6\) at cfa\+376
+ DW_CFA_offset_extended_sf: r47 \(\$ft7\) at cfa\+384
+ DW_CFA_offset_extended_sf: r48 \(\$ft8\) at cfa\+392
+ DW_CFA_offset_extended_sf: r49 \(\$ft9\) at cfa\+400
+ DW_CFA_offset_extended_sf: r50 \(\$ft10\) at cfa\+408
+ DW_CFA_offset_extended_sf: r51 \(\$ft11\) at cfa\+416
+ DW_CFA_offset_extended_sf: r52 \(\$ft12\) at cfa\+424
+ DW_CFA_offset_extended_sf: r53 \(\$ft13\) at cfa\+432
+ DW_CFA_offset_extended_sf: r54 \(\$ft14\) at cfa\+440
+ DW_CFA_offset_extended_sf: r55 \(\$ft15\) at cfa\+448
+ DW_CFA_offset_extended_sf: r56 \(\$fs0\) at cfa\+456
+ DW_CFA_offset_extended_sf: r57 \(\$fs1\) at cfa\+464
+ DW_CFA_offset_extended_sf: r58 \(\$fs2\) at cfa\+472
+ DW_CFA_offset_extended_sf: r59 \(\$fs3\) at cfa\+480
+ DW_CFA_offset_extended_sf: r60 \(\$fs4\) at cfa\+488
+ DW_CFA_offset_extended_sf: r61 \(\$fs5\) at cfa\+496
+ DW_CFA_offset_extended_sf: r62 \(\$fs6\) at cfa\+504
+ DW_CFA_offset_extended_sf: r63 \(\$fs7\) at cfa\+512
+#...
"$xr24", "$xr25", "$xr26", "$xr27", "$xr28", "$xr29", "$xr30", "$xr31",
};
+const char *const loongarch_r_cfi_name[32] =
+{
+ "r0", "r1", "r2", "r3", "r4", "r5", "r6", "r7",
+ "r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
+ "r16", "r17", "r18", "r19", "r20", "r21", "r22", "r23",
+ "r24", "r25", "r26", "r27", "r28", "r29", "r30", "r31",
+};
+
+const char *const loongarch_r_cfi_name_alias[32] =
+{
+ "zero", "ra", "tp", "sp", "a0", "a1", "a2", "a3",
+ "a4", "a5", "a6", "a7", "t0", "t1", "t2", "t3",
+ "t4", "t5", "t6", "t7", "t8", "r21","fp", "s0",
+ "s1", "s2", "s3", "s4", "s5", "s6", "s7", "s8",
+};
+
+const char *const loongarch_f_cfi_name[32] =
+{
+ "f0", "f1", "f2", "f3", "f4", "f5", "f6", "f7",
+ "f8", "f9", "f10", "f11", "f12", "f13", "f14", "f15",
+ "f16", "f17", "f18", "f19", "f20", "f21", "f22", "f23",
+ "f24", "f25", "f26", "f27", "f28", "f29", "f30", "f31",
+};
+
+const char *const loongarch_f_cfi_name_alias[32] =
+{
+ "fa0", "fa1", "fa2", "fa3", "fa4", "fa5", "fa6", "fa7",
+ "ft0", "ft1", "ft2", "ft3", "ft4", "ft5", "ft6", "ft7",
+ "ft8", "ft9", "ft10", "ft11", "ft12", "ft13", "ft14", "ft15",
+ "fs0", "fs1", "fs2", "fs3", "fs4", "fs5", "fs6", "fs7",
+};
+
/* Can not use xx_pa for abs. */
/* For LoongArch32 abs. */