Properly pass argc, argc, and environp to boot_card.

This commit is contained in:
Joel Sherrill
2000-08-02 16:30:57 +00:00
parent f3d9df08d5
commit 15c48f4c67
11 changed files with 64 additions and 7 deletions

View File

@@ -106,6 +106,10 @@ _start:
stw r0,0(sp) /* clear back chain */
stwu sp,-56(sp) /* push another stack frame */
lis r5,environ@ha
la r5,environ@l(r5) /* environp */
li r4, 0 /* argv */
li r3, 0 /* argc */
/* Let her rip */
bl FUNC_NAME(boot_card)
@@ -114,3 +118,5 @@ _start:
trap
.Lstart:
.size _start,.Lstart-_start
.comm environ,4,4

View File

@@ -128,10 +128,10 @@ cpy_b: lwz r5, 0(r3) /* In with the old ... */
addi r9, r9, 0x0007
mtspr 0x9e, r9
/* clear argc and argv */
xor r3, r3, r3
xor r4, r4, r4
lis r5,environ@ha
la r5,environ@l(r5) /* environp */
li r4, 0 /* argv */
li r3, 0 /* argc */
.extern SYM (boot_card)
bl SYM (boot_card) /* call the first C routine */
loopstop:
@@ -154,3 +154,5 @@ clear_bss:
bdnz clear_bss /* dec counter and loop */
blr /* return */
.comm environ,4,4

View File

@@ -116,6 +116,10 @@ stack_top:
stw r3, 4(r1)
stw r3, 8(r1)
stw r3, 12(r1)
lis r5,environ@ha
la r5,environ@l(r5) /* environp */
li r4, 0 /* argv */
li r3, 0 /* argc */
.extern SYM (boot_card)
b SYM (boot_card) /* call the first C routine */
@@ -142,3 +146,5 @@ clear_bss:
#if PPC_ABI == PPC_ABI_POWEROPEN
DESCRIPTOR (startup)
#endif
.comm environ,4,4

View File

@@ -403,6 +403,10 @@ dcinvlp:
stw r3, 4(r1)
stw r3, 8(r1)
stw r3, 12(r1)
lis r5,environ@ha
la r5,environ@l(r5) /* environp */
li r4, 0 /* argv */
li r3, 0 /* argc */
.extern SYM (boot_card)
b SYM (boot_card) /* call the first C routine */
@@ -466,4 +470,6 @@ ramaccfx:
#endif
.comm environ,4,4

View File

@@ -270,6 +270,8 @@ spin:
bl bssclr
nop
lis 5,environ@ha
la 5,environ@l(5) /* environp */
/* clear argc and argv */
xor r3, r3, r3
xor r4, r4, r4
@@ -381,3 +383,5 @@ initregs:
blr /* return */
.L_text_e:
.comm environ,4,4

View File

@@ -223,6 +223,10 @@ bss_addr:
stw r3, 4(r1)
stw r3, 8(r1)
stw r3, 12(r1)
lis r5,environ@ha
la r5,environ@l(r5) /* environp */
li r4, 0 /* argv */
li r3, 0 /* argc */
.extern SYM (boot_card)
b SYM (boot_card) /* call the first C routine */
@@ -249,3 +253,5 @@ clear_bss:
#if PPC_ABI == PPC_ABI_POWEROPEN
DESCRIPTOR (startup)
#endif
.comm environ,4,4

View File

@@ -245,6 +245,10 @@ bss_addr:
stw r3, 4(r1)
stw r3, 8(r1)
stw r3, 12(r1)
lis r5,environ@ha
la r5,environ@l(r5) /* environp */
li r4, 0 /* argv */
li r3, 0 /* argc */
.extern SYM (boot_card)
b SYM (boot_card) /* call the first C routine */
@@ -287,3 +291,5 @@ clear_bss:
#if PPC_ABI == PPC_ABI_POWEROPEN
DESCRIPTOR (startup)
#endif
.comm environ,4,4

View File

@@ -126,10 +126,10 @@ _start:
stw r0,0(sp) /* clear back chain */
stwu sp,-56(sp) /* push another stack frame */
li r3, 0 /* argc */
lis r5,environ@ha
la r5,environ@l(r5) /* environp */
li r4, 0 /* argv */
li r5, 0 /* environp */
li r3, 0 /* argc */
/* Let her rip */
bl FUNC_NAME(boot_card)
@@ -152,3 +152,5 @@ _start:
blr
.Lstart:
.size _start,.Lstart-_start
.comm environ,4,4

View File

@@ -96,6 +96,10 @@ _start:
stw r0,0(sp) /* clear back chain */
stwu sp,-56(sp) /* push another stack frame */
lis r5,environ@ha
la r5,environ@l(r5) /* environp */
li r4, 0 /* argv */
li r3, 0 /* argc */
/* Let her rip */
bl FUNC_NAME(boot_card)
@@ -104,3 +108,6 @@ _start:
trap
.Lstart:
.size _start,.Lstart-_start
.comm environ,4,4

View File

@@ -146,6 +146,10 @@ past_constants:
stw r0,0(sp) /* clear back chain */
stwu sp,-56(sp) /* push another stack frame */
lis r5,environ@ha
la r5,environ@l(r5) /* environp */
li r4, 0 /* argv */
li r3, 0 /* argc */
/* Let her rip */
bl FUNC_NAME(boot_card)
@@ -154,3 +158,5 @@ past_constants:
trap
.Lstart:
.size _start,.Lstart-_start
.comm environ,4,4

View File

@@ -107,6 +107,10 @@ enter_C_code:
/*
* We are know in a environment that is totally independent from bootloader setup.
*/
lis r5,environ@ha
la r5,environ@l(r5) /* environp */
li r4, 0 /* argv */
li r3, 0 /* argc */
bl boot_card
bl _return_to_ppcbug
@@ -194,3 +198,5 @@ flush_tlbs:
sync
blr
.comm environ,4,4