aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/reipl.S
diff options
context:
space:
mode:
authorMartin Schwidefsky <schwidefsky@de.ibm.com>2015-10-23 03:05:38 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2015-11-27 03:24:14 -0500
commitf08b8414632c9f256e33f0a18104d8d5e103d204 (patch)
tree73f9391c6aed216a5f064467e9b4874bd84ce326 /arch/s390/kernel/reipl.S
parentd9a3a09af54d01ab8b0c320580f4f95328d4a7ac (diff)
s390/dump: remove SAVE_AREA_BASE
Replace the SAVE_AREA_BASE offset calculations in reipl.S with the assembler constant for the location of each register status area. Use __LC_FPREGS_SAVE_AREA instead of SAVE_AREA_BASE in the three remaining code locations and remove the definition of SAVE_AREA_BASE. Acked-by: Michael Holzheu <holzheu@linux.vnet.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/reipl.S')
-rw-r--r--arch/s390/kernel/reipl.S65
1 files changed, 36 insertions, 29 deletions
diff --git a/arch/s390/kernel/reipl.S b/arch/s390/kernel/reipl.S
index 52aab0bd84f8..b75a521e4fab 100644
--- a/arch/s390/kernel/reipl.S
+++ b/arch/s390/kernel/reipl.S
@@ -19,49 +19,56 @@
19ENTRY(store_status) 19ENTRY(store_status)
20 /* Save register one and load save area base */ 20 /* Save register one and load save area base */
21 stg %r1,__LC_SAVE_AREA_RESTART 21 stg %r1,__LC_SAVE_AREA_RESTART
22 lghi %r1,SAVE_AREA_BASE
23 /* General purpose registers */ 22 /* General purpose registers */
24 stmg %r0,%r15,__LC_GPREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 23 lghi %r1,__LC_GPREGS_SAVE_AREA
25 lg %r2,__LC_SAVE_AREA_RESTART 24 stmg %r0,%r15,0(%r1)
26 stg %r2,__LC_GPREGS_SAVE_AREA-SAVE_AREA_BASE+8(%r1) 25 mvc 8(8,%r1),__LC_SAVE_AREA_RESTART
27 /* Control registers */ 26 /* Control registers */
28 stctg %c0,%c15,__LC_CREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 27 lghi %r1,__LC_CREGS_SAVE_AREA
28 stctg %c0,%c15,0(%r1)
29 /* Access registers */ 29 /* Access registers */
30 stam %a0,%a15,__LC_AREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 30 lghi %r1,__LC_AREGS_SAVE_AREA
31 stam %a0,%a15,0(%r1)
31 /* Floating point registers */ 32 /* Floating point registers */
32 std %f0, 0x00 + __LC_FPREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 33 lghi %r1,__LC_FPREGS_SAVE_AREA
33 std %f1, 0x08 + __LC_FPREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 34 std %f0, 0x00(%r1)
34 std %f2, 0x10 + __LC_FPREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 35 std %f1, 0x08(%r1)
35 std %f3, 0x18 + __LC_FPREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 36 std %f2, 0x10(%r1)
36 std %f4, 0x20 + __LC_FPREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 37 std %f3, 0x18(%r1)
37 std %f5, 0x28 + __LC_FPREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 38 std %f4, 0x20(%r1)
38 std %f6, 0x30 + __LC_FPREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 39 std %f5, 0x28(%r1)
39 std %f7, 0x38 + __LC_FPREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 40 std %f6, 0x30(%r1)
40 std %f8, 0x40 + __LC_FPREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 41 std %f7, 0x38(%r1)
41 std %f9, 0x48 + __LC_FPREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 42 std %f8, 0x40(%r1)
42 std %f10,0x50 + __LC_FPREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 43 std %f9, 0x48(%r1)
43 std %f11,0x58 + __LC_FPREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 44 std %f10,0x50(%r1)
44 std %f12,0x60 + __LC_FPREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 45 std %f11,0x58(%r1)
45 std %f13,0x68 + __LC_FPREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 46 std %f12,0x60(%r1)
46 std %f14,0x70 + __LC_FPREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 47 std %f13,0x68(%r1)
47 std %f15,0x78 + __LC_FPREGS_SAVE_AREA-SAVE_AREA_BASE(%r1) 48 std %f14,0x70(%r1)
49 std %f15,0x78(%r1)
48 /* Floating point control register */ 50 /* Floating point control register */
49 stfpc __LC_FP_CREG_SAVE_AREA-SAVE_AREA_BASE(%r1) 51 lghi %r1,__LC_FP_CREG_SAVE_AREA
52 stfpc 0(%r1)
50 /* CPU timer */ 53 /* CPU timer */
51 stpt __LC_CPU_TIMER_SAVE_AREA-SAVE_AREA_BASE(%r1) 54 lghi %r1,__LC_CPU_TIMER_SAVE_AREA
55 stpt 0(%r1)
52 /* Saved prefix register */ 56 /* Saved prefix register */
57 lghi %r1,__LC_PREFIX_SAVE_AREA
53 larl %r2,dump_prefix_page 58 larl %r2,dump_prefix_page
54 mvc __LC_PREFIX_SAVE_AREA-SAVE_AREA_BASE(4,%r1),0(%r2) 59 mvc 0(4,%r1),0(%r2)
55 /* Clock comparator - seven bytes */ 60 /* Clock comparator - seven bytes */
61 lghi %r1,__LC_CLOCK_COMP_SAVE_AREA
56 larl %r2,.Lclkcmp 62 larl %r2,.Lclkcmp
57 stckc 0(%r2) 63 stckc 0(%r2)
58 mvc __LC_CLOCK_COMP_SAVE_AREA-SAVE_AREA_BASE + 1(7,%r1),1(%r2) 64 mvc 1(7,%r1),1(%r2)
59 /* Program status word */ 65 /* Program status word */
66 lghi %r1,__LC_PSW_SAVE_AREA
60 epsw %r2,%r3 67 epsw %r2,%r3
61 st %r2,__LC_PSW_SAVE_AREA-SAVE_AREA_BASE + 0(%r1) 68 st %r2,0(%r1)
62 st %r3,__LC_PSW_SAVE_AREA-SAVE_AREA_BASE + 4(%r1) 69 st %r3,4(%r1)
63 larl %r2,store_status 70 larl %r2,store_status
64 stg %r2,__LC_PSW_SAVE_AREA-SAVE_AREA_BASE + 8(%r1) 71 stg %r2,8(%r1)
65 br %r14 72 br %r14
66 73
67 .section .bss 74 .section .bss