diff options
author | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2011-12-27 05:27:15 -0500 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2011-12-27 05:27:12 -0500 |
commit | c5328901aa1db134325607d65527742d8be07f7d (patch) | |
tree | 9643cf253b758d16918cd8591bd9dde022c39673 /arch/s390/kernel/base.S | |
parent | 3b7f993394db7c446c251fb8eb32ec501a330acc (diff) |
[S390] entry[64].S improvements
Another round of cleanup for entry[64].S, in particular the program check
handler looks more reasonable now. The code size for the 31 bit kernel
has been reduced by 616 byte and by 528 byte for the 64 bit version.
Even better the code is a bit faster as well.
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/base.S')
-rw-r--r-- | arch/s390/kernel/base.S | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/arch/s390/kernel/base.S b/arch/s390/kernel/base.S index f8828d38fa6e..3aa4d00aaf50 100644 --- a/arch/s390/kernel/base.S +++ b/arch/s390/kernel/base.S | |||
@@ -33,7 +33,7 @@ s390_base_mcck_handler_fn: | |||
33 | .previous | 33 | .previous |
34 | 34 | ||
35 | ENTRY(s390_base_ext_handler) | 35 | ENTRY(s390_base_ext_handler) |
36 | stmg %r0,%r15,__LC_SAVE_AREA | 36 | stmg %r0,%r15,__LC_SAVE_AREA_ASYNC |
37 | basr %r13,0 | 37 | basr %r13,0 |
38 | 0: aghi %r15,-STACK_FRAME_OVERHEAD | 38 | 0: aghi %r15,-STACK_FRAME_OVERHEAD |
39 | larl %r1,s390_base_ext_handler_fn | 39 | larl %r1,s390_base_ext_handler_fn |
@@ -41,7 +41,7 @@ ENTRY(s390_base_ext_handler) | |||
41 | ltgr %r1,%r1 | 41 | ltgr %r1,%r1 |
42 | jz 1f | 42 | jz 1f |
43 | basr %r14,%r1 | 43 | basr %r14,%r1 |
44 | 1: lmg %r0,%r15,__LC_SAVE_AREA | 44 | 1: lmg %r0,%r15,__LC_SAVE_AREA_ASYNC |
45 | ni __LC_EXT_OLD_PSW+1,0xfd # clear wait state bit | 45 | ni __LC_EXT_OLD_PSW+1,0xfd # clear wait state bit |
46 | lpswe __LC_EXT_OLD_PSW | 46 | lpswe __LC_EXT_OLD_PSW |
47 | 47 | ||
@@ -53,7 +53,7 @@ s390_base_ext_handler_fn: | |||
53 | .previous | 53 | .previous |
54 | 54 | ||
55 | ENTRY(s390_base_pgm_handler) | 55 | ENTRY(s390_base_pgm_handler) |
56 | stmg %r0,%r15,__LC_SAVE_AREA | 56 | stmg %r0,%r15,__LC_SAVE_AREA_SYNC |
57 | basr %r13,0 | 57 | basr %r13,0 |
58 | 0: aghi %r15,-STACK_FRAME_OVERHEAD | 58 | 0: aghi %r15,-STACK_FRAME_OVERHEAD |
59 | larl %r1,s390_base_pgm_handler_fn | 59 | larl %r1,s390_base_pgm_handler_fn |
@@ -61,7 +61,7 @@ ENTRY(s390_base_pgm_handler) | |||
61 | ltgr %r1,%r1 | 61 | ltgr %r1,%r1 |
62 | jz 1f | 62 | jz 1f |
63 | basr %r14,%r1 | 63 | basr %r14,%r1 |
64 | lmg %r0,%r15,__LC_SAVE_AREA | 64 | lmg %r0,%r15,__LC_SAVE_AREA_SYNC |
65 | lpswe __LC_PGM_OLD_PSW | 65 | lpswe __LC_PGM_OLD_PSW |
66 | 1: lpswe disabled_wait_psw-0b(%r13) | 66 | 1: lpswe disabled_wait_psw-0b(%r13) |
67 | 67 | ||
@@ -142,7 +142,7 @@ s390_base_mcck_handler_fn: | |||
142 | .previous | 142 | .previous |
143 | 143 | ||
144 | ENTRY(s390_base_ext_handler) | 144 | ENTRY(s390_base_ext_handler) |
145 | stm %r0,%r15,__LC_SAVE_AREA | 145 | stm %r0,%r15,__LC_SAVE_AREA_ASYNC |
146 | basr %r13,0 | 146 | basr %r13,0 |
147 | 0: ahi %r15,-STACK_FRAME_OVERHEAD | 147 | 0: ahi %r15,-STACK_FRAME_OVERHEAD |
148 | l %r1,2f-0b(%r13) | 148 | l %r1,2f-0b(%r13) |
@@ -150,7 +150,7 @@ ENTRY(s390_base_ext_handler) | |||
150 | ltr %r1,%r1 | 150 | ltr %r1,%r1 |
151 | jz 1f | 151 | jz 1f |
152 | basr %r14,%r1 | 152 | basr %r14,%r1 |
153 | 1: lm %r0,%r15,__LC_SAVE_AREA | 153 | 1: lm %r0,%r15,__LC_SAVE_AREA_ASYNC |
154 | ni __LC_EXT_OLD_PSW+1,0xfd # clear wait state bit | 154 | ni __LC_EXT_OLD_PSW+1,0xfd # clear wait state bit |
155 | lpsw __LC_EXT_OLD_PSW | 155 | lpsw __LC_EXT_OLD_PSW |
156 | 156 | ||
@@ -164,7 +164,7 @@ s390_base_ext_handler_fn: | |||
164 | .previous | 164 | .previous |
165 | 165 | ||
166 | ENTRY(s390_base_pgm_handler) | 166 | ENTRY(s390_base_pgm_handler) |
167 | stm %r0,%r15,__LC_SAVE_AREA | 167 | stm %r0,%r15,__LC_SAVE_AREA_SYNC |
168 | basr %r13,0 | 168 | basr %r13,0 |
169 | 0: ahi %r15,-STACK_FRAME_OVERHEAD | 169 | 0: ahi %r15,-STACK_FRAME_OVERHEAD |
170 | l %r1,2f-0b(%r13) | 170 | l %r1,2f-0b(%r13) |
@@ -172,7 +172,7 @@ ENTRY(s390_base_pgm_handler) | |||
172 | ltr %r1,%r1 | 172 | ltr %r1,%r1 |
173 | jz 1f | 173 | jz 1f |
174 | basr %r14,%r1 | 174 | basr %r14,%r1 |
175 | lm %r0,%r15,__LC_SAVE_AREA | 175 | lm %r0,%r15,__LC_SAVE_AREA_SYNC |
176 | lpsw __LC_PGM_OLD_PSW | 176 | lpsw __LC_PGM_OLD_PSW |
177 | 177 | ||
178 | 1: lpsw disabled_wait_psw-0b(%r13) | 178 | 1: lpsw disabled_wait_psw-0b(%r13) |