comparison mathops.h @ 11018:5f2c4bcf6e6e libavcodec

Add UMULH() This function/macro returns the high half of the unsigned 64-bit product of two unsigned 32-bit operands.
author mru
date Tue, 26 Jan 2010 18:05:55 +0000
parents 38b3b209b4bc
children cd8a77473dd1
comparison
equal deleted inserted replaced
11017:aa10bb3c244c 11018:5f2c4bcf6e6e
48 //gcc 3.4 creates an incredibly bloated mess out of this 48 //gcc 3.4 creates an incredibly bloated mess out of this
49 //# define MULH(a,b) (((int64_t)(a) * (int64_t)(b))>>32) 49 //# define MULH(a,b) (((int64_t)(a) * (int64_t)(b))>>32)
50 50
51 static av_always_inline int MULH(int a, int b){ 51 static av_always_inline int MULH(int a, int b){
52 return ((int64_t)(a) * (int64_t)(b))>>32; 52 return ((int64_t)(a) * (int64_t)(b))>>32;
53 }
54 #endif
55
56 #ifndef UMULH
57 static av_always_inline unsigned UMULH(unsigned a, unsigned b){
58 return ((uint64_t)(a) * (uint64_t)(b))>>32;
53 } 59 }
54 #endif 60 #endif
55 61
56 #ifndef MUL64 62 #ifndef MUL64
57 # define MUL64(a,b) ((int64_t)(a) * (int64_t)(b)) 63 # define MUL64(a,b) ((int64_t)(a) * (int64_t)(b))