Beispiel #1
0
/*
doc:	<routine name="ieee_init" return_type="void" export="private">
doc:		<summary>Initialized the various IEEE values.</summary>
doc:		<thread_safety>Safe when called upon runtime initialization</thread_safety>
doc:	</routine>
*/
void ieee_init (void) {
	union {
		EIF_NATURAL_32 nat_val_32;
		EIF_REAL_32 real_val_32;
	} val_32;
	union {
		EIF_NATURAL_64 nat_val_64;
		EIF_REAL_64 real_val_64;
	} val_64;

		/* Computation of NaN. */
	val_32.nat_val_32 = 0x7FC00000;
	eif_real_32_nan = val_32.real_val_32;
	val_64.nat_val_64 = RTU64C(0x7FF8000000000000);
	eif_real_64_nan = val_64.real_val_64;

		/* Computation of Negative Infinity. */
	val_32.nat_val_32 = 0xFF800000;
	eif_real_32_negative_infinity = val_32.real_val_32;
	val_64.nat_val_64 = RTU64C(0xFFF0000000000000);
	eif_real_64_negative_infinity = val_64.real_val_64;

		/* Computation of Positive Infinity. */
	val_32.nat_val_32 = 0x7F800000;
	eif_real_32_positive_infinity = val_32.real_val_32;
	val_64.nat_val_64 = RTU64C(0x7FF0000000000000);
	eif_real_64_positive_infinity = val_64.real_val_64;
}
Beispiel #2
0
static SOCKET check_socket_bounds (SOCKET l_socket) {
#ifdef EIF_64_BITS
		/* On 64-bit system `SOCKET' is actually a pointer. For the moment, we check that
		 * it is not coded on the whole 64-bit. */
	if (l_socket != INVALID_SOCKET) {
		if ((l_socket & RTU64C(0x00000000FFFFFFFF)) != l_socket) {
				/* We are in trouble. Raise an exception for the moment. */
			eraise ("Descriptor too big to be represented as INTEGER_32", EN_PROG);
		}
	}
#endif
	return l_socket;
}
Beispiel #3
0
/* {INTEGER_OVERFLOW_CHECKER}.make */
void F101_3135 (EIF_REFERENCE Current)
{
	GTCX
	EIF_REFERENCE tr1 = NULL;
	EIF_INTEGER_64 ti8_1;
	EIF_NATURAL_64 tu8_1;
	EIF_NATURAL_32 tu4_1;
	EIF_INTEGER_16 ti2_1;
	EIF_NATURAL_16 tu2_1;
	EIF_INTEGER_8 ti1_1;
	EIF_NATURAL_8 tu1_1;
	RTCFDT;
	RTLD;
	
	RTLI(2);
	RTLR(0,Current);
	RTLR(1,tr1);
	
	RTGC;
	{
		static EIF_TYPE_INDEX typarr0[] = {762,880,0xFFFF};
		EIF_TYPE_INDEX typres0;
		static EIF_TYPE_INDEX typcache0 = INVALID_DTYPE;
		
		typres0 = (typcache0 != INVALID_DTYPE ? typcache0 : (typcache0 = eif_compound_id(dftype, typarr0)));
		tr1 = RTLNSP2(eif_non_attached_type(typres0),0,(EIF_INTEGER_32) ((EIF_INTEGER_32) (((EIF_INTEGER_32) 4L) * ((EIF_INTEGER_32) 2L)) + ((EIF_INTEGER_32) 1L)),sizeof(EIF_NATURAL_64), EIF_TRUE);
		RT_SPECIAL_COUNT(tr1) = 0;
	}
	RTAR(Current, tr1);
	*(EIF_REFERENCE *)(Current) = (EIF_REFERENCE) tr1;
	tr1 = *(EIF_REFERENCE *)(Current);
	tu8_1 = (EIF_NATURAL_64) ((EIF_INTEGER_32) 0L);
	F763_6965(RTCV(tr1), tu8_1);
	{
		static EIF_TYPE_INDEX typarr0[] = {762,880,0xFFFF};
		EIF_TYPE_INDEX typres0;
		static EIF_TYPE_INDEX typcache0 = INVALID_DTYPE;
		
		typres0 = (typcache0 != INVALID_DTYPE ? typcache0 : (typcache0 = eif_compound_id(dftype, typarr0)));
		tr1 = RTLNSP2(eif_non_attached_type(typres0),0,(EIF_INTEGER_32) ((EIF_INTEGER_32) (((EIF_INTEGER_32) 4L) * ((EIF_INTEGER_32) 2L)) + ((EIF_INTEGER_32) 1L)),sizeof(EIF_NATURAL_64), EIF_TRUE);
		RT_SPECIAL_COUNT(tr1) = 0;
	}
	RTAR(Current, tr1);
	*(EIF_REFERENCE *)(Current + _REFACS_1_) = (EIF_REFERENCE) tr1;
	tr1 = *(EIF_REFERENCE *)(Current + _REFACS_1_);
	tu8_1 = (EIF_NATURAL_64) ((EIF_INTEGER_32) 0L);
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current);
	ti1_1 = (EIF_INTEGER_8) ((EIF_INTEGER_32) 10L);
	tu8_1 = (EIF_NATURAL_64) (EIF_INTEGER_8) (((EIF_INTEGER_8) 127L) / ti1_1);
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current + _REFACS_1_);
	ti1_1 = (EIF_INTEGER_8) ((EIF_INTEGER_32) 10L);
	tu8_1 = (EIF_NATURAL_64) (EIF_INTEGER_8) (((EIF_INTEGER_8) 127L) % ti1_1);
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current);
	ti2_1 = (EIF_INTEGER_16) ((EIF_INTEGER_32) 10L);
	tu8_1 = (EIF_NATURAL_64) (EIF_INTEGER_16) (((EIF_INTEGER_16) 32767L) / ti2_1);
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current + _REFACS_1_);
	ti2_1 = (EIF_INTEGER_16) ((EIF_INTEGER_32) 10L);
	tu8_1 = (EIF_NATURAL_64) (EIF_INTEGER_16) (((EIF_INTEGER_16) 32767L) % ti2_1);
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current);
	tu8_1 = (EIF_NATURAL_64) (EIF_INTEGER_32) (((EIF_INTEGER_32) 2147483647L) / ((EIF_INTEGER_32) 10L));
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current + _REFACS_1_);
	tu8_1 = (EIF_NATURAL_64) (EIF_INTEGER_32) (((EIF_INTEGER_32) 2147483647L) % ((EIF_INTEGER_32) 10L));
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current);
	ti8_1 = (EIF_INTEGER_64) ((EIF_INTEGER_32) 10L);
	tu8_1 = (EIF_NATURAL_64) (EIF_INTEGER_64) (((EIF_INTEGER_64) RTI64C(9223372036854775807)) / ti8_1);
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current + _REFACS_1_);
	ti8_1 = (EIF_INTEGER_64) ((EIF_INTEGER_32) 10L);
	tu8_1 = (EIF_NATURAL_64) (EIF_INTEGER_64) (((EIF_INTEGER_64) RTI64C(9223372036854775807)) % ti8_1);
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current);
	ti1_1 = (EIF_INTEGER_8) ((EIF_INTEGER_32) 10L);
	tu8_1 = (EIF_NATURAL_64) ((EIF_INTEGER_8) -(EIF_INTEGER_8) (((EIF_INTEGER_8) -128L) / ti1_1));
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current + _REFACS_1_);
	ti1_1 = (EIF_INTEGER_8) ((EIF_INTEGER_32) 10L);
	tu8_1 = (EIF_NATURAL_64) ((EIF_INTEGER_8) -(EIF_INTEGER_8) (((EIF_INTEGER_8) -128L) % ti1_1));
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current);
	ti2_1 = (EIF_INTEGER_16) ((EIF_INTEGER_32) 10L);
	tu8_1 = (EIF_NATURAL_64) ((EIF_INTEGER_16) -(EIF_INTEGER_16) (((EIF_INTEGER_16) -32768L) / ti2_1));
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current + _REFACS_1_);
	ti2_1 = (EIF_INTEGER_16) ((EIF_INTEGER_32) 10L);
	tu8_1 = (EIF_NATURAL_64) ((EIF_INTEGER_16) -(EIF_INTEGER_16) (((EIF_INTEGER_16) -32768L) % ti2_1));
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current);
	tu8_1 = (EIF_NATURAL_64) ((EIF_INTEGER_32) -(EIF_INTEGER_32) (((EIF_INTEGER_32) 0x80000000L) / ((EIF_INTEGER_32) 10L)));
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current + _REFACS_1_);
	tu8_1 = (EIF_NATURAL_64) ((EIF_INTEGER_32) -(EIF_INTEGER_32) (((EIF_INTEGER_32) 0x80000000L) % ((EIF_INTEGER_32) 10L)));
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current);
	ti8_1 = (EIF_INTEGER_64) ((EIF_INTEGER_32) 10L);
	tu8_1 = (EIF_NATURAL_64) ((EIF_INTEGER_64) -(EIF_INTEGER_64) (((EIF_INTEGER_64) RTI64C(0x8000000000000000)) / ti8_1));
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current + _REFACS_1_);
	ti8_1 = (EIF_INTEGER_64) ((EIF_INTEGER_32) 10L);
	tu8_1 = (EIF_NATURAL_64) ((EIF_INTEGER_64) -(EIF_INTEGER_64) (((EIF_INTEGER_64) RTI64C(0x8000000000000000)) % ti8_1));
	F763_6965(RTCV(tr1), tu8_1);
	{
		static EIF_TYPE_INDEX typarr0[] = {762,880,0xFFFF};
		EIF_TYPE_INDEX typres0;
		static EIF_TYPE_INDEX typcache0 = INVALID_DTYPE;
		
		typres0 = (typcache0 != INVALID_DTYPE ? typcache0 : (typcache0 = eif_compound_id(dftype, typarr0)));
		tr1 = RTLNSP2(eif_non_attached_type(typres0),0,(EIF_INTEGER_32) (((EIF_INTEGER_32) 4L) + ((EIF_INTEGER_32) 1L)),sizeof(EIF_NATURAL_64), EIF_TRUE);
		RT_SPECIAL_COUNT(tr1) = 0;
	}
	RTAR(Current, tr1);
	*(EIF_REFERENCE *)(Current + _REFACS_2_) = (EIF_REFERENCE) tr1;
	tr1 = *(EIF_REFERENCE *)(Current + _REFACS_2_);
	tu8_1 = (EIF_NATURAL_64) ((EIF_INTEGER_32) 0L);
	F763_6965(RTCV(tr1), tu8_1);
	{
		static EIF_TYPE_INDEX typarr0[] = {762,880,0xFFFF};
		EIF_TYPE_INDEX typres0;
		static EIF_TYPE_INDEX typcache0 = INVALID_DTYPE;
		
		typres0 = (typcache0 != INVALID_DTYPE ? typcache0 : (typcache0 = eif_compound_id(dftype, typarr0)));
		tr1 = RTLNSP2(eif_non_attached_type(typres0),0,(EIF_INTEGER_32) (((EIF_INTEGER_32) 4L) + ((EIF_INTEGER_32) 1L)),sizeof(EIF_NATURAL_64), EIF_TRUE);
		RT_SPECIAL_COUNT(tr1) = 0;
	}
	RTAR(Current, tr1);
	*(EIF_REFERENCE *)(Current + _REFACS_3_) = (EIF_REFERENCE) tr1;
	tr1 = *(EIF_REFERENCE *)(Current + _REFACS_3_);
	tu8_1 = (EIF_NATURAL_64) ((EIF_INTEGER_32) 0L);
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current + _REFACS_2_);
	tu1_1 = (EIF_NATURAL_8) ((EIF_INTEGER_32) 10L);
	tu8_1 = (EIF_NATURAL_64) (EIF_NATURAL_8) (((EIF_NATURAL_8) 255U) / tu1_1);
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current + _REFACS_3_);
	tu1_1 = (EIF_NATURAL_8) ((EIF_INTEGER_32) 10L);
	tu8_1 = (EIF_NATURAL_64) (EIF_NATURAL_8) (((EIF_NATURAL_8) 255U) % tu1_1);
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current + _REFACS_2_);
	tu2_1 = (EIF_NATURAL_16) ((EIF_INTEGER_32) 10L);
	tu8_1 = (EIF_NATURAL_64) (EIF_NATURAL_16) (((EIF_NATURAL_16) 65535U) / tu2_1);
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current + _REFACS_3_);
	tu2_1 = (EIF_NATURAL_16) ((EIF_INTEGER_32) 10L);
	tu8_1 = (EIF_NATURAL_64) (EIF_NATURAL_16) (((EIF_NATURAL_16) 65535U) % tu2_1);
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current + _REFACS_2_);
	tu4_1 = (EIF_NATURAL_32) ((EIF_INTEGER_32) 10L);
	tu8_1 = (EIF_NATURAL_64) (EIF_NATURAL_32) (((EIF_NATURAL_32) 4294967295U) / tu4_1);
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current + _REFACS_3_);
	tu4_1 = (EIF_NATURAL_32) ((EIF_INTEGER_32) 10L);
	tu8_1 = (EIF_NATURAL_64) (EIF_NATURAL_32) (((EIF_NATURAL_32) 4294967295U) % tu4_1);
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current + _REFACS_2_);
	tu8_1 = (EIF_NATURAL_64) ((EIF_INTEGER_32) 10L);
	tu8_1 = (EIF_NATURAL_64) (EIF_NATURAL_64) (((EIF_NATURAL_64) RTU64C(18446744073709551615)) / tu8_1);
	F763_6965(RTCV(tr1), tu8_1);
	tr1 = *(EIF_REFERENCE *)(Current + _REFACS_3_);
	tu8_1 = (EIF_NATURAL_64) ((EIF_INTEGER_32) 10L);
	tu8_1 = (EIF_NATURAL_64) (EIF_NATURAL_64) (((EIF_NATURAL_64) RTU64C(18446744073709551615)) % tu8_1);
	F763_6965(RTCV(tr1), tu8_1);
	RTLE;
}