[PATCH] longlong.h on mips with clang

Vladimir 'φ-coder/phcoder' Serbinenko phcoder at gmail.com
Fri Nov 29 08:55:32 CET 2013


On 22.11.2013 05:24, Vladimir 'φ-coder/phcoder' Serbinenko wrote:
> clang doesn't recognise =l / =h assembly operand specifiers but apparently handles C version well. Hence following patch:
> 
> diff --git a/grub-core/lib/libgcrypt/mpi/longlong.h b/grub-core/lib/libgcrypt/mpi/longlong.h
> index 8c8260e..6f8dda7 100644
> --- a/grub-core/lib/libgcrypt/mpi/longlong.h
> +++ b/grub-core/lib/libgcrypt/mpi/longlong.h
> @@ -749,7 +749,7 @@ extern USItype __udiv_qrnnd ();
>   **************  MIPS  *****************
>   ***************************************/
>  #if defined (__mips__) && W_TYPE_SIZE == 32
> -#if (__GNUC__ >= 5) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
> +#if defined (__clang__) || (__GNUC__ >= 5) || (__GNUC__ == 4 && __GNUC_MINOR__ >= 4)
>  #define umul_ppmm(w1, w0, u, v) \
>    do {                                                                  \
>      UDItype _r;
> 
> Resulting assembly is
>      afc:       01a20019        multu   t5,v0
>      b00:       00006012        mflo    t4
>      b04:       00000810        mfhi    at
> which matches the intent.
> 
ping?

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 291 bytes
Desc: OpenPGP digital signature
URL: </pipermail/attachments/20131129/84c53e01/attachment.sig>


More information about the Gcrypt-devel mailing list