Commit 03a8de49 by Rainer Orth Committed by Rainer Orth

sysv.S: Avoid gas-only .balign directive.

	* src/x86/sysv.S: Avoid gas-only .balign directive.
	Use C style comments.

From-SVN: r44046
parent 92a0e6c6
2001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE> 2001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* src/x86/sysv.S: Avoid gas-only .balign directive.
Use C style comments.
2001-07-16 Rainer Orth <ro@TechFak.Uni-Bielefeld.DE>
* src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic. * src/alpha/ffi.c (ffi_prep_closure): Avoid gas-only mnemonic.
Fixes PR bootstrap/3563. Fixes PR bootstrap/3563.
......
/* ----------------------------------------------------------------------- /* -----------------------------------------------------------------------
sysv.S - Copyright (c) 1996, 1998 Cygnus Solutions sysv.S - Copyright (c) 1996, 1998, 2001 Cygnus Solutions
X86 Foreign Function Interface X86 Foreign Function Interface
...@@ -30,8 +30,7 @@ ...@@ -30,8 +30,7 @@
.globl ffi_prep_args .globl ffi_prep_args
# This assumes we are using gas. .align 4
.balign 16
.globl ffi_call_SYSV .globl ffi_call_SYSV
.type ffi_call_SYSV,@function .type ffi_call_SYSV,@function
...@@ -41,35 +40,35 @@ ffi_call_SYSV: ...@@ -41,35 +40,35 @@ ffi_call_SYSV:
.LCFI0: .LCFI0:
movl %esp,%ebp movl %esp,%ebp
.LCFI1: .LCFI1:
# Make room for all of the new args. /* Make room for all of the new args. */
movl 16(%ebp),%ecx movl 16(%ebp),%ecx
subl %ecx,%esp subl %ecx,%esp
movl %esp,%eax movl %esp,%eax
# Place all of the ffi_prep_args in position /* Place all of the ffi_prep_args in position */
pushl 12(%ebp) pushl 12(%ebp)
pushl %eax pushl %eax
call *8(%ebp) call *8(%ebp)
# Return stack to previous state and call the function /* Return stack to previous state and call the function */
addl $8,%esp addl $8,%esp
call *28(%ebp) call *28(%ebp)
# Remove the space we pushed for the args /* Remove the space we pushed for the args */
movl 16(%ebp),%ecx movl 16(%ebp),%ecx
addl %ecx,%esp addl %ecx,%esp
# Load %ecx with the return type code /* Load %ecx with the return type code */
movl 20(%ebp),%ecx movl 20(%ebp),%ecx
# If the return value pointer is NULL, assume no return value. /* If the return value pointer is NULL, assume no return value. */
cmpl $0,24(%ebp) cmpl $0,24(%ebp)
jne retint jne retint
# Even if there is no space for the return value, we are /* Even if there is no space for the return value, we are
# obliged to handle floating-point values. obliged to handle floating-point values. */
cmpl $FFI_TYPE_FLOAT,%ecx cmpl $FFI_TYPE_FLOAT,%ecx
jne noretval jne noretval
fstp %st(0) fstp %st(0)
...@@ -79,7 +78,7 @@ ffi_call_SYSV: ...@@ -79,7 +78,7 @@ ffi_call_SYSV:
retint: retint:
cmpl $FFI_TYPE_INT,%ecx cmpl $FFI_TYPE_INT,%ecx
jne retfloat jne retfloat
# Load %ecx with the pointer to storage for the return value /* Load %ecx with the pointer to storage for the return value */
movl 24(%ebp),%ecx movl 24(%ebp),%ecx
movl %eax,0(%ecx) movl %eax,0(%ecx)
jmp epilogue jmp epilogue
...@@ -87,7 +86,7 @@ retint: ...@@ -87,7 +86,7 @@ retint:
retfloat: retfloat:
cmpl $FFI_TYPE_FLOAT,%ecx cmpl $FFI_TYPE_FLOAT,%ecx
jne retdouble jne retdouble
# Load %ecx with the pointer to storage for the return value /* Load %ecx with the pointer to storage for the return value */
movl 24(%ebp),%ecx movl 24(%ebp),%ecx
fstps (%ecx) fstps (%ecx)
jmp epilogue jmp epilogue
...@@ -95,7 +94,7 @@ retfloat: ...@@ -95,7 +94,7 @@ retfloat:
retdouble: retdouble:
cmpl $FFI_TYPE_DOUBLE,%ecx cmpl $FFI_TYPE_DOUBLE,%ecx
jne retlongdouble jne retlongdouble
# Load %ecx with the pointer to storage for the return value /* Load %ecx with the pointer to storage for the return value */
movl 24(%ebp),%ecx movl 24(%ebp),%ecx
fstpl (%ecx) fstpl (%ecx)
jmp epilogue jmp epilogue
...@@ -103,7 +102,7 @@ retdouble: ...@@ -103,7 +102,7 @@ retdouble:
retlongdouble: retlongdouble:
cmpl $FFI_TYPE_LONGDOUBLE,%ecx cmpl $FFI_TYPE_LONGDOUBLE,%ecx
jne retint64 jne retint64
# Load %ecx with the pointer to storage for the return value /* Load %ecx with the pointer to storage for the return value */
movl 24(%ebp),%ecx movl 24(%ebp),%ecx
fstpt (%ecx) fstpt (%ecx)
jmp epilogue jmp epilogue
...@@ -111,13 +110,13 @@ retlongdouble: ...@@ -111,13 +110,13 @@ retlongdouble:
retint64: retint64:
cmpl $FFI_TYPE_SINT64,%ecx cmpl $FFI_TYPE_SINT64,%ecx
jne retstruct jne retstruct
# Load %ecx with the pointer to storage for the return value /* Load %ecx with the pointer to storage for the return value */
movl 24(%ebp),%ecx movl 24(%ebp),%ecx
movl %eax,0(%ecx) movl %eax,0(%ecx)
movl %edx,4(%ecx) movl %edx,4(%ecx)
retstruct: retstruct:
# Nothing to do! /* Nothing to do! */
noretval: noretval:
epilogue: epilogue:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment