File tree Expand file tree Collapse file tree 2 files changed +11
-6
lines changed Expand file tree Collapse file tree 2 files changed +11
-6
lines changed Original file line number Diff line number Diff line change 1
1
---
2
- refs/heads/master: 4dcb0ee0ce0c48fa2328c9c88dbbe19614cdc545
2
+ refs/heads/master: ef20afc36ca7083c910fa05ea28576fe4b465783
Original file line number Diff line number Diff line change 48
48
.type MORESTACK,@function
49
49
#endif
50
50
51
+ #if defined(__linux)
51
52
MORESTACK:
52
53
.cfi_startproc
53
54
@@ -71,19 +72,23 @@ MORESTACK:
71
72
addq $16 , %rcx // Add the saved %rbp, and return address
72
73
addq %r11 , %rcx // Add the size of stack arguments
73
74
74
- pushq %r10 // The amount of stack needed
75
- pushq %rcx // Address of stack arguments
76
- pushq %r11 // Size of stack arguments
77
75
pushq %rbp // Save the Rust stack pointer
76
+ pushq %r11 // Size of stack arguments
77
+ pushq %rcx // Address of stack arguments
78
+ pushq %r10 // The amount of stack needed
78
79
79
80
// FIXME: Don't understand why I have to use the PLT here
80
81
lea RUST_NEW_STACK2@PLT(%rip ), %rsi
81
- lea 24 ( %rsp ) , %rdi
82
+ mov %rsp , %rdi
82
83
call UPCALL_CALL_C@PLT
83
84
84
85
mov (%rsp ),%rdx // Grab the return pointer.
85
86
inc %rdx // Skip past the `ret`.
86
87
mov %rax ,%rsp // Switch to the new stack.
87
88
call *%rdx // Enter the new function.
88
89
89
- .cfi_endproc
90
+ .cfi_endproc
91
+ #else
92
+ MORESTACK:
93
+ ret
94
+ #endif
You can’t perform that action at this time.
0 commit comments