File tree Expand file tree Collapse file tree 1 file changed +26
-23
lines changed
runtime/druntime/src/core Expand file tree Collapse file tree 1 file changed +26
-23
lines changed Original file line number Diff line number Diff line change @@ -744,58 +744,61 @@ fiber_switchContext:
744744 .cfi_offset 14 , - 48
745745 .cfi_offset 15 , - 40
746746 lgr %r1 , % r15
747- aghi % r15 , - 64
747+ aghi % r15 , - 224
748748 / * we need to tell the debugger th at the current stack offset is:
749- 64 (frame size) + 160 (parameter area size) * /
750- .cfi_def_cfa_offset 224
749+ 64 (frame size , for storing f8 ~ f15 ) + 160 (temp parameter area size) + 160 (last parameter area size) * /
750+ .cfi_def_cfa_offset 384
751751 / * store the (optional) backchain data * /
752- stg %r1 , 0 (% r15 )
752+ stg %r1 , 64 (% r15 )
753753 / * Save callee - saved floating point registers
754754 s390x ABI has a very unique way for storing fp registers:
755755 even - pairs first and odd - pairs last * /
756756 std %f8 , 0 (% r15 )
757- .cfi_offset 24 , - 224
757+ .cfi_offset 24 , - 384
758758 std %f10 , 8 (% r15 )
759- .cfi_offset 25 , - 216
759+ .cfi_offset 25 , - 376
760760 std %f12 , 16 (% r15 )
761- .cfi_offset 26 , - 208
761+ .cfi_offset 26 , - 368
762762 std %f14 , 24 (% r15 )
763- .cfi_offset 27 , - 200
763+ .cfi_offset 27 , - 360
764764 std %f9 , 32 (% r15 )
765- .cfi_offset 28 , - 192
765+ .cfi_offset 28 , - 352
766766 std %f11 , 40 (% r15 )
767- .cfi_offset 29 , - 184
767+ .cfi_offset 29 , - 344
768768 std %f13 , 48 (% r15 )
769- .cfi_offset 30 , - 176
769+ .cfi_offset 30 , - 336
770770 std %f15 , 56 (% r15 )
771- .cfi_offset 31 , - 168
771+ .cfi_offset 31 , - 328
772772
773773 / * Save stack pointer , the stack pointer is adjusted so th at
774774 GC won't see the float point registers * /
775- stg % r15 , 0 (%r2)
775+ la %r1 , 64 (% r15 )
776+ stg %r1 , 0 (%r2)
776777
777778 / * Load the new context pointer as stack pointer. * /
778779 lgr % r15 , %r3
779- .cfi_def_cfa_offset 224
780+ .cfi_def_cfa_offset 320
781+ aghi % r15 , - 64
782+ .cfi_def_cfa_offset 384
780783
781784 / * Restore call - saved floating point registers. * /
782785 ld %f8 , 0 (% r15 )
783- .cfi_offset 24 , - 224
786+ .cfi_offset 24 , - 384
784787 ld %f10 , 8 (% r15 )
785- .cfi_offset 25 , - 216
788+ .cfi_offset 25 , - 376
786789 ld %f12 , 16 (% r15 )
787- .cfi_offset 26 , - 208
790+ .cfi_offset 26 , - 368
788791 ld %f14 , 24 (% r15 )
789- .cfi_offset 27 , - 200
792+ .cfi_offset 27 , - 360
790793 ld %f9 , 32 (% r15 )
791- .cfi_offset 28 , - 192
794+ .cfi_offset 28 , - 352
792795 ld %f11 , 40 (% r15 )
793- .cfi_offset 29 , - 184
796+ .cfi_offset 29 , - 344
794797 ld %f13 , 48 (% r15 )
795- .cfi_offset 30 , - 176
798+ .cfi_offset 30 , - 336
796799 ld %f15 , 56 (% r15 )
797- .cfi_offset 31 , - 168
798- lmg %r6 , % r14 , 112 (% r15 )
800+ .cfi_offset 31 , - 328
801+ lmg %r6 , % r14 , 272 (% r15 )
799802 .cfi_offset 6 , - 112
800803 .cfi_offset 7 , - 104
801804 .cfi_offset 8 , - 96
You can’t perform that action at this time.
0 commit comments