📄 typedefs_md.h
字号:
/*
* @(#)typedefs_md.h 1.25 98/01/12
*
* Copyright (c) 1995, 1996 Sun Microsystems, Inc. All Rights Reserved.
*
* This software is the confidential and proprietary information of Sun
* Microsystems, Inc. ("Confidential Information"). You shall not
* disclose such Confidential Information and shall use it only in
* accordance with the terms of the license agreement you entered into
* with Sun.
*
* SUN MAKES NO REPRESENTATIONS OR WARRANTIES ABOUT THE SUITABILITY OF THE
* SOFTWARE, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
* IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
* PURPOSE, OR NON-INFRINGEMENT. SUN SHALL NOT BE LIABLE FOR ANY DAMAGES
* SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR DISTRIBUTING
* THIS SOFTWARE OR ITS DERIVATIVES.
*
* CopyrightVersion 1.1_beta
*
*/
/*
* Win32 dependent type definitions
*/
#ifndef _WIN32_TYPEDEF_MD_H_
#define _WIN32_TYPEDEF_MD_H_
#include <windows.h>
#if !defined(JTC_BUILD)
/* Note that these definitions also appear in jni_md.h ibm.10740
** They are replicated to avoid forcing use of 'windows.h' ibm.10740
** onto users of that header ibm.10740
** ibm.10740
** Changes to the following macros must also be done in 'jni_md.h' ibm.10740
*/
#ifndef JMS_TRL /* ibm.10740 */
#define JMS_TRL 1
#endif /* ibm.10740 */
#ifndef JIT_TRL /* ibm.10740 */
#define JIT_TRL 1
#endif /* ibm.10740 */
#ifndef JIT_WAY /* ibm.10740 */
#define JIT_WAY 1
#endif /* ibm.10740 */
#ifndef IBM_MIXED_MODE /* ibm.10740 */
#define IBM_MIXED_MODE 1 /* IBM 9037 */
#endif /* ibm.10740 */
#endif
#include "bool.h"
typedef unsigned int uint_t;
typedef long int32_t;
typedef unsigned long uint32_t;
typedef __int64 int64_t;
typedef unsigned __int64 uint64_t;
#include "float_md.h" /*ibm.6689*/
/* use these macros when the compiler supports the long long type */
#define ll_high(a) ((long)((a)>>32))
#define ll_low(a) ((long)(a))
#define int2ll(a) ((int64_t)(a))
#define ll2int(a) ((int)(a))
#define ll_add(a, b) ((a) + (b))
#define ll_and(a, b) ((a) & (b))
#define ll_div(a, b) ((a) / (b))
#define ll_mul(a, b) ((a) * (b))
#define ll_neg(a) (-(a))
#define ll_not(a) (~(a))
#define ll_or(a, b) ((a) | (b))
/* THE FOLLOWING DEFINITION IS NOW A FUNCTION CALL IN ORDER TO WORKAROUND
OPTIMIZER BUG IN MSVC++ 2.1 (see system_md.c)
#define ll_shl(a, n) ((a) << (n)) */
#define ll_shr(a, n) ((a) >> (n))
#define ll_sub(a, b) ((a) - (b))
#define ll_ushr(a, n) ((uint64_t)(a) >> (n))
#define ll_xor(a, b) ((a) ^ (b))
#define uint2ll(a) ((uint64_t)(unsigned long)(a))
#define ll_rem(a,b) ((a) % (b))
#define INT_OP(x,op,y) (((#op[0]=='/')||(#op[0]=='%')) ? \
( (((x)==0x80000000)&&((y)==-1)) ? \
((x) op 1) : \
((x) op (y))) : \
((x) op (y)))
#define NAN_CHECK(l,r,x) (!_isnan((l))&&!_isnan((r))) ? (x : 0)
#define IS_NAN(x) _isnan(x)
int32_t float2l(float f);
int32_t double2l(double f);
int64_t float2ll(float f);
int64_t double2ll(double f);
#define ll2float(a) ((float) (a))
#define ll2double(a) ((double) (a))
/* comparison operators */
#define ll_ltz(ll) ((ll) < 0)
#define ll_gez(ll) ((ll) >= 0)
#define ll_eqz(a) ((a) == 0)
#define ll_eq(a, b) ((a) == (b))
#define ll_ne(a,b) ((a) != (b))
#define ll_ge(a,b) ((a) >= (b))
#define ll_le(a,b) ((a) <= (b))
#define ll_lt(a,b) ((a) < (b))
#define ll_gt(a,b) ((a) > (b))
#define ll_zero_const ((int64_t) 0)
#define ll_one_const ((int64_t) 1)
extern void ll2str(int64_t a, char *s, char *limit);
extern int64_t ll_shl(int64_t a, int bits);
#include <stdlib.h> /* For malloc() and free() */
#endif /* !_WIN32_TYPEDEF_MD_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -