mirror of
https://github.com/reactos/reactos.git
synced 2025-01-10 08:10:18 +00:00
c424146e2c
svn path=/branches/cmake-bringup/; revision=48236
53 lines
1 KiB
ArmAsm
53 lines
1 KiB
ArmAsm
/*
|
|
* COPYRIGHT: See COPYING in the top level directory
|
|
* PROJECT: ReactOS Run-Time Library
|
|
* PURPOSE: Byte swap functions
|
|
* FILE: lib/rtl/i386/rtlswap.S
|
|
* PROGRAMER: Alex Ionescu (alex.ionescu@reactos.org)
|
|
*/
|
|
|
|
.intel_syntax noprefix
|
|
|
|
.globl @RtlUshortByteSwap@4
|
|
.globl @RtlUlongByteSwap@4
|
|
.globl @RtlUlonglongByteSwap@8
|
|
|
|
/* FUNCTIONS ***************************************************************/
|
|
|
|
.func @RtlUshortByteSwap@4, @RtlUshortByteSwap@4
|
|
@RtlUshortByteSwap@4:
|
|
|
|
/* Swap high and low bits */
|
|
mov ah, cl
|
|
mov al, ch
|
|
ret
|
|
.endfunc
|
|
|
|
.func @RtlUlongByteSwap@4, @RtlUlongByteSwap@4
|
|
@RtlUlongByteSwap@4:
|
|
|
|
/* Swap high and low bits */
|
|
mov eax, ecx
|
|
bswap eax
|
|
ret
|
|
.endfunc
|
|
|
|
.func @RtlUlonglongByteSwap@8, @RtlUlonglongByteSwap@8
|
|
@RtlUlonglongByteSwap@8:
|
|
|
|
/* Get 64-bit integer */
|
|
mov edx, [esp+8]
|
|
mov eax, [esp+4]
|
|
|
|
/* Swap it */
|
|
bswap edx
|
|
bswap eax
|
|
|
|
/* Return it */
|
|
mov ecx, eax
|
|
mov eax, edx
|
|
mov edx, ecx
|
|
ret
|
|
.endfunc
|
|
|
|
|