Fix s390x-specific HOST_l2c|c2l.
[openssl.git] / crypto / md32_common.h
index 279916fa5902b918543f63540aa1315ad992354f..1cb783944ea69ecdd2ed3cc9ba8234dd785ce5f7 100644 (file)
 #ifndef PEDANTIC
 # if defined(__GNUC__) && __GNUC__>=2 && !defined(OPENSSL_NO_ASM) && !defined(OPENSSL_NO_INLINE_ASM)
 #  if defined(__s390x__)
-#   define HOST_c2l(c,l)       ({ asm ("lrv    %0,0(%1)"               \
-                                       :"=r"(l) : "r"(c));             \
+#   define HOST_c2l(c,l)       ({ asm ("lrv    %0,%1"                  \
+                                  :"=d"(l) :"m"(*(const unsigned int *)(c)));\
                                   (c)+=4; (l);                         })
-#   define HOST_l2c(l,c)       ({ asm ("strv   %0,0(%1)"               \
-                                       : : "r"(l),"r"(c) : "memory");  \
+#   define HOST_l2c(l,c)       ({ asm ("strv   %1,%0"                  \
+                                  :"=m"(*(unsigned int *)(c)) :"d"(l));\
                                   (c)+=4; (l);                         })
 #  endif
 # endif