1/* 2 * Copyright 2011-2019 The OpenSSL Project Authors. All Rights Reserved. 3 * 4 * Licensed under the OpenSSL license (the "License"). You may not use 5 * this file except in compliance with the License. You can obtain a copy 6 * in the file LICENSE in the source distribution or at 7 * https://www.openssl.org/source/license.html 8 */ 9 10#ifndef OSSL_CRYPTO_MIPS_ARCH_H 11# define OSSL_CRYPTO_MIPS_ARCH_H 12 13# if (defined(__mips_smartmips) || defined(_MIPS_ARCH_MIPS32R3) || \ 14 defined(_MIPS_ARCH_MIPS32R5) || defined(_MIPS_ARCH_MIPS32R6)) \ 15 && !defined(_MIPS_ARCH_MIPS32R2) 16# define _MIPS_ARCH_MIPS32R2 17# endif 18 19# if (defined(_MIPS_ARCH_MIPS64R3) || defined(_MIPS_ARCH_MIPS64R5) || \ 20 defined(_MIPS_ARCH_MIPS64R6)) \ 21 && !defined(_MIPS_ARCH_MIPS64R2) 22# define _MIPS_ARCH_MIPS64R2 23# endif 24 25# if defined(_MIPS_ARCH_MIPS64R6) 26# define dmultu(rs,rt) 27# define mflo(rd,rs,rt) dmulu rd,rs,rt 28# define mfhi(rd,rs,rt) dmuhu rd,rs,rt 29# elif defined(_MIPS_ARCH_MIPS32R6) 30# define multu(rs,rt) 31# define mflo(rd,rs,rt) mulu rd,rs,rt 32# define mfhi(rd,rs,rt) muhu rd,rs,rt 33# else 34# define dmultu(rs,rt) dmultu rs,rt 35# define multu(rs,rt) multu rs,rt 36# define mflo(rd,rs,rt) mflo rd 37# define mfhi(rd,rs,rt) mfhi rd 38# endif 39 40#endif 41