summary refs log tree commit diff
path: root/src/rt/arch
diff options
context:
space:
mode:
authorBrian Anderson <banderson@mozilla.com>2011-11-30 14:33:58 -0800
committerBrian Anderson <banderson@mozilla.com>2011-11-30 20:31:32 -0800
commit408d4ec0ef40a2ce650fab8d730a79f08d35054a (patch)
tree1406a67fb35e4dec6160fa8bd2072b4ea91bfcf0 /src/rt/arch
parent037ca7f7cb00c5eb2def4b766c01aac4c07a9fb4 (diff)
downloadrust-408d4ec0ef40a2ce650fab8d730a79f08d35054a.tar.gz
rust-408d4ec0ef40a2ce650fab8d730a79f08d35054a.zip
rt: Remove upcall_alloc_c_stack/call_c_stack, et. al.
We are using upcall_call_shim_on_c_stack now
Diffstat (limited to 'src/rt/arch')
-rw-r--r--src/rt/arch/i386/ccall.S46
-rw-r--r--src/rt/arch/x86_64/ccall.S68
2 files changed, 0 insertions, 114 deletions
diff --git a/src/rt/arch/i386/ccall.S b/src/rt/arch/i386/ccall.S
index 370c0e7c990..3d7063d201a 100644
--- a/src/rt/arch/i386/ccall.S
+++ b/src/rt/arch/i386/ccall.S
@@ -1,51 +1,5 @@
     .text
 
-// upcall_call_c_stack(void (*fn)(), void *arg_struct)
-//
-// Note that we could use |enter| and |leave| but the manuals tell me they're
-// slower.
-#if defined(__APPLE__) || defined(_WIN32)
-.globl _upcall_call_c_stack
-.globl _upcall_call_c_stack_i64
-.globl _upcall_call_c_stack_float
-_upcall_call_c_stack:
-_upcall_call_c_stack_i64:
-_upcall_call_c_stack_float:
-#else
-.globl upcall_call_c_stack
-.globl upcall_call_c_stack_i64
-.globl upcall_call_c_stack_float
-upcall_call_c_stack:
-upcall_call_c_stack_i64:
-upcall_call_c_stack_float:
-#endif
-    pushl %ebp
-    movl %esp,%ebp          // save esp
-    movl 8(%esp),%eax       // eax = callee
-    movl 12(%esp),%esp      // switch stack
-    calll *%eax
-    movl %ebp,%esp          // would like to use "leave" but it's slower
-    popl %ebp
-    ret
-
-#if defined(__APPLE__) || defined(_WIN32)
-.globl _upcall_call_c_stack_shim
-_upcall_call_c_stack_shim:
-#else
-.globl upcall_call_c_stack_shim
-upcall_call_c_stack_shim:
-#endif
-    pushl %ebp
-    movl %esp,%ebp          // save esp
-    movl 8(%ebp),%eax       // eax = callee
-    movl 12(%ebp),%esp      // switch stack
-    subl $12,%esp           // maintain 16-byte alignment
-    pushl 12(%ebp)          // push ptr to argument block
-    calll *%eax
-    movl %ebp,%esp          // would like to use "leave" but it's slower
-    popl %ebp
-    ret
-
 #if defined(__APPLE__) || defined(_WIN32)
 .globl _asm_call_on_stack
 _asm_call_on_stack:
diff --git a/src/rt/arch/x86_64/ccall.S b/src/rt/arch/x86_64/ccall.S
index 943a2027907..bfec8fc9795 100644
--- a/src/rt/arch/x86_64/ccall.S
+++ b/src/rt/arch/x86_64/ccall.S
@@ -6,74 +6,6 @@
         
         .text
 
-// upcall_call_c_stack(void (*fn)(), void *new_esp)
-//
-// Note that we could use |enter| and |leave| but the manuals tell me they're
-// slower.
-#if defined(__APPLE__) || defined(_WIN32)
-.globl _upcall_call_c_stack
-.globl _upcall_call_c_stack_i64
-.globl _upcall_call_c_stack_float
-_upcall_call_c_stack:
-_upcall_call_c_stack_i64:
-_upcall_call_c_stack_float:
-#else
-.globl upcall_call_c_stack
-.globl upcall_call_c_stack_i64
-.globl upcall_call_c_stack_float
-upcall_call_c_stack:
-upcall_call_c_stack_i64:
-upcall_call_c_stack_float:
-#endif
-    push %rbp
-    mov %rsp,%rbp          // save rsp
-    mov ARG1,%rsp          // switch stack
-
-    // Hack: the arguments to the function are sitting
-    // on the stack right now, as in i386 calling
-    // convention.  We need them in registers.
-    // For now, we just load them into registers.
-    //
-    // This is a total hack because it does not consider
-    // the actual arguments of the target function.
-    // It fails if there are non-INTEGER class arguments,
-    // which would get pushed on the stack, or if there are
-    // additional arguments beyond those that will get
-    // passed in registers.
-    mov ARG0,%r11     // Remember target address
-    mov  0(%rsp),RUSTRT_ARG0_S
-    mov  8(%rsp),RUSTRT_ARG1_S
-    mov 16(%rsp),RUSTRT_ARG2_S
-    mov 24(%rsp),RUSTRT_ARG3_S
-#   ifdef RUSTRT_ARG4_S        
-    mov 32(%rsp),RUSTRT_ARG4_S
-#   endif
-#   ifdef RUSTRT_ARG5_S        
-    mov 40(%rsp),RUSTRT_ARG5_S
-#   endif
-        
-    call *%r11
-    mov %rbp,%rsp          // would like to use "leave" but it's slower
-    pop %rbp
-    ret
-
-#if defined(__APPLE__) || defined(_WIN32)
-.globl _upcall_call_c_stack_shim
-_upcall_call_c_stack_shim:
-#else
-.globl upcall_call_c_stack_shim
-upcall_call_c_stack_shim:
-#endif
-    push %rbp
-    mov %rsp,%rbp          // save rsp
-    mov ARG1,%rsp          // switch stack
-    mov ARG0,%r11          // Remember target address
-    mov ARG1,ARG0          // setup the parameter shim expects
-    call *%r11
-    mov %rbp,%rsp
-    pop %rbp
-    ret
-
 #if defined(__APPLE__) || defined(_WIN32)
 .globl _asm_call_on_stack
 _asm_call_on_stack: