authorgravatar for koachan@protonmail.comKoakuma <koachan@protonmail.com> 2020-10-27 22:46:18+07:00
committergravatar for koachan@protonmail.comKoakuma <koachan@protonmail.com> 2020-10-27 22:46:18+07:00
log2b87cc7ed31062ca8d814f4971a77952a473703c
tree3e421ff40c494c56cc58c4e77a573de69be7e941
parentcbc8750502630cc38c0c776a76393e766c609124

starting_stack_ptr -> argc_argv_ptr to reflect actual use


1 files changed, 10 insertions(+), 10 deletions(-)

lib/std/start.zig+10-10
......@@ -11,7 +11,7 @@ const builtin = std.builtin;
1111const assert = std.debug.assert;
1212const uefi = std.os.uefi;
1313
14var starting_stack_ptr: [*]usize = undefined;
14var argc_argv_ptr: [*]usize = undefined;
1515
1616const start_sym_name = if (builtin.arch.isMIPS()) "__start" else "_start";
1717
......@@ -102,26 +102,26 @@ fn _start() callconv(.Naked) noreturn {
102102
103103 switch (builtin.arch) {
104104 .x86_64 => {
105 starting_stack_ptr = asm volatile (
105 argc_argv_ptr = asm volatile (
106106 \\ xor %%rbp, %%rbp
107107 : [argc] "={rsp}" (-> [*]usize)
108108 );
109109 },
110110 .i386 => {
111 starting_stack_ptr = asm volatile (
111 argc_argv_ptr = asm volatile (
112112 \\ xor %%ebp, %%ebp
113113 : [argc] "={esp}" (-> [*]usize)
114114 );
115115 },
116116 .aarch64, .aarch64_be, .arm, .armeb => {
117 starting_stack_ptr = asm volatile (
117 argc_argv_ptr = asm volatile (
118118 \\ mov fp, #0
119119 \\ mov lr, #0
120120 : [argc] "={sp}" (-> [*]usize)
121121 );
122122 },
123123 .riscv64 => {
124 starting_stack_ptr = asm volatile (
124 argc_argv_ptr = asm volatile (
125125 \\ li s0, 0
126126 \\ li ra, 0
127127 : [argc] "={sp}" (-> [*]usize)
......@@ -129,7 +129,7 @@ fn _start() callconv(.Naked) noreturn {
129129 },
130130 .mips, .mipsel => {
131131 // The lr is already zeroed on entry, as specified by the ABI.
132 starting_stack_ptr = asm volatile (
132 argc_argv_ptr = asm volatile (
133133 \\ move $fp, $0
134134 : [argc] "={sp}" (-> [*]usize)
135135 );
......@@ -137,7 +137,7 @@ fn _start() callconv(.Naked) noreturn {
137137 .powerpc64le => {
138138 // Setup the initial stack frame and clear the back chain pointer.
139139 // TODO: Support powerpc64 (big endian) on ELFv2.
140 starting_stack_ptr = asm volatile (
140 argc_argv_ptr = asm volatile (
141141 \\ mr 4, 1
142142 \\ li 0, 0
143143 \\ stdu 0, -32(1)
......@@ -149,7 +149,7 @@ fn _start() callconv(.Naked) noreturn {
149149 },
150150 .sparcv9 => {
151151 // argc is stored after a register window (16 registers) plus stack bias
152 starting_stack_ptr = asm (
152 argc_argv_ptr = asm (
153153 \\ mov %%g0, %%i6
154154 \\ add %%o6, 2175, %[argc]
155155 : [argc] "=r" (-> [*]usize)
......@@ -190,8 +190,8 @@ fn posixCallMainAndExit() noreturn {
190190 if (builtin.os.tag == .freebsd) {
191191 @setAlignStack(16);
192192 }
193 const argc = starting_stack_ptr[0];
194 const argv = @ptrCast([*][*:0]u8, starting_stack_ptr + 1);
193 const argc = argc_argv_ptr[0];
194 const argv = @ptrCast([*][*:0]u8, argc_argv_ptr + 1);
195195
196196 const envp_optional = @ptrCast([*:null]?[*:0]u8, @alignCast(@alignOf(usize), argv + argc + 1));
197197 var envp_count: usize = 0;