|
|
cmd/5l: use more standard calling convention
The standard ARM calling convention is that the function
prologue should push LR onto the stack and then further
subtract from SP to carve out a stack frame if needed.
To date, the 5l calling convention has been to subtract
from SP to carve out the stack frame and then push LR,
with those two things happening in a single instruction.
Switching to the standard calling convention should be
less confusing to people familiar with ARM but new to the
5g/5l toolchain. It does cost an extra instruction when
the stack frame is more than zero bytes, but this cost is
small and, again, standard.
Switching happens to make the stacks look exactly like
x86 stacks, so they will also be less confusing to people
familiar with x86.
Switching will allow us to merge the runtime traceback code
into a single file, which will reduce maintenance costs.
Fixes issue 5113.
|
Unified diffs |
Side-by-side diffs |
Delta from patch set |
Stats (+689 lines, -925 lines) |
Patch |
 |
M |
src/cmd/5a/a.y
|
View
|
1
2
3
4
5
|
2 chunks |
+4 lines, -0 lines |
0 comments
|
Download
|
 |
M |
src/cmd/5a/y.tab.h
|
View
|
1
2
3
4
5
|
3 chunks |
+21 lines, -25 lines |
0 comments
|
Download
|
 |
M |
src/cmd/5a/y.tab.c
|
View
|
1
2
3
4
5
|
123 chunks |
+353 lines, -607 lines |
0 comments
|
Download
|
 |
M |
src/cmd/5c/txt.c
|
View
|
1
2
3
4
5
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
src/cmd/5g/cgen.c
|
View
|
1
2
3
4
5
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
src/cmd/5g/ggen.c
|
View
|
1
2
3
4
5
|
5 chunks |
+8 lines, -18 lines |
0 comments
|
Download
|
 |
M |
src/cmd/5g/gsubr.c
|
View
|
1
2
3
4
5
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
 |
M |
src/cmd/5g/reg.c
|
View
|
1
2
3
4
5
|
3 chunks |
+21 lines, -9 lines |
0 comments
|
Download
|
 |
M |
src/cmd/5l/l.h
|
View
|
1
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
src/cmd/5l/noop.c
|
View
|
1
2
3
4
5
|
8 chunks |
+56 lines, -17 lines |
0 comments
|
Download
|
 |
M |
src/cmd/5l/obj.c
|
View
|
1
2
3
4
5
|
1 chunk |
+0 lines, -1 line |
0 comments
|
Download
|
 |
M |
src/cmd/5l/span.c
|
View
|
1
2
3
4
|
4 chunks |
+4 lines, -5 lines |
0 comments
|
Download
|
 |
M |
src/cmd/6l/l.h
|
View
|
1
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
M |
src/cmd/6l/pass.c
|
View
|
1
|
2 chunks |
+2 lines, -11 lines |
0 comments
|
Download
|
 |
M |
src/cmd/8l/l.h
|
View
|
1
|
1 chunk |
+1 line, -0 lines |
0 comments
|
Download
|
 |
M |
src/cmd/8l/pass.c
|
View
|
1
|
1 chunk |
+1 line, -10 lines |
0 comments
|
Download
|
 |
M |
src/cmd/ld/lib.c
|
View
|
1
2
3
4
5
|
2 chunks |
+3 lines, -1 line |
0 comments
|
Download
|
 |
M |
src/pkg/crypto/md5/md5block_arm.s
|
View
|
1
2
3
4
5
|
2 chunks |
+6 lines, -17 lines |
0 comments
|
Download
|
 |
M |
src/pkg/runtime/asm_arm.s
|
View
|
1
2
3
4
5
|
8 chunks |
+21 lines, -24 lines |
0 comments
|
Download
|
 |
M |
src/pkg/runtime/panic.c
|
View
|
1
2
3
4
5
|
2 chunks |
+2 lines, -8 lines |
0 comments
|
Download
|
 |
M |
src/pkg/runtime/proc.c
|
View
|
1
2
3
4
5
|
2 chunks |
+1 line, -9 lines |
0 comments
|
Download
|
 |
M |
src/pkg/runtime/stack.c
|
View
|
1
2
3
4
5
|
1 chunk |
+0 lines, -5 lines |
0 comments
|
Download
|
 |
M |
src/pkg/runtime/sys_linux_arm.s
|
View
|
1
2
3
4
5
|
3 chunks |
+16 lines, -17 lines |
0 comments
|
Download
|
 |
M |
src/pkg/runtime/traceback.c
|
View
|
1
2
3
4
5
|
8 chunks |
+57 lines, -34 lines |
0 comments
|
Download
|
 |
M |
src/pkg/runtime/traceback_arm.c
|
View
|
1
2
3
4
5
|
2 chunks |
+8 lines, -2 lines |
0 comments
|
Download
|
 |
M |
src/pkg/runtime/traceback_x86.c
|
View
|
1
2
3
4
5
|
1 chunk |
+1 line, -1 line |
0 comments
|
Download
|
 |
M |
src/pkg/runtime/vlop_arm.s
|
View
|
1
2
3
4
5
|
6 chunks |
+38 lines, -38 lines |
0 comments
|
Download
|
 |
M |
src/pkg/syscall/asm_linux_arm.s
|
View
|
1
2
3
4
5
|
3 chunks |
+61 lines, -62 lines |
0 comments
|
Download
|
|