Added missing assembly functions for __swap_float() and __swap_double().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12767 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
2dbb0e96d5
commit
97c5bef4a1
@ -1,7 +1,7 @@
|
||||
/*
|
||||
** Copyright 2003, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
|
||||
** Distributed under the terms of the OpenBeOS License.
|
||||
*/
|
||||
/*
|
||||
* Copyright 2003-2005, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
|
||||
* Distributed under the terms of the MIT License.
|
||||
*/
|
||||
|
||||
|
||||
#define FUNCTION(x) .global x; .type x,@function; x
|
||||
@ -38,5 +38,20 @@ FUNCTION(__swap_int64):
|
||||
ret
|
||||
|
||||
/* float __swap_float(float value) */
|
||||
FUNCTION(__swap_float):
|
||||
movl 4(%esp), %eax
|
||||
bswap %eax
|
||||
movl %eax, 4(%esp)
|
||||
fld 4(%esp)
|
||||
ret
|
||||
|
||||
/* double __swap_double(double value) */
|
||||
FUNCTION(__swap_double):
|
||||
movl 4(%esp), %edx /* the 32-bits registers are swapped here */
|
||||
movl 8(%esp), %eax
|
||||
bswap %eax
|
||||
bswap %edx
|
||||
movl %eax, 4(%esp)
|
||||
movl %edx, 8(%esp)
|
||||
fldl 4(%esp)
|
||||
ret
|
||||
|
Loading…
Reference in New Issue
Block a user