diff options
author | Michael Neuling <mikey@neuling.org> | 2012-06-25 09:33:14 -0400 |
---|---|---|
committer | Benjamin Herrenschmidt <benh@kernel.crashing.org> | 2012-07-10 05:18:03 -0400 |
commit | 44ce6a5ee751893ecdedbd7544c645752a5dbc01 (patch) | |
tree | 6611fafa46eedf5c134dc722163ee70bc18ee6f9 | |
parent | 4404a9f98f0d426907a926c094a2dfbaa17b796d (diff) |
powerpc: Merge STK_REG/PARAM/FRAMESIZE
Merge the defines of STACKFRAMESIZE, STK_REG, STK_PARAM from different
places.
Signed-off-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
-rw-r--r-- | arch/powerpc/include/asm/ppc_asm.h | 5 | ||||
-rw-r--r-- | arch/powerpc/lib/checksum_64.S | 3 | ||||
-rw-r--r-- | arch/powerpc/lib/copypage_power7.S | 3 | ||||
-rw-r--r-- | arch/powerpc/lib/copyuser_power7.S | 3 | ||||
-rw-r--r-- | arch/powerpc/lib/memcpy_power7.S | 3 | ||||
-rw-r--r-- | arch/powerpc/mm/hash_low_64.S | 88 | ||||
-rw-r--r-- | arch/powerpc/platforms/cell/beat_hvCall.S | 28 | ||||
-rw-r--r-- | arch/powerpc/platforms/powernv/opal-takeover.S | 2 | ||||
-rw-r--r-- | arch/powerpc/platforms/pseries/hvCall.S | 72 |
9 files changed, 93 insertions, 114 deletions
diff --git a/arch/powerpc/include/asm/ppc_asm.h b/arch/powerpc/include/asm/ppc_asm.h index f6f67db212a7..c0c6318e7c24 100644 --- a/arch/powerpc/include/asm/ppc_asm.h +++ b/arch/powerpc/include/asm/ppc_asm.h | |||
@@ -181,6 +181,11 @@ END_FW_FTR_SECTION_IFSET(FW_FEATURE_SPLPAR) | |||
181 | #ifdef __KERNEL__ | 181 | #ifdef __KERNEL__ |
182 | #ifdef CONFIG_PPC64 | 182 | #ifdef CONFIG_PPC64 |
183 | 183 | ||
184 | #define STACKFRAMESIZE 256 | ||
185 | #define STK_REG(i) (112 + ((i)-14)*8) | ||
186 | |||
187 | #define STK_PARAM(i) (48 + ((i)-3)*8) | ||
188 | |||
184 | #define XGLUE(a,b) a##b | 189 | #define XGLUE(a,b) a##b |
185 | #define GLUE(a,b) XGLUE(a,b) | 190 | #define GLUE(a,b) XGLUE(a,b) |
186 | 191 | ||
diff --git a/arch/powerpc/lib/checksum_64.S b/arch/powerpc/lib/checksum_64.S index 7ca6871c11ee..167f72555d60 100644 --- a/arch/powerpc/lib/checksum_64.S +++ b/arch/powerpc/lib/checksum_64.S | |||
@@ -65,9 +65,6 @@ _GLOBAL(csum_tcpudp_magic) | |||
65 | srwi r3,r3,16 | 65 | srwi r3,r3,16 |
66 | blr | 66 | blr |
67 | 67 | ||
68 | #define STACKFRAMESIZE 256 | ||
69 | #define STK_REG(i) (112 + ((i)-14)*8) | ||
70 | |||
71 | /* | 68 | /* |
72 | * Computes the checksum of a memory block at buff, length len, | 69 | * Computes the checksum of a memory block at buff, length len, |
73 | * and adds in "sum" (32-bit). | 70 | * and adds in "sum" (32-bit). |
diff --git a/arch/powerpc/lib/copypage_power7.S b/arch/powerpc/lib/copypage_power7.S index a2126cebb957..0ef75bf0695c 100644 --- a/arch/powerpc/lib/copypage_power7.S +++ b/arch/powerpc/lib/copypage_power7.S | |||
@@ -20,9 +20,6 @@ | |||
20 | #include <asm/page.h> | 20 | #include <asm/page.h> |
21 | #include <asm/ppc_asm.h> | 21 | #include <asm/ppc_asm.h> |
22 | 22 | ||
23 | #define STACKFRAMESIZE 256 | ||
24 | #define STK_REG(i) (112 + ((i)-14)*8) | ||
25 | |||
26 | _GLOBAL(copypage_power7) | 23 | _GLOBAL(copypage_power7) |
27 | /* | 24 | /* |
28 | * We prefetch both the source and destination using enhanced touch | 25 | * We prefetch both the source and destination using enhanced touch |
diff --git a/arch/powerpc/lib/copyuser_power7.S b/arch/powerpc/lib/copyuser_power7.S index c8680c0cc3e4..f9ede7c6606e 100644 --- a/arch/powerpc/lib/copyuser_power7.S +++ b/arch/powerpc/lib/copyuser_power7.S | |||
@@ -19,9 +19,6 @@ | |||
19 | */ | 19 | */ |
20 | #include <asm/ppc_asm.h> | 20 | #include <asm/ppc_asm.h> |
21 | 21 | ||
22 | #define STACKFRAMESIZE 256 | ||
23 | #define STK_REG(i) (112 + ((i)-14)*8) | ||
24 | |||
25 | .macro err1 | 22 | .macro err1 |
26 | 100: | 23 | 100: |
27 | .section __ex_table,"a" | 24 | .section __ex_table,"a" |
diff --git a/arch/powerpc/lib/memcpy_power7.S b/arch/powerpc/lib/memcpy_power7.S index 04524a2a0b88..0efdc51bc716 100644 --- a/arch/powerpc/lib/memcpy_power7.S +++ b/arch/powerpc/lib/memcpy_power7.S | |||
@@ -19,9 +19,6 @@ | |||
19 | */ | 19 | */ |
20 | #include <asm/ppc_asm.h> | 20 | #include <asm/ppc_asm.h> |
21 | 21 | ||
22 | #define STACKFRAMESIZE 256 | ||
23 | #define STK_REG(i) (112 + ((i)-14)*8) | ||
24 | |||
25 | _GLOBAL(memcpy_power7) | 22 | _GLOBAL(memcpy_power7) |
26 | #ifdef CONFIG_ALTIVEC | 23 | #ifdef CONFIG_ALTIVEC |
27 | cmpldi r5,16 | 24 | cmpldi r5,16 |
diff --git a/arch/powerpc/mm/hash_low_64.S b/arch/powerpc/mm/hash_low_64.S index 113dcb0f61df..602aeb06d298 100644 --- a/arch/powerpc/mm/hash_low_64.S +++ b/arch/powerpc/mm/hash_low_64.S | |||
@@ -34,14 +34,6 @@ | |||
34 | * | CR save area (SP + 8) | 34 | * | CR save area (SP + 8) |
35 | * SP ---> +-- Back chain (SP + 0) | 35 | * SP ---> +-- Back chain (SP + 0) |
36 | */ | 36 | */ |
37 | #define STACKFRAMESIZE 256 | ||
38 | |||
39 | /* Save parameters offsets */ | ||
40 | #define STK_PARM(i) (STACKFRAMESIZE + 48 + ((i)-3)*8) | ||
41 | |||
42 | /* Save non-volatile offsets */ | ||
43 | #define STK_REG(i) (112 + ((i)-14)*8) | ||
44 | |||
45 | 37 | ||
46 | #ifndef CONFIG_PPC_64K_PAGES | 38 | #ifndef CONFIG_PPC_64K_PAGES |
47 | 39 | ||
@@ -64,9 +56,9 @@ _GLOBAL(__hash_page_4K) | |||
64 | std r0,16(r1) | 56 | std r0,16(r1) |
65 | stdu r1,-STACKFRAMESIZE(r1) | 57 | stdu r1,-STACKFRAMESIZE(r1) |
66 | /* Save all params that we need after a function call */ | 58 | /* Save all params that we need after a function call */ |
67 | std r6,STK_PARM(R6)(r1) | 59 | std r6,STK_PARAM(R6)(r1) |
68 | std r8,STK_PARM(R8)(r1) | 60 | std r8,STK_PARAM(R8)(r1) |
69 | std r9,STK_PARM(R9)(r1) | 61 | std r9,STK_PARAM(R9)(r1) |
70 | 62 | ||
71 | /* Save non-volatile registers. | 63 | /* Save non-volatile registers. |
72 | * r31 will hold "old PTE" | 64 | * r31 will hold "old PTE" |
@@ -162,7 +154,7 @@ END_FTR_SECTION(CPU_FTR_NOEXECUTE|CPU_FTR_COHERENT_ICACHE, CPU_FTR_NOEXECUTE) | |||
162 | /* At this point, r3 contains new PP bits, save them in | 154 | /* At this point, r3 contains new PP bits, save them in |
163 | * place of "access" in the param area (sic) | 155 | * place of "access" in the param area (sic) |
164 | */ | 156 | */ |
165 | std r3,STK_PARM(R4)(r1) | 157 | std r3,STK_PARAM(R4)(r1) |
166 | 158 | ||
167 | /* Get htab_hash_mask */ | 159 | /* Get htab_hash_mask */ |
168 | ld r4,htab_hash_mask@got(2) | 160 | ld r4,htab_hash_mask@got(2) |
@@ -192,11 +184,11 @@ htab_insert_pte: | |||
192 | rldicr r3,r0,3,63-3 /* r3 = (hash & mask) << 3 */ | 184 | rldicr r3,r0,3,63-3 /* r3 = (hash & mask) << 3 */ |
193 | 185 | ||
194 | /* Call ppc_md.hpte_insert */ | 186 | /* Call ppc_md.hpte_insert */ |
195 | ld r6,STK_PARM(R4)(r1) /* Retrieve new pp bits */ | 187 | ld r6,STK_PARAM(R4)(r1) /* Retrieve new pp bits */ |
196 | mr r4,r29 /* Retrieve va */ | 188 | mr r4,r29 /* Retrieve va */ |
197 | li r7,0 /* !bolted, !secondary */ | 189 | li r7,0 /* !bolted, !secondary */ |
198 | li r8,MMU_PAGE_4K /* page size */ | 190 | li r8,MMU_PAGE_4K /* page size */ |
199 | ld r9,STK_PARM(R9)(r1) /* segment size */ | 191 | ld r9,STK_PARAM(R9)(r1) /* segment size */ |
200 | _GLOBAL(htab_call_hpte_insert1) | 192 | _GLOBAL(htab_call_hpte_insert1) |
201 | bl . /* Patched by htab_finish_init() */ | 193 | bl . /* Patched by htab_finish_init() */ |
202 | cmpdi 0,r3,0 | 194 | cmpdi 0,r3,0 |
@@ -215,11 +207,11 @@ _GLOBAL(htab_call_hpte_insert1) | |||
215 | rldicr r3,r0,3,63-3 /* r0 = (~hash & mask) << 3 */ | 207 | rldicr r3,r0,3,63-3 /* r0 = (~hash & mask) << 3 */ |
216 | 208 | ||
217 | /* Call ppc_md.hpte_insert */ | 209 | /* Call ppc_md.hpte_insert */ |
218 | ld r6,STK_PARM(R4)(r1) /* Retrieve new pp bits */ | 210 | ld r6,STK_PARAM(R4)(r1) /* Retrieve new pp bits */ |
219 | mr r4,r29 /* Retrieve va */ | 211 | mr r4,r29 /* Retrieve va */ |
220 | li r7,HPTE_V_SECONDARY /* !bolted, secondary */ | 212 | li r7,HPTE_V_SECONDARY /* !bolted, secondary */ |
221 | li r8,MMU_PAGE_4K /* page size */ | 213 | li r8,MMU_PAGE_4K /* page size */ |
222 | ld r9,STK_PARM(R9)(r1) /* segment size */ | 214 | ld r9,STK_PARAM(R9)(r1) /* segment size */ |
223 | _GLOBAL(htab_call_hpte_insert2) | 215 | _GLOBAL(htab_call_hpte_insert2) |
224 | bl . /* Patched by htab_finish_init() */ | 216 | bl . /* Patched by htab_finish_init() */ |
225 | cmpdi 0,r3,0 | 217 | cmpdi 0,r3,0 |
@@ -255,7 +247,7 @@ htab_pte_insert_ok: | |||
255 | * (maybe add eieio may be good still ?) | 247 | * (maybe add eieio may be good still ?) |
256 | */ | 248 | */ |
257 | htab_write_out_pte: | 249 | htab_write_out_pte: |
258 | ld r6,STK_PARM(R6)(r1) | 250 | ld r6,STK_PARAM(R6)(r1) |
259 | std r30,0(r6) | 251 | std r30,0(r6) |
260 | li r3, 0 | 252 | li r3, 0 |
261 | htab_bail: | 253 | htab_bail: |
@@ -288,8 +280,8 @@ htab_modify_pte: | |||
288 | /* Call ppc_md.hpte_updatepp */ | 280 | /* Call ppc_md.hpte_updatepp */ |
289 | mr r5,r29 /* va */ | 281 | mr r5,r29 /* va */ |
290 | li r6,MMU_PAGE_4K /* page size */ | 282 | li r6,MMU_PAGE_4K /* page size */ |
291 | ld r7,STK_PARM(R9)(r1) /* segment size */ | 283 | ld r7,STK_PARAM(R9)(r1) /* segment size */ |
292 | ld r8,STK_PARM(R8)(r1) /* get "local" param */ | 284 | ld r8,STK_PARAM(R8)(r1) /* get "local" param */ |
293 | _GLOBAL(htab_call_hpte_updatepp) | 285 | _GLOBAL(htab_call_hpte_updatepp) |
294 | bl . /* Patched by htab_finish_init() */ | 286 | bl . /* Patched by htab_finish_init() */ |
295 | 287 | ||
@@ -312,7 +304,7 @@ htab_wrong_access: | |||
312 | 304 | ||
313 | htab_pte_insert_failure: | 305 | htab_pte_insert_failure: |
314 | /* Bail out restoring old PTE */ | 306 | /* Bail out restoring old PTE */ |
315 | ld r6,STK_PARM(R6)(r1) | 307 | ld r6,STK_PARAM(R6)(r1) |
316 | std r31,0(r6) | 308 | std r31,0(r6) |
317 | li r3,-1 | 309 | li r3,-1 |
318 | b htab_bail | 310 | b htab_bail |
@@ -340,9 +332,9 @@ _GLOBAL(__hash_page_4K) | |||
340 | std r0,16(r1) | 332 | std r0,16(r1) |
341 | stdu r1,-STACKFRAMESIZE(r1) | 333 | stdu r1,-STACKFRAMESIZE(r1) |
342 | /* Save all params that we need after a function call */ | 334 | /* Save all params that we need after a function call */ |
343 | std r6,STK_PARM(R6)(r1) | 335 | std r6,STK_PARAM(R6)(r1) |
344 | std r8,STK_PARM(R8)(r1) | 336 | std r8,STK_PARAM(R8)(r1) |
345 | std r9,STK_PARM(R9)(r1) | 337 | std r9,STK_PARAM(R9)(r1) |
346 | 338 | ||
347 | /* Save non-volatile registers. | 339 | /* Save non-volatile registers. |
348 | * r31 will hold "old PTE" | 340 | * r31 will hold "old PTE" |
@@ -452,7 +444,7 @@ END_FTR_SECTION(CPU_FTR_NOEXECUTE|CPU_FTR_COHERENT_ICACHE, CPU_FTR_NOEXECUTE) | |||
452 | /* At this point, r3 contains new PP bits, save them in | 444 | /* At this point, r3 contains new PP bits, save them in |
453 | * place of "access" in the param area (sic) | 445 | * place of "access" in the param area (sic) |
454 | */ | 446 | */ |
455 | std r3,STK_PARM(R4)(r1) | 447 | std r3,STK_PARAM(R4)(r1) |
456 | 448 | ||
457 | /* Get htab_hash_mask */ | 449 | /* Get htab_hash_mask */ |
458 | ld r4,htab_hash_mask@got(2) | 450 | ld r4,htab_hash_mask@got(2) |
@@ -473,7 +465,7 @@ END_FTR_SECTION(CPU_FTR_NOEXECUTE|CPU_FTR_COHERENT_ICACHE, CPU_FTR_NOEXECUTE) | |||
473 | andis. r0,r31,_PAGE_COMBO@h | 465 | andis. r0,r31,_PAGE_COMBO@h |
474 | beq htab_inval_old_hpte | 466 | beq htab_inval_old_hpte |
475 | 467 | ||
476 | ld r6,STK_PARM(R6)(r1) | 468 | ld r6,STK_PARAM(R6)(r1) |
477 | ori r26,r6,0x8000 /* Load the hidx mask */ | 469 | ori r26,r6,0x8000 /* Load the hidx mask */ |
478 | ld r26,0(r26) | 470 | ld r26,0(r26) |
479 | addi r5,r25,36 /* Check actual HPTE_SUB bit, this */ | 471 | addi r5,r25,36 /* Check actual HPTE_SUB bit, this */ |
@@ -495,11 +487,11 @@ htab_special_pfn: | |||
495 | rldicr r3,r0,3,63-3 /* r0 = (hash & mask) << 3 */ | 487 | rldicr r3,r0,3,63-3 /* r0 = (hash & mask) << 3 */ |
496 | 488 | ||
497 | /* Call ppc_md.hpte_insert */ | 489 | /* Call ppc_md.hpte_insert */ |
498 | ld r6,STK_PARM(R4)(r1) /* Retrieve new pp bits */ | 490 | ld r6,STK_PARAM(R4)(r1) /* Retrieve new pp bits */ |
499 | mr r4,r29 /* Retrieve va */ | 491 | mr r4,r29 /* Retrieve va */ |
500 | li r7,0 /* !bolted, !secondary */ | 492 | li r7,0 /* !bolted, !secondary */ |
501 | li r8,MMU_PAGE_4K /* page size */ | 493 | li r8,MMU_PAGE_4K /* page size */ |
502 | ld r9,STK_PARM(R9)(r1) /* segment size */ | 494 | ld r9,STK_PARAM(R9)(r1) /* segment size */ |
503 | _GLOBAL(htab_call_hpte_insert1) | 495 | _GLOBAL(htab_call_hpte_insert1) |
504 | bl . /* patched by htab_finish_init() */ | 496 | bl . /* patched by htab_finish_init() */ |
505 | cmpdi 0,r3,0 | 497 | cmpdi 0,r3,0 |
@@ -522,11 +514,11 @@ _GLOBAL(htab_call_hpte_insert1) | |||
522 | rldicr r3,r0,3,63-3 /* r0 = (~hash & mask) << 3 */ | 514 | rldicr r3,r0,3,63-3 /* r0 = (~hash & mask) << 3 */ |
523 | 515 | ||
524 | /* Call ppc_md.hpte_insert */ | 516 | /* Call ppc_md.hpte_insert */ |
525 | ld r6,STK_PARM(R4)(r1) /* Retrieve new pp bits */ | 517 | ld r6,STK_PARAM(R4)(r1) /* Retrieve new pp bits */ |
526 | mr r4,r29 /* Retrieve va */ | 518 | mr r4,r29 /* Retrieve va */ |
527 | li r7,HPTE_V_SECONDARY /* !bolted, secondary */ | 519 | li r7,HPTE_V_SECONDARY /* !bolted, secondary */ |
528 | li r8,MMU_PAGE_4K /* page size */ | 520 | li r8,MMU_PAGE_4K /* page size */ |
529 | ld r9,STK_PARM(R9)(r1) /* segment size */ | 521 | ld r9,STK_PARAM(R9)(r1) /* segment size */ |
530 | _GLOBAL(htab_call_hpte_insert2) | 522 | _GLOBAL(htab_call_hpte_insert2) |
531 | bl . /* patched by htab_finish_init() */ | 523 | bl . /* patched by htab_finish_init() */ |
532 | cmpdi 0,r3,0 | 524 | cmpdi 0,r3,0 |
@@ -559,8 +551,8 @@ htab_inval_old_hpte: | |||
559 | mr r4,r31 /* PTE.pte */ | 551 | mr r4,r31 /* PTE.pte */ |
560 | li r5,0 /* PTE.hidx */ | 552 | li r5,0 /* PTE.hidx */ |
561 | li r6,MMU_PAGE_64K /* psize */ | 553 | li r6,MMU_PAGE_64K /* psize */ |
562 | ld r7,STK_PARM(R9)(r1) /* ssize */ | 554 | ld r7,STK_PARAM(R9)(r1) /* ssize */ |
563 | ld r8,STK_PARM(R8)(r1) /* local */ | 555 | ld r8,STK_PARAM(R8)(r1) /* local */ |
564 | bl .flush_hash_page | 556 | bl .flush_hash_page |
565 | /* Clear out _PAGE_HPTE_SUB bits in the new linux PTE */ | 557 | /* Clear out _PAGE_HPTE_SUB bits in the new linux PTE */ |
566 | lis r0,_PAGE_HPTE_SUB@h | 558 | lis r0,_PAGE_HPTE_SUB@h |
@@ -576,7 +568,7 @@ htab_pte_insert_ok: | |||
576 | /* Insert slot number & secondary bit in PTE second half, | 568 | /* Insert slot number & secondary bit in PTE second half, |
577 | * clear _PAGE_BUSY and set approriate HPTE slot bit | 569 | * clear _PAGE_BUSY and set approriate HPTE slot bit |
578 | */ | 570 | */ |
579 | ld r6,STK_PARM(R6)(r1) | 571 | ld r6,STK_PARAM(R6)(r1) |
580 | li r0,_PAGE_BUSY | 572 | li r0,_PAGE_BUSY |
581 | andc r30,r30,r0 | 573 | andc r30,r30,r0 |
582 | /* HPTE SUB bit */ | 574 | /* HPTE SUB bit */ |
@@ -630,8 +622,8 @@ htab_modify_pte: | |||
630 | /* Call ppc_md.hpte_updatepp */ | 622 | /* Call ppc_md.hpte_updatepp */ |
631 | mr r5,r29 /* va */ | 623 | mr r5,r29 /* va */ |
632 | li r6,MMU_PAGE_4K /* page size */ | 624 | li r6,MMU_PAGE_4K /* page size */ |
633 | ld r7,STK_PARM(R9)(r1) /* segment size */ | 625 | ld r7,STK_PARAM(R9)(r1) /* segment size */ |
634 | ld r8,STK_PARM(R8)(r1) /* get "local" param */ | 626 | ld r8,STK_PARAM(R8)(r1) /* get "local" param */ |
635 | _GLOBAL(htab_call_hpte_updatepp) | 627 | _GLOBAL(htab_call_hpte_updatepp) |
636 | bl . /* patched by htab_finish_init() */ | 628 | bl . /* patched by htab_finish_init() */ |
637 | 629 | ||
@@ -644,7 +636,7 @@ _GLOBAL(htab_call_hpte_updatepp) | |||
644 | /* Clear the BUSY bit and Write out the PTE */ | 636 | /* Clear the BUSY bit and Write out the PTE */ |
645 | li r0,_PAGE_BUSY | 637 | li r0,_PAGE_BUSY |
646 | andc r30,r30,r0 | 638 | andc r30,r30,r0 |
647 | ld r6,STK_PARM(R6)(r1) | 639 | ld r6,STK_PARAM(R6)(r1) |
648 | std r30,0(r6) | 640 | std r30,0(r6) |
649 | li r3,0 | 641 | li r3,0 |
650 | b htab_bail | 642 | b htab_bail |
@@ -657,7 +649,7 @@ htab_wrong_access: | |||
657 | 649 | ||
658 | htab_pte_insert_failure: | 650 | htab_pte_insert_failure: |
659 | /* Bail out restoring old PTE */ | 651 | /* Bail out restoring old PTE */ |
660 | ld r6,STK_PARM(R6)(r1) | 652 | ld r6,STK_PARAM(R6)(r1) |
661 | std r31,0(r6) | 653 | std r31,0(r6) |
662 | li r3,-1 | 654 | li r3,-1 |
663 | b htab_bail | 655 | b htab_bail |
@@ -677,9 +669,9 @@ _GLOBAL(__hash_page_64K) | |||
677 | std r0,16(r1) | 669 | std r0,16(r1) |
678 | stdu r1,-STACKFRAMESIZE(r1) | 670 | stdu r1,-STACKFRAMESIZE(r1) |
679 | /* Save all params that we need after a function call */ | 671 | /* Save all params that we need after a function call */ |
680 | std r6,STK_PARM(R6)(r1) | 672 | std r6,STK_PARAM(R6)(r1) |
681 | std r8,STK_PARM(R8)(r1) | 673 | std r8,STK_PARAM(R8)(r1) |
682 | std r9,STK_PARM(R9)(r1) | 674 | std r9,STK_PARAM(R9)(r1) |
683 | 675 | ||
684 | /* Save non-volatile registers. | 676 | /* Save non-volatile registers. |
685 | * r31 will hold "old PTE" | 677 | * r31 will hold "old PTE" |
@@ -780,7 +772,7 @@ END_FTR_SECTION(CPU_FTR_NOEXECUTE|CPU_FTR_COHERENT_ICACHE, CPU_FTR_NOEXECUTE) | |||
780 | /* At this point, r3 contains new PP bits, save them in | 772 | /* At this point, r3 contains new PP bits, save them in |
781 | * place of "access" in the param area (sic) | 773 | * place of "access" in the param area (sic) |
782 | */ | 774 | */ |
783 | std r3,STK_PARM(R4)(r1) | 775 | std r3,STK_PARAM(R4)(r1) |
784 | 776 | ||
785 | /* Get htab_hash_mask */ | 777 | /* Get htab_hash_mask */ |
786 | ld r4,htab_hash_mask@got(2) | 778 | ld r4,htab_hash_mask@got(2) |
@@ -813,11 +805,11 @@ ht64_insert_pte: | |||
813 | rldicr r3,r0,3,63-3 /* r0 = (hash & mask) << 3 */ | 805 | rldicr r3,r0,3,63-3 /* r0 = (hash & mask) << 3 */ |
814 | 806 | ||
815 | /* Call ppc_md.hpte_insert */ | 807 | /* Call ppc_md.hpte_insert */ |
816 | ld r6,STK_PARM(R4)(r1) /* Retrieve new pp bits */ | 808 | ld r6,STK_PARAM(R4)(r1) /* Retrieve new pp bits */ |
817 | mr r4,r29 /* Retrieve va */ | 809 | mr r4,r29 /* Retrieve va */ |
818 | li r7,0 /* !bolted, !secondary */ | 810 | li r7,0 /* !bolted, !secondary */ |
819 | li r8,MMU_PAGE_64K | 811 | li r8,MMU_PAGE_64K |
820 | ld r9,STK_PARM(R9)(r1) /* segment size */ | 812 | ld r9,STK_PARAM(R9)(r1) /* segment size */ |
821 | _GLOBAL(ht64_call_hpte_insert1) | 813 | _GLOBAL(ht64_call_hpte_insert1) |
822 | bl . /* patched by htab_finish_init() */ | 814 | bl . /* patched by htab_finish_init() */ |
823 | cmpdi 0,r3,0 | 815 | cmpdi 0,r3,0 |
@@ -836,11 +828,11 @@ _GLOBAL(ht64_call_hpte_insert1) | |||
836 | rldicr r3,r0,3,63-3 /* r0 = (~hash & mask) << 3 */ | 828 | rldicr r3,r0,3,63-3 /* r0 = (~hash & mask) << 3 */ |
837 | 829 | ||
838 | /* Call ppc_md.hpte_insert */ | 830 | /* Call ppc_md.hpte_insert */ |
839 | ld r6,STK_PARM(R4)(r1) /* Retrieve new pp bits */ | 831 | ld r6,STK_PARAM(R4)(r1) /* Retrieve new pp bits */ |
840 | mr r4,r29 /* Retrieve va */ | 832 | mr r4,r29 /* Retrieve va */ |
841 | li r7,HPTE_V_SECONDARY /* !bolted, secondary */ | 833 | li r7,HPTE_V_SECONDARY /* !bolted, secondary */ |
842 | li r8,MMU_PAGE_64K | 834 | li r8,MMU_PAGE_64K |
843 | ld r9,STK_PARM(R9)(r1) /* segment size */ | 835 | ld r9,STK_PARAM(R9)(r1) /* segment size */ |
844 | _GLOBAL(ht64_call_hpte_insert2) | 836 | _GLOBAL(ht64_call_hpte_insert2) |
845 | bl . /* patched by htab_finish_init() */ | 837 | bl . /* patched by htab_finish_init() */ |
846 | cmpdi 0,r3,0 | 838 | cmpdi 0,r3,0 |
@@ -876,7 +868,7 @@ ht64_pte_insert_ok: | |||
876 | * (maybe add eieio may be good still ?) | 868 | * (maybe add eieio may be good still ?) |
877 | */ | 869 | */ |
878 | ht64_write_out_pte: | 870 | ht64_write_out_pte: |
879 | ld r6,STK_PARM(R6)(r1) | 871 | ld r6,STK_PARAM(R6)(r1) |
880 | std r30,0(r6) | 872 | std r30,0(r6) |
881 | li r3, 0 | 873 | li r3, 0 |
882 | ht64_bail: | 874 | ht64_bail: |
@@ -909,8 +901,8 @@ ht64_modify_pte: | |||
909 | /* Call ppc_md.hpte_updatepp */ | 901 | /* Call ppc_md.hpte_updatepp */ |
910 | mr r5,r29 /* va */ | 902 | mr r5,r29 /* va */ |
911 | li r6,MMU_PAGE_64K | 903 | li r6,MMU_PAGE_64K |
912 | ld r7,STK_PARM(R9)(r1) /* segment size */ | 904 | ld r7,STK_PARAM(R9)(r1) /* segment size */ |
913 | ld r8,STK_PARM(R8)(r1) /* get "local" param */ | 905 | ld r8,STK_PARAM(R8)(r1) /* get "local" param */ |
914 | _GLOBAL(ht64_call_hpte_updatepp) | 906 | _GLOBAL(ht64_call_hpte_updatepp) |
915 | bl . /* patched by htab_finish_init() */ | 907 | bl . /* patched by htab_finish_init() */ |
916 | 908 | ||
@@ -933,7 +925,7 @@ ht64_wrong_access: | |||
933 | 925 | ||
934 | ht64_pte_insert_failure: | 926 | ht64_pte_insert_failure: |
935 | /* Bail out restoring old PTE */ | 927 | /* Bail out restoring old PTE */ |
936 | ld r6,STK_PARM(R6)(r1) | 928 | ld r6,STK_PARAM(R6)(r1) |
937 | std r31,0(r6) | 929 | std r31,0(r6) |
938 | li r3,-1 | 930 | li r3,-1 |
939 | b ht64_bail | 931 | b ht64_bail |
diff --git a/arch/powerpc/platforms/cell/beat_hvCall.S b/arch/powerpc/platforms/cell/beat_hvCall.S index 079165eff3a2..96c801907126 100644 --- a/arch/powerpc/platforms/cell/beat_hvCall.S +++ b/arch/powerpc/platforms/cell/beat_hvCall.S | |||
@@ -22,8 +22,6 @@ | |||
22 | 22 | ||
23 | #include <asm/ppc_asm.h> | 23 | #include <asm/ppc_asm.h> |
24 | 24 | ||
25 | #define STK_PARM(i) (48 + ((i)-3)*8) | ||
26 | |||
27 | /* Not implemented on Beat, now */ | 25 | /* Not implemented on Beat, now */ |
28 | #define HCALL_INST_PRECALL | 26 | #define HCALL_INST_PRECALL |
29 | #define HCALL_INST_POSTCALL | 27 | #define HCALL_INST_POSTCALL |
@@ -74,7 +72,7 @@ _GLOBAL(beat_hcall_norets8) | |||
74 | mr r6,r7 | 72 | mr r6,r7 |
75 | mr r7,r8 | 73 | mr r7,r8 |
76 | mr r8,r9 | 74 | mr r8,r9 |
77 | ld r10,STK_PARM(R10)(r1) | 75 | ld r10,STK_PARAM(R10)(r1) |
78 | 76 | ||
79 | HVSC /* invoke the hypervisor */ | 77 | HVSC /* invoke the hypervisor */ |
80 | 78 | ||
@@ -94,7 +92,7 @@ _GLOBAL(beat_hcall1) | |||
94 | 92 | ||
95 | HCALL_INST_PRECALL | 93 | HCALL_INST_PRECALL |
96 | 94 | ||
97 | std r4,STK_PARM(R4)(r1) /* save ret buffer */ | 95 | std r4,STK_PARAM(R4)(r1) /* save ret buffer */ |
98 | 96 | ||
99 | mr r11,r3 | 97 | mr r11,r3 |
100 | mr r3,r5 | 98 | mr r3,r5 |
@@ -108,7 +106,7 @@ _GLOBAL(beat_hcall1) | |||
108 | 106 | ||
109 | HCALL_INST_POSTCALL | 107 | HCALL_INST_POSTCALL |
110 | 108 | ||
111 | ld r12,STK_PARM(R4)(r1) | 109 | ld r12,STK_PARAM(R4)(r1) |
112 | std r4, 0(r12) | 110 | std r4, 0(r12) |
113 | 111 | ||
114 | lwz r0,8(r1) | 112 | lwz r0,8(r1) |
@@ -125,7 +123,7 @@ _GLOBAL(beat_hcall2) | |||
125 | 123 | ||
126 | HCALL_INST_PRECALL | 124 | HCALL_INST_PRECALL |
127 | 125 | ||
128 | std r4,STK_PARM(R4)(r1) /* save ret buffer */ | 126 | std r4,STK_PARAM(R4)(r1) /* save ret buffer */ |
129 | 127 | ||
130 | mr r11,r3 | 128 | mr r11,r3 |
131 | mr r3,r5 | 129 | mr r3,r5 |
@@ -139,7 +137,7 @@ _GLOBAL(beat_hcall2) | |||
139 | 137 | ||
140 | HCALL_INST_POSTCALL | 138 | HCALL_INST_POSTCALL |
141 | 139 | ||
142 | ld r12,STK_PARM(R4)(r1) | 140 | ld r12,STK_PARAM(R4)(r1) |
143 | std r4, 0(r12) | 141 | std r4, 0(r12) |
144 | std r5, 8(r12) | 142 | std r5, 8(r12) |
145 | 143 | ||
@@ -157,7 +155,7 @@ _GLOBAL(beat_hcall3) | |||
157 | 155 | ||
158 | HCALL_INST_PRECALL | 156 | HCALL_INST_PRECALL |
159 | 157 | ||
160 | std r4,STK_PARM(R4)(r1) /* save ret buffer */ | 158 | std r4,STK_PARAM(R4)(r1) /* save ret buffer */ |
161 | 159 | ||
162 | mr r11,r3 | 160 | mr r11,r3 |
163 | mr r3,r5 | 161 | mr r3,r5 |
@@ -171,7 +169,7 @@ _GLOBAL(beat_hcall3) | |||
171 | 169 | ||
172 | HCALL_INST_POSTCALL | 170 | HCALL_INST_POSTCALL |
173 | 171 | ||
174 | ld r12,STK_PARM(R4)(r1) | 172 | ld r12,STK_PARAM(R4)(r1) |
175 | std r4, 0(r12) | 173 | std r4, 0(r12) |
176 | std r5, 8(r12) | 174 | std r5, 8(r12) |
177 | std r6, 16(r12) | 175 | std r6, 16(r12) |
@@ -190,7 +188,7 @@ _GLOBAL(beat_hcall4) | |||
190 | 188 | ||
191 | HCALL_INST_PRECALL | 189 | HCALL_INST_PRECALL |
192 | 190 | ||
193 | std r4,STK_PARM(R4)(r1) /* save ret buffer */ | 191 | std r4,STK_PARAM(R4)(r1) /* save ret buffer */ |
194 | 192 | ||
195 | mr r11,r3 | 193 | mr r11,r3 |
196 | mr r3,r5 | 194 | mr r3,r5 |
@@ -204,7 +202,7 @@ _GLOBAL(beat_hcall4) | |||
204 | 202 | ||
205 | HCALL_INST_POSTCALL | 203 | HCALL_INST_POSTCALL |
206 | 204 | ||
207 | ld r12,STK_PARM(R4)(r1) | 205 | ld r12,STK_PARAM(R4)(r1) |
208 | std r4, 0(r12) | 206 | std r4, 0(r12) |
209 | std r5, 8(r12) | 207 | std r5, 8(r12) |
210 | std r6, 16(r12) | 208 | std r6, 16(r12) |
@@ -224,7 +222,7 @@ _GLOBAL(beat_hcall5) | |||
224 | 222 | ||
225 | HCALL_INST_PRECALL | 223 | HCALL_INST_PRECALL |
226 | 224 | ||
227 | std r4,STK_PARM(R4)(r1) /* save ret buffer */ | 225 | std r4,STK_PARAM(R4)(r1) /* save ret buffer */ |
228 | 226 | ||
229 | mr r11,r3 | 227 | mr r11,r3 |
230 | mr r3,r5 | 228 | mr r3,r5 |
@@ -238,7 +236,7 @@ _GLOBAL(beat_hcall5) | |||
238 | 236 | ||
239 | HCALL_INST_POSTCALL | 237 | HCALL_INST_POSTCALL |
240 | 238 | ||
241 | ld r12,STK_PARM(R4)(r1) | 239 | ld r12,STK_PARAM(R4)(r1) |
242 | std r4, 0(r12) | 240 | std r4, 0(r12) |
243 | std r5, 8(r12) | 241 | std r5, 8(r12) |
244 | std r6, 16(r12) | 242 | std r6, 16(r12) |
@@ -259,7 +257,7 @@ _GLOBAL(beat_hcall6) | |||
259 | 257 | ||
260 | HCALL_INST_PRECALL | 258 | HCALL_INST_PRECALL |
261 | 259 | ||
262 | std r4,STK_PARM(R4)(r1) /* save ret buffer */ | 260 | std r4,STK_PARAM(R4)(r1) /* save ret buffer */ |
263 | 261 | ||
264 | mr r11,r3 | 262 | mr r11,r3 |
265 | mr r3,r5 | 263 | mr r3,r5 |
@@ -273,7 +271,7 @@ _GLOBAL(beat_hcall6) | |||
273 | 271 | ||
274 | HCALL_INST_POSTCALL | 272 | HCALL_INST_POSTCALL |
275 | 273 | ||
276 | ld r12,STK_PARM(R4)(r1) | 274 | ld r12,STK_PARAM(R4)(r1) |
277 | std r4, 0(r12) | 275 | std r4, 0(r12) |
278 | std r5, 8(r12) | 276 | std r5, 8(r12) |
279 | std r6, 16(r12) | 277 | std r6, 16(r12) |
diff --git a/arch/powerpc/platforms/powernv/opal-takeover.S b/arch/powerpc/platforms/powernv/opal-takeover.S index 1bb7768abe4c..3cd262897c27 100644 --- a/arch/powerpc/platforms/powernv/opal-takeover.S +++ b/arch/powerpc/platforms/powernv/opal-takeover.S | |||
@@ -14,8 +14,6 @@ | |||
14 | #include <asm/asm-offsets.h> | 14 | #include <asm/asm-offsets.h> |
15 | #include <asm/opal.h> | 15 | #include <asm/opal.h> |
16 | 16 | ||
17 | #define STK_PARAM(i) (48 + ((i)-3)*8) | ||
18 | |||
19 | #define H_HAL_TAKEOVER 0x5124 | 17 | #define H_HAL_TAKEOVER 0x5124 |
20 | #define H_HAL_TAKEOVER_QUERY_MAGIC -1 | 18 | #define H_HAL_TAKEOVER_QUERY_MAGIC -1 |
21 | 19 | ||
diff --git a/arch/powerpc/platforms/pseries/hvCall.S b/arch/powerpc/platforms/pseries/hvCall.S index 04b8efdee5b7..444fe7759e55 100644 --- a/arch/powerpc/platforms/pseries/hvCall.S +++ b/arch/powerpc/platforms/pseries/hvCall.S | |||
@@ -13,8 +13,6 @@ | |||
13 | #include <asm/asm-offsets.h> | 13 | #include <asm/asm-offsets.h> |
14 | #include <asm/ptrace.h> | 14 | #include <asm/ptrace.h> |
15 | 15 | ||
16 | #define STK_PARM(i) (48 + ((i)-3)*8) | ||
17 | |||
18 | #ifdef CONFIG_TRACEPOINTS | 16 | #ifdef CONFIG_TRACEPOINTS |
19 | 17 | ||
20 | .section ".toc","aw" | 18 | .section ".toc","aw" |
@@ -26,7 +24,7 @@ hcall_tracepoint_refcount: | |||
26 | .section ".text" | 24 | .section ".text" |
27 | 25 | ||
28 | /* | 26 | /* |
29 | * precall must preserve all registers. use unused STK_PARM() | 27 | * precall must preserve all registers. use unused STK_PARAM() |
30 | * areas to save snapshots and opcode. We branch around this | 28 | * areas to save snapshots and opcode. We branch around this |
31 | * in early init (eg when populating the MMU hashtable) by using an | 29 | * in early init (eg when populating the MMU hashtable) by using an |
32 | * unconditional cpu feature. | 30 | * unconditional cpu feature. |
@@ -40,28 +38,28 @@ END_FTR_SECTION(0, 1); \ | |||
40 | cmpdi r12,0; \ | 38 | cmpdi r12,0; \ |
41 | beq+ 1f; \ | 39 | beq+ 1f; \ |
42 | mflr r0; \ | 40 | mflr r0; \ |
43 | std r3,STK_PARM(R3)(r1); \ | 41 | std r3,STK_PARAM(R3)(r1); \ |
44 | std r4,STK_PARM(R4)(r1); \ | 42 | std r4,STK_PARAM(R4)(r1); \ |
45 | std r5,STK_PARM(R5)(r1); \ | 43 | std r5,STK_PARAM(R5)(r1); \ |
46 | std r6,STK_PARM(R6)(r1); \ | 44 | std r6,STK_PARAM(R6)(r1); \ |
47 | std r7,STK_PARM(R7)(r1); \ | 45 | std r7,STK_PARAM(R7)(r1); \ |
48 | std r8,STK_PARM(R8)(r1); \ | 46 | std r8,STK_PARAM(R8)(r1); \ |
49 | std r9,STK_PARM(R9)(r1); \ | 47 | std r9,STK_PARAM(R9)(r1); \ |
50 | std r10,STK_PARM(R10)(r1); \ | 48 | std r10,STK_PARAM(R10)(r1); \ |
51 | std r0,16(r1); \ | 49 | std r0,16(r1); \ |
52 | addi r4,r1,STK_PARM(FIRST_REG); \ | 50 | addi r4,r1,STK_PARAM(FIRST_REG); \ |
53 | stdu r1,-STACK_FRAME_OVERHEAD(r1); \ | 51 | stdu r1,-STACK_FRAME_OVERHEAD(r1); \ |
54 | bl .__trace_hcall_entry; \ | 52 | bl .__trace_hcall_entry; \ |
55 | addi r1,r1,STACK_FRAME_OVERHEAD; \ | 53 | addi r1,r1,STACK_FRAME_OVERHEAD; \ |
56 | ld r0,16(r1); \ | 54 | ld r0,16(r1); \ |
57 | ld r3,STK_PARM(R3)(r1); \ | 55 | ld r3,STK_PARAM(R3)(r1); \ |
58 | ld r4,STK_PARM(R4)(r1); \ | 56 | ld r4,STK_PARAM(R4)(r1); \ |
59 | ld r5,STK_PARM(R5)(r1); \ | 57 | ld r5,STK_PARAM(R5)(r1); \ |
60 | ld r6,STK_PARM(R6)(r1); \ | 58 | ld r6,STK_PARAM(R6)(r1); \ |
61 | ld r7,STK_PARM(R7)(r1); \ | 59 | ld r7,STK_PARAM(R7)(r1); \ |
62 | ld r8,STK_PARM(R8)(r1); \ | 60 | ld r8,STK_PARAM(R8)(r1); \ |
63 | ld r9,STK_PARM(R9)(r1); \ | 61 | ld r9,STK_PARAM(R9)(r1); \ |
64 | ld r10,STK_PARM(R10)(r1); \ | 62 | ld r10,STK_PARAM(R10)(r1); \ |
65 | mtlr r0; \ | 63 | mtlr r0; \ |
66 | 1: | 64 | 1: |
67 | 65 | ||
@@ -79,8 +77,8 @@ END_FTR_SECTION(0, 1); \ | |||
79 | cmpdi r12,0; \ | 77 | cmpdi r12,0; \ |
80 | beq+ 1f; \ | 78 | beq+ 1f; \ |
81 | mflr r0; \ | 79 | mflr r0; \ |
82 | ld r6,STK_PARM(R3)(r1); \ | 80 | ld r6,STK_PARAM(R3)(r1); \ |
83 | std r3,STK_PARM(R3)(r1); \ | 81 | std r3,STK_PARAM(R3)(r1); \ |
84 | mr r4,r3; \ | 82 | mr r4,r3; \ |
85 | mr r3,r6; \ | 83 | mr r3,r6; \ |
86 | std r0,16(r1); \ | 84 | std r0,16(r1); \ |
@@ -88,7 +86,7 @@ END_FTR_SECTION(0, 1); \ | |||
88 | bl .__trace_hcall_exit; \ | 86 | bl .__trace_hcall_exit; \ |
89 | addi r1,r1,STACK_FRAME_OVERHEAD; \ | 87 | addi r1,r1,STACK_FRAME_OVERHEAD; \ |
90 | ld r0,16(r1); \ | 88 | ld r0,16(r1); \ |
91 | ld r3,STK_PARM(R3)(r1); \ | 89 | ld r3,STK_PARAM(R3)(r1); \ |
92 | mtlr r0; \ | 90 | mtlr r0; \ |
93 | 1: | 91 | 1: |
94 | 92 | ||
@@ -132,7 +130,7 @@ _GLOBAL(plpar_hcall) | |||
132 | 130 | ||
133 | HCALL_INST_PRECALL(R5) | 131 | HCALL_INST_PRECALL(R5) |
134 | 132 | ||
135 | std r4,STK_PARM(R4)(r1) /* Save ret buffer */ | 133 | std r4,STK_PARAM(R4)(r1) /* Save ret buffer */ |
136 | 134 | ||
137 | mr r4,r5 | 135 | mr r4,r5 |
138 | mr r5,r6 | 136 | mr r5,r6 |
@@ -143,7 +141,7 @@ _GLOBAL(plpar_hcall) | |||
143 | 141 | ||
144 | HVSC /* invoke the hypervisor */ | 142 | HVSC /* invoke the hypervisor */ |
145 | 143 | ||
146 | ld r12,STK_PARM(R4)(r1) | 144 | ld r12,STK_PARAM(R4)(r1) |
147 | std r4, 0(r12) | 145 | std r4, 0(r12) |
148 | std r5, 8(r12) | 146 | std r5, 8(r12) |
149 | std r6, 16(r12) | 147 | std r6, 16(r12) |
@@ -168,7 +166,7 @@ _GLOBAL(plpar_hcall_raw) | |||
168 | mfcr r0 | 166 | mfcr r0 |
169 | stw r0,8(r1) | 167 | stw r0,8(r1) |
170 | 168 | ||
171 | std r4,STK_PARM(R4)(r1) /* Save ret buffer */ | 169 | std r4,STK_PARAM(R4)(r1) /* Save ret buffer */ |
172 | 170 | ||
173 | mr r4,r5 | 171 | mr r4,r5 |
174 | mr r5,r6 | 172 | mr r5,r6 |
@@ -179,7 +177,7 @@ _GLOBAL(plpar_hcall_raw) | |||
179 | 177 | ||
180 | HVSC /* invoke the hypervisor */ | 178 | HVSC /* invoke the hypervisor */ |
181 | 179 | ||
182 | ld r12,STK_PARM(R4)(r1) | 180 | ld r12,STK_PARAM(R4)(r1) |
183 | std r4, 0(r12) | 181 | std r4, 0(r12) |
184 | std r5, 8(r12) | 182 | std r5, 8(r12) |
185 | std r6, 16(r12) | 183 | std r6, 16(r12) |
@@ -198,7 +196,7 @@ _GLOBAL(plpar_hcall9) | |||
198 | 196 | ||
199 | HCALL_INST_PRECALL(R5) | 197 | HCALL_INST_PRECALL(R5) |
200 | 198 | ||
201 | std r4,STK_PARM(R4)(r1) /* Save ret buffer */ | 199 | std r4,STK_PARAM(R4)(r1) /* Save ret buffer */ |
202 | 200 | ||
203 | mr r4,r5 | 201 | mr r4,r5 |
204 | mr r5,r6 | 202 | mr r5,r6 |
@@ -206,14 +204,14 @@ _GLOBAL(plpar_hcall9) | |||
206 | mr r7,r8 | 204 | mr r7,r8 |
207 | mr r8,r9 | 205 | mr r8,r9 |
208 | mr r9,r10 | 206 | mr r9,r10 |
209 | ld r10,STK_PARM(R11)(r1) /* put arg7 in R10 */ | 207 | ld r10,STK_PARAM(R11)(r1) /* put arg7 in R10 */ |
210 | ld r11,STK_PARM(R12)(r1) /* put arg8 in R11 */ | 208 | ld r11,STK_PARAM(R12)(r1) /* put arg8 in R11 */ |
211 | ld r12,STK_PARM(R13)(r1) /* put arg9 in R12 */ | 209 | ld r12,STK_PARAM(R13)(r1) /* put arg9 in R12 */ |
212 | 210 | ||
213 | HVSC /* invoke the hypervisor */ | 211 | HVSC /* invoke the hypervisor */ |
214 | 212 | ||
215 | mr r0,r12 | 213 | mr r0,r12 |
216 | ld r12,STK_PARM(R4)(r1) | 214 | ld r12,STK_PARAM(R4)(r1) |
217 | std r4, 0(r12) | 215 | std r4, 0(r12) |
218 | std r5, 8(r12) | 216 | std r5, 8(r12) |
219 | std r6, 16(r12) | 217 | std r6, 16(r12) |
@@ -238,7 +236,7 @@ _GLOBAL(plpar_hcall9_raw) | |||
238 | mfcr r0 | 236 | mfcr r0 |
239 | stw r0,8(r1) | 237 | stw r0,8(r1) |
240 | 238 | ||
241 | std r4,STK_PARM(R4)(r1) /* Save ret buffer */ | 239 | std r4,STK_PARAM(R4)(r1) /* Save ret buffer */ |
242 | 240 | ||
243 | mr r4,r5 | 241 | mr r4,r5 |
244 | mr r5,r6 | 242 | mr r5,r6 |
@@ -246,14 +244,14 @@ _GLOBAL(plpar_hcall9_raw) | |||
246 | mr r7,r8 | 244 | mr r7,r8 |
247 | mr r8,r9 | 245 | mr r8,r9 |
248 | mr r9,r10 | 246 | mr r9,r10 |
249 | ld r10,STK_PARM(R11)(r1) /* put arg7 in R10 */ | 247 | ld r10,STK_PARAM(R11)(r1) /* put arg7 in R10 */ |
250 | ld r11,STK_PARM(R12)(r1) /* put arg8 in R11 */ | 248 | ld r11,STK_PARAM(R12)(r1) /* put arg8 in R11 */ |
251 | ld r12,STK_PARM(R13)(r1) /* put arg9 in R12 */ | 249 | ld r12,STK_PARAM(R13)(r1) /* put arg9 in R12 */ |
252 | 250 | ||
253 | HVSC /* invoke the hypervisor */ | 251 | HVSC /* invoke the hypervisor */ |
254 | 252 | ||
255 | mr r0,r12 | 253 | mr r0,r12 |
256 | ld r12,STK_PARM(R4)(r1) | 254 | ld r12,STK_PARAM(R4)(r1) |
257 | std r4, 0(r12) | 255 | std r4, 0(r12) |
258 | std r5, 8(r12) | 256 | std r5, 8(r12) |
259 | std r6, 16(r12) | 257 | std r6, 16(r12) |