On 2020/3/28 00:04, Segher Boessenkool wrote:
Hi!
On Fri, Mar 27, 2020 at 09:34:00AM +0800, luoxhu wrote:
On 2020/3/27 07:59, Segher Boessenkool wrote:
On Wed, Mar 25, 2020 at 11:15:22PM -0500, luo...@linux.ibm.com wrote:
frame_pointer_needed is set to true in reload pass setup_can_eliminate,
but regs_ever_live[31] is false, so pro_and_epilogue doesn't save/restore
r31 even it is used actually, causing CPU2006 465.tonto segment fault of
loading from invalid addresses.
If df_regs_ever_live_p(31) is false there is no hard frame pointer
anywhere in the program. How can it be used then?
There is a piece of code emit move instruction to r31 even
df_regs_ever_live_p(31) is false
in pro_and_epilogue.
Can you point out where (in rs6000-logue.c ot similar)? We should fix
*that*.
As frame_point_needed is true and frame_pointer_needed is widely
used in this function, so I propose to save r31 in save_reg_p instead of check
(frame_pointer_needed && df_regs_ever_live_p(31), I haven't verify whether this
works yet).
Is this reasonable? Thanks.
frame_pointer_needed is often true when the backend can figure out we do
not actually need it.
rs6000-logue.c
void
rs6000_emit_prologue (void)
{
...
bbd21807fdf6 (geoffk 2000-03-16 03:16:41 +0000 26840) /* Set frame
pointer, if needed. */
bbd21807fdf6 (geoffk 2000-03-16 03:16:41 +0000 26841) if
(frame_pointer_needed)
bbd21807fdf6 (geoffk 2000-03-16 03:16:41 +0000 26842) {
0d6c02bf24e4 (jakub 2005-06-30 14:26:32 +0000 26843) insn =
emit_move_insn (gen_rtx_REG (Pmode, HARD_FRAME_POINTER_REGNUM),
bbd21807fdf6 (geoffk 2000-03-16 03:16:41 +0000 26844)
sp_reg_rtx);
bbd21807fdf6 (geoffk 2000-03-16 03:16:41 +0000 26845)
RTX_FRAME_RELATED_P (insn) = 1;
6b02f2a5c61e (meissner 1995-11-30 20:02:16 +0000 26846) }
d1bd513ed578 (kenner 1992-02-09 19:26:21 +0000 26847)
...
}
Ah, so this you mean. I see. It looks like if you change this to
if (frame_pointer_needed && df_regs_ever_live_p (HARD_FRAME_POINTER_REGNUM))
{
insn = emit_move_insn (gen_rtx_REG (Pmode, HARD_FRAME_POINTER_REGNUM),
sp_reg_rtx);
RTX_FRAME_RELATED_P (insn) = 1;
}
(so just that "if" clause changes), it'll all be fine. Could you test
that please?
Tried with below patch, it still fails at same place, I guess this is not
enough.
The instruction in 100dc034 change r31 from 0x105fdd70 to 0x7fffffffbbf0 and
didn't
restore it before return.
00000000100dc020 <__atomvec_module_MOD_atom_index_from_pos>:
100dc020: 51 10 40 3c lis r2,4177
100dc024: 00 7f 42 38 addi r2,r2,32512
100dc028: 28 00 e3 e8 ld r7,40(r3)
100dc02c: e1 ff 21 f8 stdu r1,-32(r1)
100dc030: 00 00 27 2c cmpdi r7,0
100dc034: 78 0b 3f 7c mr r31,r1
100dc038: 08 00 82 40 bne 100dc040
<__atomvec_module_MOD_atom_index_from_pos+0x20>
100dc03c: 01 00 e0 38 li r7,1
100dc040: 38 00 43 e9 ld r10,56(r3)
100dc044: 30 00 23 e9 ld r9,48(r3)
100dc048: 00 00 03 e9 ld r8,0(r3)
Diff:
diff --git a/gcc/config/rs6000/rs6000-logue.c b/gcc/config/rs6000/rs6000-logue.c
index 4cbf228eb79..28fda1866d8 100644
--- a/gcc/config/rs6000/rs6000-logue.c
+++ b/gcc/config/rs6000/rs6000-logue.c
@@ -3658,7 +3658,7 @@ rs6000_emit_prologue (void)
}
/* Set frame pointer, if needed. */
- if (frame_pointer_needed)
+ if (frame_pointer_needed && df_regs_ever_live_p (HARD_FRAME_POINTER_REGNUM))
{
insn = emit_move_insn (gen_rtx_REG (Pmode, HARD_FRAME_POINTER_REGNUM),
sp_reg_rtx);
@@ -4534,7 +4534,8 @@ rs6000_emit_epilogue (enum epilogue_type epilogue_type)
}
/* If we have a frame pointer, we can restore the old stack pointer
from it. */
- else if (frame_pointer_needed)
+ else if (frame_pointer_needed
+ && df_regs_ever_live_p (HARD_FRAME_POINTER_REGNUM))
{
frame_reg_rtx = sp_reg_rtx;
if (DEFAULT_ABI == ABI_V4)
@@ -4873,7 +4874,8 @@ rs6000_emit_epilogue (enum epilogue_type epilogue_type)
a REG_CFA_DEF_CFA note, but that's OK; A duplicate is
discarded by dwarf2cfi.c/dwarf2out.c, and in any case would
be harmless if emitted. */
- if (frame_pointer_needed)
+ if (frame_pointer_needed
+ && df_regs_ever_live_p (HARD_FRAME_POINTER_REGNUM))
{
insn = get_last_insn ();
add_reg_note (insn, REG_CFA_DEF_CFA,
Program received signal SIGSEGV: Segmentation fault - invalid memory reference.
Backtrace for this error:
#0 0x2000000a2243 in ???
#1 0x2000000a0abb in ???
#2 0x2000000604d7 in ???
#3 0x1027418c in __mol_module_MOD_make_image_of_shell
at
/home/luoxhu/workspace/cpu2006/benchspec/CPU2006/465.tonto/build/build_peak_none.0000/mol.fppized.f90:9376
#4 0x10281adf in __mol_module_MOD_symmetrise_r
at
/home/luoxhu/workspace/cpu2006/benchspec/CPU2006/465.tonto/build/build_peak_none.0000/mol.fppized.f90:9276
#5 0x10322d3b in __mol_module_MOD_symmetrise.constprop.0
at
/home/luoxhu/workspace/cpu2006/benchspec/CPU2006/465.tonto/build/build_peak_none.0000/mol.fppized.f90:9239
#6 0x1023d1ff in __mol_module_MOD_make_atom_density
at
/home/luoxhu/workspace/cpu2006/benchspec/CPU2006/465.tonto/build/build_peak_none.0000/mol.fppized.f90:12477
#7 0x1023d9a3 in __mol_module_MOD_get_atom_density
at
/home/luoxhu/workspace/cpu2006/benchspec/CPU2006/465.tonto/build/build_peak_none.0000/mol.fppized.f90:12434
#8 0x1023e87b in __mol_module_MOD_make_atom_guess
at
/home/luoxhu/workspace/cpu2006/benchspec/CPU2006/465.tonto/build/build_peak_none.0000/mol.fppized.f90:12406
#9 0x1023e87b in __mol_module_MOD_get_initial_density
Thanks,
Xionghu
Thanks,
Segher
00000000100dc020 <__atomvec_module_MOD_atom_index_from_pos>:
100dc020: 51 10 40 3c lis r2,4177
100dc024: 00 7f 42 38 addi r2,r2,32512
100dc028: 28 00 e3 e8 ld r7,40(r3)
100dc02c: e1 ff 21 f8 stdu r1,-32(r1)
100dc030: 00 00 27 2c cmpdi r7,0
100dc034: 78 0b 3f 7c mr r31,r1
100dc038: 08 00 82 40 bne 100dc040
<__atomvec_module_MOD_atom_index_from_pos+0x20>
100dc03c: 01 00 e0 38 li r7,1
100dc040: 38 00 43 e9 ld r10,56(r3)
100dc044: 30 00 23 e9 ld r9,48(r3)
100dc048: 00 00 03 e9 ld r8,0(r3)
100dc04c: 50 50 69 7c subf r3,r9,r10
100dc050: 01 00 03 38 addi r0,r3,1
100dc054: f8 00 05 7c not r5,r0
100dc058: 76 fe a6 7c sradi r6,r5,63
100dc05c: 38 30 0b 7c and r11,r0,r6
100dc060: 00 00 8b 2c cmpwi cr1,r11,0
100dc064: b4 07 6c 7d extsw r12,r11
100dc068: 58 03 85 40 ble cr1,100dc3c0
<__atomvec_module_MOD_atom_index_from_pos+0x3a0>
100dc06c: 88 00 28 39 addi r9,r8,136
100dc070: 98 26 00 7c lxvd2x vs0,0,r4
100dc074: f7 ff 42 3d addis r10,r2,-9
100dc078: 10 00 84 c9 lfd f12,16(r4)
100dc07c: 10 00 69 c9 lfd f11,16(r9)
100dc080: ff ff 0c 39 addi r8,r12,-1
100dc084: e0 04 e7 1c mulli r7,r7,1248
100dc088: 98 4e 40 7d lxvd2x vs10,0,r9
100dc08c: c0 dc 2a c9 lfd f9,-9024(r10)
100dc090: be 07 00 55 clrlwi r0,r8,30
100dc094: 01 00 60 38 li r3,1
100dc098: 78 0b 26 7c mr r6,r1
100dc09c: 28 58 4c fc fsub f2,f12,f11
100dc0a0: 40 53 20 f0 xvsubdp vs1,vs0,vs10
100dc0a4: 10 12 80 fc fabs f4,f2
100dc0a8: 64 0f 60 f0 xvabsdp vs3,vs1
100dc0ac: 90 18 a0 fc fmr f5,f3
100dc0b0: 00 48 85 fe fcmpu cr5,f5,f9
100dc0b4: 30 03 95 41 bgt cr5,100dc3e4
<__atomvec_module_MOD_atom_index_from_pos+0x3c4>
100dc0b8: 50 1b c3 f0 xxspltd vs6,vs3,1
100dc0bc: 00 48 06 ff fcmpu cr6,f6,f9
100dc0c0: 24 03 99 41 bgt cr6,100dc3e4
<__atomvec_module_MOD_atom_index_from_pos+0x3c4>
100dc0c4: 00 48 84 ff fcmpu cr7,f4,f9
100dc0c8: 1c 03 9d 41 bgt cr7,100dc3e4
<__atomvec_module_MOD_atom_index_from_pos+0x3c4>
100dc0cc: b2 01 e6 fc fmul f7,f6,f6
100dc0d0: f8 ff a2 3c addis r5,r2,-8
100dc0d4: d0 eb 05 c9 lfd f8,-5168(r5)
100dc0d8: 7a 39 a5 fd fmadd f13,f5,f5,f7
100dc0dc: ba 68 02 fc fmadd f0,f2,f2,f13
100dc0e0: 00 40 00 fc fcmpu cr0,f0,f8
100dc0e4: 1c 03 80 41 blt 100dc400
<__atomvec_module_MOD_atom_index_from_pos+0x3e0>
100dc0e8: 01 00 8c 2c cmpwi cr1,r12,1
100dc0ec: 14 3a 09 7d add r8,r9,r7
100dc0f0: 02 00 60 38 li r3,2
100dc0f4: cc 02 85 40 ble cr1,100dc3c0
<__atomvec_module_MOD_atom_index_from_pos+0x3a0>
100dc0f8: 00 00 80 2e cmpwi cr5,r0,0
100dc0fc: 60 01 96 41 beq cr5,100dc25c
<__atomvec_module_MOD_atom_index_from_pos+0x23c>
100dc100: 01 00 00 2f cmpwi cr6,r0,1
100dc104: e4 00 9a 41 beq cr6,100dc1e8
<__atomvec_module_MOD_atom_index_from_pos+0x1c8>
100dc108: 02 00 80 2f cmpwi cr7,r0,2
100dc10c: 70 00 9e 41 beq cr7,100dc17c
<__atomvec_module_MOD_atom_index_from_pos+0x15c>
100dc110: 98 26 20 7c lxvd2x vs1,0,r4
100dc114: 98 46 40 7d lxvd2x vs10,0,r8
100dc118: 78 0b 2b 7c mr r11,r1
100dc11c: 10 00 84 c9 lfd f12,16(r4)
100dc120: 10 00 68 c9 lfd f11,16(r8)
100dc124: 40 53 41 f0 xvsubdp vs2,vs1,vs10
100dc128: 28 58 6c fc fsub f3,f12,f11
100dc12c: 64 17 80 f0 xvabsdp vs4,vs2
100dc130: 10 1a a0 fc fabs f5,f3
100dc134: 90 20 c0 fc fmr f6,f4
100dc138: 00 48 06 fc fcmpu cr0,f6,f9
100dc13c: 0c 03 81 41 bgt 100dc448
<__atomvec_module_MOD_atom_index_from_pos+0x428>
100dc140: 50 23 e4 f0 xxspltd vs7,vs4,1
100dc144: 00 48 87 fc fcmpu cr1,f7,f9
100dc148: 00 03 85 41 bgt cr1,100dc448
<__atomvec_module_MOD_atom_index_from_pos+0x428>
100dc14c: 00 48 85 fe fcmpu cr5,f5,f9
100dc150: f8 02 95 41 bgt cr5,100dc448
<__atomvec_module_MOD_atom_index_from_pos+0x428>
100dc154: f2 01 07 fd fmul f8,f7,f7
100dc158: f8 ff 22 3d addis r9,r2,-8
100dc15c: d0 eb a9 c9 lfd f13,-5168(r9)
100dc160: ba 41 06 fc fmadd f0,f6,f6,f8
100dc164: fa 00 23 fc fmadd f1,f3,f3,f0
100dc168: 00 68 01 ff fcmpu cr6,f1,f13
100dc16c: 94 02 98 41 blt cr6,100dc400
<__atomvec_module_MOD_atom_index_from_pos+0x3e0>
100dc170: 01 00 03 38 addi r0,r3,1
100dc174: 14 3a 08 7d add r8,r8,r7
100dc178: b4 07 03 7c extsw r3,r0
100dc17c: 98 26 40 7c lxvd2x vs2,0,r4
100dc180: 98 46 40 7d lxvd2x vs10,0,r8
100dc184: 78 0b 25 7c mr r5,r1
100dc188: 10 00 84 c9 lfd f12,16(r4)
100dc18c: 10 00 68 c9 lfd f11,16(r8)
100dc190: 40 53 62 f0 xvsubdp vs3,vs2,vs10
100dc194: 28 58 8c fc fsub f4,f12,f11
100dc198: 64 1f a0 f0 xvabsdp vs5,vs3
100dc19c: 10 22 c0 fc fabs f6,f4
100dc1a0: 90 28 e0 fc fmr f7,f5
100dc1a4: 00 48 87 ff fcmpu cr7,f7,f9
100dc1a8: 90 02 9d 41 bgt cr7,100dc438
<__atomvec_module_MOD_atom_index_from_pos+0x418>
100dc1ac: 50 2b 05 f1 xxspltd vs8,vs5,1
100dc1b0: 00 48 08 fc fcmpu cr0,f8,f9
100dc1b4: 84 02 81 41 bgt 100dc438
<__atomvec_module_MOD_atom_index_from_pos+0x418>
100dc1b8: 00 48 86 fc fcmpu cr1,f6,f9
100dc1bc: 7c 02 85 41 bgt cr1,100dc438
<__atomvec_module_MOD_atom_index_from_pos+0x418>
100dc1c0: 32 02 a8 fd fmul f13,f8,f8
100dc1c4: f8 ff c2 3c addis r6,r2,-8
100dc1c8: d0 eb 26 c8 lfd f1,-5168(r6)
100dc1cc: fa 69 07 fc fmadd f0,f7,f7,f13
100dc1d0: 3a 01 44 fc fmadd f2,f4,f4,f0
100dc1d4: 00 08 82 fe fcmpu cr5,f2,f1
100dc1d8: 28 02 94 41 blt cr5,100dc400
<__atomvec_module_MOD_atom_index_from_pos+0x3e0>
100dc1dc: 01 00 63 38 addi r3,r3,1
100dc1e0: 14 3a 08 7d add r8,r8,r7
100dc1e4: b4 07 63 7c extsw r3,r3
100dc1e8: 98 26 80 7c lxvd2x vs4,0,r4
100dc1ec: 98 46 40 7d lxvd2x vs10,0,r8
100dc1f0: 78 0b 25 7c mr r5,r1
100dc1f4: 10 00 a4 c8 lfd f5,16(r4)
100dc1f8: 40 53 44 f1 xvsubdp vs10,vs4,vs10
100dc1fc: 10 00 68 c9 lfd f11,16(r8)
100dc200: 28 58 85 fd fsub f12,f5,f11
100dc204: 64 57 60 f0 xvabsdp vs3,vs10
100dc208: 10 62 80 fc fabs f4,f12
100dc20c: 90 18 a0 fc fmr f5,f3
100dc210: 00 48 05 ff fcmpu cr6,f5,f9
100dc214: 04 02 99 41 bgt cr6,100dc418
<__atomvec_module_MOD_atom_index_from_pos+0x3f8>
100dc218: 50 1b c3 f0 xxspltd vs6,vs3,1
100dc21c: 00 48 86 ff fcmpu cr7,f6,f9
100dc220: f8 01 9d 41 bgt cr7,100dc418
<__atomvec_module_MOD_atom_index_from_pos+0x3f8>
100dc224: 00 48 04 fc fcmpu cr0,f4,f9
100dc228: f0 01 81 41 bgt 100dc418
<__atomvec_module_MOD_atom_index_from_pos+0x3f8>
100dc22c: b2 01 e6 fc fmul f7,f6,f6
100dc230: f8 ff 22 3d addis r9,r2,-8
100dc234: d0 eb 09 c9 lfd f8,-5168(r9)
100dc238: 7a 39 a5 fd fmadd f13,f5,f5,f7
100dc23c: 3a 6b 2c fc fmadd f1,f12,f12,f13
100dc240: 00 40 81 fc fcmpu cr1,f1,f8
100dc244: bc 01 84 41 blt cr1,100dc400
<__atomvec_module_MOD_atom_index_from_pos+0x3e0>
100dc248: 01 00 43 39 addi r10,r3,1
100dc24c: 14 3a 08 7d add r8,r8,r7
100dc250: 00 60 8a 7e cmpw cr5,r10,r12
100dc254: b4 07 43 7d extsw r3,r10
100dc258: 68 01 95 41 bgt cr5,100dc3c0
<__atomvec_module_MOD_atom_index_from_pos+0x3a0>
100dc25c: 98 26 00 7c lxvd2x vs0,0,r4
100dc260: 98 46 40 7c lxvd2x vs2,0,r8
100dc264: 78 0b 25 7c mr r5,r1
100dc268: 10 00 44 c9 lfd f10,16(r4)
100dc26c: 10 00 68 c9 lfd f11,16(r8)
100dc270: 40 13 60 f0 xvsubdp vs3,vs0,vs2
100dc274: 28 58 8a fd fsub f12,f10,f11
100dc278: 64 1f 80 f0 xvabsdp vs4,vs3
100dc27c: 10 62 a0 fc fabs f5,f12
100dc280: 90 20 c0 fc fmr f6,f4
100dc284: 00 48 06 ff fcmpu cr6,f6,f9
100dc288: 80 01 99 41 bgt cr6,100dc408
<__atomvec_module_MOD_atom_index_from_pos+0x3e8>
100dc28c: 50 23 e4 f0 xxspltd vs7,vs4,1
100dc290: 00 48 87 ff fcmpu cr7,f7,f9
100dc294: 74 01 9d 41 bgt cr7,100dc408
<__atomvec_module_MOD_atom_index_from_pos+0x3e8>
100dc298: 00 48 05 fc fcmpu cr0,f5,f9
100dc29c: 6c 01 81 41 bgt 100dc408
<__atomvec_module_MOD_atom_index_from_pos+0x3e8>
100dc2a0: f2 01 07 fd fmul f8,f7,f7
100dc2a4: f8 ff c2 3c addis r6,r2,-8
100dc2a8: d0 eb a6 c9 lfd f13,-5168(r6)
100dc2ac: ba 41 26 fc fmadd f1,f6,f6,f8
100dc2b0: 3a 0b 0c fc fmadd f0,f12,f12,f1
100dc2b4: 00 68 80 fc fcmpu cr1,f0,f13
100dc2b8: 48 01 84 41 blt cr1,100dc400
<__atomvec_module_MOD_atom_index_from_pos+0x3e0>
100dc2bc: 98 26 40 7c lxvd2x vs2,0,r4
100dc2c0: 98 3e 48 7d lxvd2x vs10,r8,r7
100dc2c4: 14 3a 28 7d add r9,r8,r7
100dc2c8: 01 00 63 38 addi r3,r3,1
100dc2cc: 10 00 64 c8 lfd f3,16(r4)
100dc2d0: b4 07 63 7c extsw r3,r3
100dc2d4: 78 0b 2a 7c mr r10,r1
100dc2d8: 10 00 69 c9 lfd f11,16(r9)
100dc2dc: 40 53 82 f0 xvsubdp vs4,vs2,vs10
100dc2e0: 28 58 83 fd fsub f12,f3,f11
100dc2e4: 64 27 a0 f0 xvabsdp vs5,vs4
100dc2e8: 10 62 c0 fc fabs f6,f12
100dc2ec: 90 28 e0 fc fmr f7,f5
100dc2f0: 00 48 87 fe fcmpu cr5,f7,f9
100dc2f4: 34 01 95 41 bgt cr5,100dc428
<__atomvec_module_MOD_atom_index_from_pos+0x408>
100dc2f8: 50 2b 05 f1 xxspltd vs8,vs5,1
100dc2fc: 00 48 08 ff fcmpu cr6,f8,f9
100dc300: 28 01 99 41 bgt cr6,100dc428
<__atomvec_module_MOD_atom_index_from_pos+0x408>
100dc304: 00 48 86 ff fcmpu cr7,f6,f9
100dc308: 20 01 9d 41 bgt cr7,100dc428
<__atomvec_module_MOD_atom_index_from_pos+0x408>
100dc30c: 32 02 a8 fd fmul f13,f8,f8
100dc310: f8 ff 02 3d addis r8,r2,-8
100dc314: d0 eb 28 c8 lfd f1,-5168(r8)
100dc318: fa 69 07 fc fmadd f0,f7,f7,f13
100dc31c: 3a 03 4c fc fmadd f2,f12,f12,f0
100dc320: 00 08 02 fc fcmpu cr0,f2,f1
100dc324: dc 00 80 41 blt 100dc400
<__atomvec_module_MOD_atom_index_from_pos+0x3e0>
100dc328: 98 26 60 7c lxvd2x vs3,0,r4
100dc32c: 98 3e 49 7d lxvd2x vs10,r9,r7
100dc330: 14 3a a9 7c add r5,r9,r7
100dc334: 01 00 c3 38 addi r6,r3,1
100dc338: 10 00 84 c8 lfd f4,16(r4)
100dc33c: b4 07 c3 7c extsw r3,r6
100dc340: 78 0b 2b 7c mr r11,r1
100dc344: 10 00 65 c9 lfd f11,16(r5)
100dc348: 40 53 a3 f0 xvsubdp vs5,vs3,vs10
100dc34c: 28 58 84 fd fsub f12,f4,f11
100dc350: 64 2f c0 f0 xvabsdp vs6,vs5
100dc354: 10 62 e0 fc fabs f7,f12
100dc358: 90 30 00 fd fmr f8,f6
100dc35c: 00 48 88 fc fcmpu cr1,f8,f9
100dc360: f8 00 85 41 bgt cr1,100dc458
<__atomvec_module_MOD_atom_index_from_pos+0x438>
100dc364: 50 33 a6 f1 xxspltd vs13,vs6,1
100dc368: 00 48 8d fe fcmpu cr5,f13,f9
100dc36c: ec 00 95 41 bgt cr5,100dc458
<__atomvec_module_MOD_atom_index_from_pos+0x438>
100dc370: 00 48 07 ff fcmpu cr6,f7,f9
100dc374: e4 00 99 41 bgt cr6,100dc458
<__atomvec_module_MOD_atom_index_from_pos+0x438>
100dc378: 72 03 2d fc fmul f1,f13,f13
100dc37c: f8 ff 22 3d addis r9,r2,-8
100dc380: d0 eb 49 c8 lfd f2,-5168(r9)
100dc384: 3a 0a 08 fc fmadd f0,f8,f8,f1
100dc388: 3a 03 6c fc fmadd f3,f12,f12,f0
100dc38c: 00 10 83 ff fcmpu cr7,f3,f2
100dc390: 70 00 9c 41 blt cr7,100dc400
<__atomvec_module_MOD_atom_index_from_pos+0x3e0>
100dc394: 01 00 63 38 addi r3,r3,1
100dc398: 98 3e 45 7d lxvd2x vs10,r5,r7
100dc39c: 14 3a 05 7d add r8,r5,r7
100dc3a0: 98 26 80 7c lxvd2x vs4,0,r4
100dc3a4: 10 00 a4 c8 lfd f5,16(r4)
100dc3a8: b4 07 63 7c extsw r3,r3
100dc3ac: 78 0b 25 7c mr r5,r1
100dc3b0: 48 fe ff 4b b 100dc1f8
<__atomvec_module_MOD_atom_index_from_pos+0x1d8>
100dc3b4: 00 00 00 60 nop
100dc3b8: 00 00 00 60 nop
100dc3bc: 00 00 42 60 ori r2,r2,0
100dc3c0: a6 02 08 7c mflr r0
100dc3c4: f8 ff 82 3c addis r4,r2,-8
100dc3c8: 00 00 00 60 nop
100dc3cc: 39 00 a0 38 li r5,57
100dc3d0: 70 e7 84 38 addi r4,r4,-6288
100dc3d4: 80 83 62 38 addi r3,r2,-31872
100dc3d8: 30 00 1f f8 std r0,48(r31)
100dc3dc: 5d 66 39 48 bl 10472a38
<__system_module_MOD_die.constprop.0+0x8>
100dc3e0: 00 00 00 60 nop
100dc3e4: 00 00 61 e8 ld r3,0(r1)
100dc3e8: 00 00 66 f8 std r3,0(r6)
100dc3ec: 78 33 c1 7c mr r1,r6
100dc3f0: f8 fc ff 4b b 100dc0e8
<__atomvec_module_MOD_atom_index_from_pos+0xc8>
100dc3f4: 00 00 00 60 nop
100dc3f8: 00 00 00 60 nop
100dc3fc: 00 00 42 60 ori r2,r2,0
100dc400: 20 00 3f 38 addi r1,r31,32
100dc404: 20 00 80 4e blr
100dc408: 00 00 61 e9 ld r11,0(r1)
100dc40c: 00 00 65 f9 std r11,0(r5)
100dc410: 78 2b a1 7c mr r1,r5
100dc414: a8 fe ff 4b b 100dc2bc
<__atomvec_module_MOD_atom_index_from_pos+0x29c>
100dc418: 00 00 01 e8 ld r0,0(r1)
100dc41c: 00 00 05 f8 std r0,0(r5)
100dc420: 78 2b a1 7c mr r1,r5
100dc424: 24 fe ff 4b b 100dc248
<__atomvec_module_MOD_atom_index_from_pos+0x228>
100dc428: 00 00 01 e8 ld r0,0(r1)
100dc42c: 00 00 0a f8 std r0,0(r10)
100dc430: 78 53 41 7d mr r1,r10
100dc434: f4 fe ff 4b b 100dc328
<__atomvec_module_MOD_atom_index_from_pos+0x308>
100dc438: 00 00 61 e9 ld r11,0(r1)
100dc43c: 00 00 65 f9 std r11,0(r5)
100dc440: 78 2b a1 7c mr r1,r5
100dc444: 98 fd ff 4b b 100dc1dc
<__atomvec_module_MOD_atom_index_from_pos+0x1bc>
100dc448: 00 00 41 e9 ld r10,0(r1)
100dc44c: 00 00 4b f9 std r10,0(r11)
100dc450: 78 5b 61 7d mr r1,r11
100dc454: 1c fd ff 4b b 100dc170
<__atomvec_module_MOD_atom_index_from_pos+0x150>
100dc458: 00 00 41 e9 ld r10,0(r1)
100dc45c: 00 00 4b f9 std r10,0(r11)
100dc460: 78 5b 61 7d mr r1,r11
100dc464: 30 ff ff 4b b 100dc394
<__atomvec_module_MOD_atom_index_from_pos+0x374>
100dc468: 00 00 00 00 .long 0x0
100dc46c: 00 00 00 01 .long 0x1000000
100dc470: 80 01 00 00 .long 0x180
100dc474: 00 00 00 60 nop
100dc478: 00 00 00 60 nop
100dc47c: 00 00 42 60 ori r2,r2,0