mirror of
https://git.freebsd.org/ports.git
synced 2025-07-18 01:39:16 -04:00
- Change inline constant rotate functions to macros in the crypto
library libtomcrypt used by the project, to fix compile errors with clang 3.6. More details about the fix are in PR 198017 PR: 197395 Submitted by: dim Reported by: portmgr
This commit is contained in:
parent
76ac1e321a
commit
6e7616a428
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=380167
1 changed files with 107 additions and 0 deletions
|
@ -0,0 +1,107 @@
|
||||||
|
|
||||||
|
$FreeBSD$
|
||||||
|
|
||||||
|
--- ext/crypto/libtomcrypt-1.17/src/headers/tomcrypt_macros.h.orig
|
||||||
|
+++ ext/crypto/libtomcrypt-1.17/src/headers/tomcrypt_macros.h
|
||||||
|
@@ -262,21 +262,19 @@
|
||||||
|
|
||||||
|
#ifndef LTC_NO_ROLC
|
||||||
|
|
||||||
|
-static inline unsigned ROLc(unsigned word, const int i)
|
||||||
|
-{
|
||||||
|
- asm ("roll %2,%0"
|
||||||
|
- :"=r" (word)
|
||||||
|
- :"0" (word),"I" (i));
|
||||||
|
- return word;
|
||||||
|
-}
|
||||||
|
+#define ROLc(word, i) ({ \
|
||||||
|
+ unsigned _word = word; \
|
||||||
|
+ asm ("roll %2,%0" \
|
||||||
|
+ :"=r" (_word) \
|
||||||
|
+ :"0" (_word),"I" (i)); \
|
||||||
|
+ _word; })
|
||||||
|
|
||||||
|
-static inline unsigned RORc(unsigned word, const int i)
|
||||||
|
-{
|
||||||
|
- asm ("rorl %2,%0"
|
||||||
|
- :"=r" (word)
|
||||||
|
- :"0" (word),"I" (i));
|
||||||
|
- return word;
|
||||||
|
-}
|
||||||
|
+#define RORc(word, i) ({ \
|
||||||
|
+ unsigned _word = word; \
|
||||||
|
+ asm ("rorl %2,%0" \
|
||||||
|
+ :"=r" (_word) \
|
||||||
|
+ :"0" (_word),"I" (i)); \
|
||||||
|
+ _word; })
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
@@ -305,21 +303,19 @@
|
||||||
|
|
||||||
|
#ifndef LTC_NO_ROLC
|
||||||
|
|
||||||
|
-static inline unsigned ROLc(unsigned word, const int i)
|
||||||
|
-{
|
||||||
|
- asm ("rotlwi %0,%0,%2"
|
||||||
|
- :"=r" (word)
|
||||||
|
- :"0" (word),"I" (i));
|
||||||
|
- return word;
|
||||||
|
-}
|
||||||
|
+#define ROLc(word, i) ({ \
|
||||||
|
+ unsigned _word = word; \
|
||||||
|
+ asm ("rotlwi %0,%0,%2" \
|
||||||
|
+ :"=r" (_word) \
|
||||||
|
+ :"0" (_word),"I" (i)); \
|
||||||
|
+ _word; })
|
||||||
|
|
||||||
|
-static inline unsigned RORc(unsigned word, const int i)
|
||||||
|
-{
|
||||||
|
- asm ("rotrwi %0,%0,%2"
|
||||||
|
- :"=r" (word)
|
||||||
|
- :"0" (word),"I" (i));
|
||||||
|
- return word;
|
||||||
|
-}
|
||||||
|
+#define RORc(word, i) ({ \
|
||||||
|
+ unsigned _word = word; \
|
||||||
|
+ asm ("rotrwi %0,%0,%2" \
|
||||||
|
+ :"=r" (_word) \
|
||||||
|
+ :"0" (_word),"I" (i)); \
|
||||||
|
+ _word; })
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
@@ -361,21 +357,19 @@
|
||||||
|
|
||||||
|
#ifndef LTC_NO_ROLC
|
||||||
|
|
||||||
|
-static inline unsigned long ROL64c(unsigned long word, const int i)
|
||||||
|
-{
|
||||||
|
- asm("rolq %2,%0"
|
||||||
|
- :"=r" (word)
|
||||||
|
- :"0" (word),"J" (i));
|
||||||
|
- return word;
|
||||||
|
-}
|
||||||
|
+#define ROL64c(word, i) ({ \
|
||||||
|
+ unsigned long _word = word; \
|
||||||
|
+ asm ("rolq %2,%0" \
|
||||||
|
+ :"=r" (_word) \
|
||||||
|
+ :"0" (_word),"J" (i)); \
|
||||||
|
+ _word; })
|
||||||
|
|
||||||
|
-static inline unsigned long ROR64c(unsigned long word, const int i)
|
||||||
|
-{
|
||||||
|
- asm("rorq %2,%0"
|
||||||
|
- :"=r" (word)
|
||||||
|
- :"0" (word),"J" (i));
|
||||||
|
- return word;
|
||||||
|
-}
|
||||||
|
+#define ROR64c(word, i) ({ \
|
||||||
|
+ unsigned long _word = word; \
|
||||||
|
+ asm ("rorq %2,%0" \
|
||||||
|
+ :"=r" (_word) \
|
||||||
|
+ :"0" (_word),"J" (i)); \
|
||||||
|
+ _word; })
|
||||||
|
|
||||||
|
#else /* LTC_NO_ROLC */
|
||||||
|
|
Loading…
Add table
Reference in a new issue