1/* 2** Copyright (C) 2014 Erik de Castro Lopo <erikd@mega-nerd.com> 3** 4** This program is free software; you can redistribute it and/or modify 5** it under the terms of the GNU Lesser General Public License as published by 6** the Free Software Foundation; either version 2.1 of the License, or 7** (at your option) any later version. 8** 9** This program is distributed in the hope that it will be useful, 10** but WITHOUT ANY WARRANTY; without even the implied warranty of 11** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12** GNU Lesser General Public License for more details. 13** 14** You should have received a copy of the GNU Lesser General Public License 15** along with this program; if not, write to the Free Software 16** Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 17*/ 18 19#if __GNUC__ 20#define ALWAYS_INLINE __attribute__ ((always_inline)) 21#elif defined _MSC_VER 22#define ALWAYS_INLINE __forceinline 23#else 24#define ALWAYS_INLINE 25#endif 26 27 28static inline int32_t ALWAYS_INLINE 29arith_shift_left (int32_t x, int shift) 30{ return (int32_t) (((uint32_t) x) << shift) ; 31} /* arith_shift_left */ 32