diff --git a/Sys.cpp b/Sys.cpp index 8eb1f234..f02f6cd0 100644 --- a/Sys.cpp +++ b/Sys.cpp @@ -559,3 +559,39 @@ void TSys::Trace(int times) const } //#endif } + +/******************************** REV ********************************/ + +uint _REV(uint value) { return __REV(value); } +ushort _REV16(ushort value) { return __REV16(value); } + +/*#if defined ( __CC_ARM ) +__asm uint _REV(uint value) +{ + rev16 r0, r0 + bx lr +} + +__asm ushort _REV16(ushort value) +{ + rev16 r0, r0 + bx lr +} + +#elif defined ( __GNUC__ ) +uint32_t __REV(uint32_t value) +{ + uint32_t result = 0; + + __ASM volatile ("rev %0, %1" : "=r" (result) : "r" (value)); + return(result); +} + +uint32_t __REV16(uint16_t value) +{ + uint32_t result = 0; + + __ASM volatile ("rev16 %0, %1" : "=r" (result) : "r" (value)); + return(result); +} +#endif*/ diff --git a/Sys.h b/Sys.h index 5546cc46..870cde8c 100644 --- a/Sys.h +++ b/Sys.h @@ -115,6 +115,12 @@ extern TSys Sys; //创建一个全局的Sys对象 会在main函数之前执行 //#include "Time.h" #include "Interrupt.h" +//extern uint32_t __REV(uint32_t value); +//extern uint32_t __REV16(uint16_t value); + +uint _REV(uint value); +ushort _REV16(ushort value); + #endif //_Sys_H_ /* diff --git a/Type.cpp b/Type.cpp index f0dab8b5..289d5a6e 100644 --- a/Type.cpp +++ b/Type.cpp @@ -714,39 +714,3 @@ void ByteArray::Write(UInt64 value, int index) { Copy(index, (byte*)&value, sizeof(UInt64)); } - -/******************************** REV ********************************/ - -//uint _REV(uint value) { return __REV(value); } -//ushort _REV16(ushort value) { return __REV16(value); } - -#if defined ( __CC_ARM ) -__asm uint _REV(uint value) -{ - rev16 r0, r0 - bx lr -} - -__asm ushort _REV16(ushort value) -{ - rev16 r0, r0 - bx lr -} - -#elif defined ( __GNUC__ ) -uint32_t __REV(uint32_t value) -{ - uint32_t result=0; - - __ASM volatile ("rev %0, %1" : "=r" (result) : "r" (value) ); - return(result); -} - -uint32_t __REV16(uint16_t value) -{ - uint32_t result=0; - - __ASM volatile ("rev16 %0, %1" : "=r" (result) : "r" (value) ); - return(result); -} -#endif diff --git a/Type.h b/Type.h index 9e26dd0a..39e22c66 100644 --- a/Type.h +++ b/Type.h @@ -20,12 +20,6 @@ typedef long long Int64; #include using namespace ::std; -//extern uint32_t __REV(uint32_t value); -//extern uint32_t __REV16(uint16_t value); - -uint _REV(uint value); -ushort _REV16(ushort value); - class String; class Type;