26c26
< * $FreeBSD: head/sys/powerpc/booke/locore.S 279623 2015-03-05 05:53:08Z nwhitehorn $
---
> * $FreeBSD: head/sys/powerpc/booke/locore.S 279750 2015-03-07 20:14:46Z nwhitehorn $
208,209c208,212
< lis %r1, tmpstack@ha
< addi %r1, %r1, tmpstack@l
---
> bl 1f
> .long tmpstack-.
> 1: mflr %r1
> lwz %r2,0(%r1)
> add %r1,%r1,%r2
212a216,230
> * Relocate kernel
> */
> bl 1f
> .long _DYNAMIC-.
> .long _GLOBAL_OFFSET_TABLE_-.
> 1: mflr %r5
> lwz %r3,0(%r5) /* _DYNAMIC in %r3 */
> add %r3,%r3,%r5
> lwz %r4,4(%r5) /* GOT pointer */
> add %r4,%r4,%r5
> lwz %r4,4(%r4) /* got[0] is _DYNAMIC link addr */
> subf %r4,%r4,%r3 /* subtract to calculate relocbase */
> bl elf_reloc_self
>
> /*
341,342d358
< lis %r5, __boot_page@ha
< ori %r5, %r5, __boot_page@l
344c360,365
< 5: mflr %r3
---
> .long __boot_page-.
> 5: mflr %r5
> lwz %r3,0(%r3)
> add %r5,%r5,%r3 /* __boot_page in r5 */
> bl 6f
> 6: mflr %r3
368,369c389,393
< lis %r1, tmpstack@ha
< addi %r1, %r1, tmpstack@l
---
> bl 1f
> .long tmpstack-.
> 1: mflr %r1
> lwz %r2,0(%r1)
> add %r1,%r1,%r2
380,381c404,408
< lis %r3, ap_pcpu@h
< ori %r3, %r3, ap_pcpu@l
---
> bl 1f
> .long ap_pcpu-.
> 1: mflr %r4
> lwz %r3, 0(%r4)
> add %r3, %r3, %r4
546,547c573
< * Global vars tlb0_ways, tlb0_entries_per_way are assumed to have been set up
< * correctly (by tlb0_get_tlbconf()).
---
> * void tid_flush(tlbtid_t tid, int tlb0_ways, int tlb0_entries_per_way);
548a575
> * XXX: why isn't this in C?
554,563d580
< /* Number of TLB0 ways */
< lis %r4, tlb0_ways@h
< ori %r4, %r4, tlb0_ways@l
< lwz %r4, 0(%r4)
<
< /* Number of entries / way */
< lis %r5, tlb0_entries_per_way@h
< ori %r5, %r5, tlb0_entries_per_way@l
< lwz %r5, 0(%r5)
<
720a738,742
> .align 3
> GLOBAL(__startkernel)
> .long begin
> GLOBAL(__endkernel)
> .long end
< * $FreeBSD: head/sys/powerpc/booke/locore.S 279623 2015-03-05 05:53:08Z nwhitehorn $
---
> * $FreeBSD: head/sys/powerpc/booke/locore.S 279750 2015-03-07 20:14:46Z nwhitehorn $
208,209c208,212
< lis %r1, tmpstack@ha
< addi %r1, %r1, tmpstack@l
---
> bl 1f
> .long tmpstack-.
> 1: mflr %r1
> lwz %r2,0(%r1)
> add %r1,%r1,%r2
212a216,230
> * Relocate kernel
> */
> bl 1f
> .long _DYNAMIC-.
> .long _GLOBAL_OFFSET_TABLE_-.
> 1: mflr %r5
> lwz %r3,0(%r5) /* _DYNAMIC in %r3 */
> add %r3,%r3,%r5
> lwz %r4,4(%r5) /* GOT pointer */
> add %r4,%r4,%r5
> lwz %r4,4(%r4) /* got[0] is _DYNAMIC link addr */
> subf %r4,%r4,%r3 /* subtract to calculate relocbase */
> bl elf_reloc_self
>
> /*
341,342d358
< lis %r5, __boot_page@ha
< ori %r5, %r5, __boot_page@l
344c360,365
< 5: mflr %r3
---
> .long __boot_page-.
> 5: mflr %r5
> lwz %r3,0(%r3)
> add %r5,%r5,%r3 /* __boot_page in r5 */
> bl 6f
> 6: mflr %r3
368,369c389,393
< lis %r1, tmpstack@ha
< addi %r1, %r1, tmpstack@l
---
> bl 1f
> .long tmpstack-.
> 1: mflr %r1
> lwz %r2,0(%r1)
> add %r1,%r1,%r2
380,381c404,408
< lis %r3, ap_pcpu@h
< ori %r3, %r3, ap_pcpu@l
---
> bl 1f
> .long ap_pcpu-.
> 1: mflr %r4
> lwz %r3, 0(%r4)
> add %r3, %r3, %r4
546,547c573
< * Global vars tlb0_ways, tlb0_entries_per_way are assumed to have been set up
< * correctly (by tlb0_get_tlbconf()).
---
> * void tid_flush(tlbtid_t tid, int tlb0_ways, int tlb0_entries_per_way);
548a575
> * XXX: why isn't this in C?
554,563d580
< /* Number of TLB0 ways */
< lis %r4, tlb0_ways@h
< ori %r4, %r4, tlb0_ways@l
< lwz %r4, 0(%r4)
<
< /* Number of entries / way */
< lis %r5, tlb0_entries_per_way@h
< ori %r5, %r5, tlb0_entries_per_way@l
< lwz %r5, 0(%r5)
<
720a738,742
> .align 3
> GLOBAL(__startkernel)
> .long begin
> GLOBAL(__endkernel)
> .long end