Skip to content

Instantly share code, notes, and snippets.

@zeptometer
Created August 14, 2012 06:35
Show Gist options
  • Select an option

  • Save zeptometer/3346948 to your computer and use it in GitHub Desktop.

Select an option

Save zeptometer/3346948 to your computer and use it in GitHub Desktop.
/* Compiler: ECL 12.7.1 */
/* Date: 2012/8/14 15:31 (yyyy/mm/dd) */
/* Machine: NT 5.0 x86 */
/* Source: e:/Documents/emacs-home/lisp/.quicklisp/dists/quicklisp/software/ieee-floats-20101006-darcs/ieee-floats.lisp */
#include <ecl/ecl-cmp.h>
#include "E:/Documents/emacs-home/ieee-floats.h"
/* local function MAKE-FLOAT-CONVERTERS */
/* optimize speed 3, debug 0, space 0, safety 2 */
static cl_object LC1make_float_converters(cl_object V1, cl_object V2)
{ VT2 VLEX2 CLSR2 STCK2
const cl_env_ptr cl_env_copy = ecl_process_env();
cl_object value0;
ecl_cs_check(cl_env_copy,value0);
{
TTL:
{cl_object V3;
cl_object V4; /* ENCODER-NAME */
cl_object V5; /* DECODER-NAME */
cl_object V6; /* EXPONENT-BITS */
cl_object V7; /* SIGNIFICAND-BITS */
cl_object V8; /* SUPPORT-NAN-AND-INFINITY-P */
V3= ecl_cdr(V1);
if(!(V3==ECL_NIL)){
goto L5;}
si_dm_too_few_arguments(V1) /* DM-TOO-FEW-ARGUMENTS */;
goto L3;
L5:;
goto L3;
L3:;
{cl_object V9;
V9= ecl_car(V3);
V3= ecl_cdr(V3);
V4= V9;
}
if(!(V3==ECL_NIL)){
goto L13;}
si_dm_too_few_arguments(V1) /* DM-TOO-FEW-ARGUMENTS */;
goto L11;
L13:;
goto L11;
L11:;
{cl_object V9;
V9= ecl_car(V3);
V3= ecl_cdr(V3);
V5= V9;
}
if(!(V3==ECL_NIL)){
goto L21;}
si_dm_too_few_arguments(V1) /* DM-TOO-FEW-ARGUMENTS */;
goto L19;
L21:;
goto L19;
L19:;
{cl_object V9;
V9= ecl_car(V3);
V3= ecl_cdr(V3);
V6= V9;
}
if(!(V3==ECL_NIL)){
goto L29;}
si_dm_too_few_arguments(V1) /* DM-TOO-FEW-ARGUMENTS */;
goto L27;
L29:;
goto L27;
L27:;
{cl_object V9;
V9= ecl_car(V3);
V3= ecl_cdr(V3);
V7= V9;
}
if(!(V3==ECL_NIL)){
goto L37;}
si_dm_too_few_arguments(V1) /* DM-TOO-FEW-ARGUMENTS */;
goto L35;
L37:;
goto L35;
L35:;
{cl_object V9;
V9= ecl_car(V3);
V3= ecl_cdr(V3);
V8= V9;
}
if((V3)==ECL_NIL){
goto L44;}
si_dm_too_many_arguments(V1) /* DM-TOO-MANY-ARGUMENTS */;
goto L42;
L44:;
goto L42;
L42:;
{cl_object V9; /* TOTAL-BITS */
cl_object V10; /* EXPONENT-OFFSET */
cl_object V11; /* SIGN-PART */
cl_object V12; /* EXPONENT-PART */
cl_object V13; /* SIGNIFICAND-PART */
cl_object V14; /* MAX-EXPONENT */
T0= ecl_plus(ecl_make_fixnum(1),V6);
V9= ecl_plus(T0,V7);
T0= ecl_one_minus(V6);
T1= ecl_expt(ecl_make_fixnum(2),T0);
V10= ecl_one_minus(T1);
T0= ecl_one_minus(V9);
T1= cl_list(3,ECL_SYM("BYTE",162),ecl_make_fixnum(1),T0) /* LIST */;
V11= cl_list(3,ECL_SYM("LDB",457),T1,VV[0]) /* LIST */;
T0= cl_list(3,ECL_SYM("BYTE",162),V6,V7) /* LIST */;
V12= cl_list(3,ECL_SYM("LDB",457),T0,VV[0]) /* LIST */;
T0= cl_list(3,ECL_SYM("BYTE",162),V7,ecl_make_fixnum(0)) /* LIST */;
V13= cl_list(3,ECL_SYM("LDB",457),T0,VV[0]) /* LIST */;
T0= ecl_expt(ecl_make_fixnum(2),V6);
V14= ecl_one_minus(T0);
if((V8)!=ECL_NIL){
goto L54;}
T0= VV[2];
goto L52;
L54:;
T0= ECL_NIL;
goto L52;
L52:;
if((V8)==ECL_NIL){
goto L58;}
T2= cl_list(4,ECL_SYM("VALUES",895),ecl_make_fixnum(0),ecl_make_fixnum(1),V14) /* LIST */;
T3= cl_list(2,VV[4],T2) /* LIST */;
T4= cl_list(4,ECL_SYM("VALUES",895),ecl_make_fixnum(0),ecl_make_fixnum(0),V14) /* LIST */;
T5= cl_list(2,VV[5],T4) /* LIST */;
T6= cl_list(4,ECL_SYM("VALUES",895),ecl_make_fixnum(1),ecl_make_fixnum(0),V14) /* LIST */;
T7= cl_list(2,VV[6],T6) /* LIST */;
T1= cl_list(3,T3,T5,T7) /* LIST */;
goto L56;
L58:;
T1= ECL_NIL;
goto L56;
L56:;
T2= cl_list(3,ECL_SYM("+",14),VV[11],V10) /* LIST */;
T3= cl_list(2,VV[10],T2) /* LIST */;
T4= cl_list(2,T3,VV[12]) /* LIST */;
T5= ecl_expt(ecl_make_fixnum(2),V6);
T6= cl_list(3,ECL_SYM("<",72),VV[10],T5) /* LIST */;
T7= cl_list(3,ECL_SYM("UNLESS",883),T6,VV[13]) /* LIST */;
T8= ecl_expt(ecl_make_fixnum(2),V7);
T9= cl_list(3,ECL_SYM("*",18),T8,VV[16]) /* LIST */;
T10= cl_list(2,ECL_SYM("ROUND",730),T9) /* LIST */;
T11= cl_list(3,ECL_SYM("ASH",110),T10,VV[10]) /* LIST */;
T12= cl_list(4,ECL_SYM("VALUES",895),VV[15],T11,ecl_make_fixnum(0)) /* LIST */;
T13= ecl_expt(ecl_make_fixnum(2),V7);
T14= cl_list(3,ECL_SYM("*",18),T13,VV[17]) /* LIST */;
T15= cl_list(2,ECL_SYM("ROUND",730),T14) /* LIST */;
T16= cl_list(4,ECL_SYM("VALUES",895),VV[15],T15,VV[10]) /* LIST */;
T17= cl_list(4,ECL_SYM("IF",946),VV[14],T12,T16) /* LIST */;
T18= cl_list(4,ECL_SYM("LET",477),T4,T7,T17) /* LIST */;
T19= cl_list(4,ECL_SYM("MULTIPLE-VALUE-BIND",572),VV[8],VV[9],T18) /* LIST */;
T20= cl_list(2,ECL_T,T19) /* LIST */;
T21= cl_list(2,VV[7],T20) /* LIST */;
T22= ecl_append(T1,T21);
T23= CONS(ECL_SYM("COND",247),T22);
T24= cl_list(2,ECL_SYM("UNSIGNED-BYTE",885),V9) /* LIST */;
T25= cl_list(3,ECL_SYM("TYPE",869),T24,VV[0]) /* LIST */;
T26= cl_list(2,ECL_SYM("DECLARE",274),T25) /* LIST */;
T27= cl_list(7,ECL_SYM("SETF",750),V11,VV[15],V12,VV[10],V13,VV[16]) /* LIST */;
T28= cl_list(5,ECL_SYM("LET",477),VV[18],T26,T27,VV[0]) /* LIST */;
T29= cl_list(4,ECL_SYM("MULTIPLE-VALUE-BIND",572),VV[3],T23,T28) /* LIST */;
T30= ecl_list1(T29);
T31= ecl_append(T0,T30);
T32= cl_listX(4,ECL_SYM("DEFUN",289),V4,VV[1],T31) /* LIST* */;
T33= cl_list(2,ECL_SYM("UNSIGNED-BYTE",885),V9) /* LIST */;
T34= cl_list(3,ECL_SYM("TYPE",869),T33,VV[0]) /* LIST */;
T35= cl_list(2,ECL_SYM("DECLARE",274),T34) /* LIST */;
T36= cl_list(2,VV[15],V11) /* LIST */;
T37= cl_list(2,VV[10],V12) /* LIST */;
T38= cl_list(2,VV[16],V13) /* LIST */;
T39= cl_list(3,T36,T37,T38) /* LIST */;
if((V8)==ECL_NIL){
goto L62;}
T41= cl_list(3,ECL_SYM("=",74),VV[10],V14) /* LIST */;
T42= cl_list(3,ECL_SYM("RETURN-FROM",725),V5,VV[20]) /* LIST */;
T43= cl_list(3,ECL_SYM("WHEN",905),T41,T42) /* LIST */;
T40= ecl_list1(T43);
goto L60;
L62:;
T40= ECL_NIL;
goto L60;
L60:;
T41= cl_list(3,ECL_SYM("BYTE",162),ecl_make_fixnum(1),V7) /* LIST */;
T42= cl_list(3,ECL_SYM("LDB",457),T41,VV[16]) /* LIST */;
T43= cl_list(3,ECL_SYM("SETF",750),T42,ecl_make_fixnum(1)) /* LIST */;
T44= cl_list(4,ECL_SYM("IF",946),VV[21],VV[22],T43) /* LIST */;
if(!(ecl_number_compare(V9,ecl_make_fixnum(32))>0)){
goto L66;}
T45= VV[24];
goto L64;
L66:;
T45= VV[25];
goto L64;
L64:;
T46= cl_list(3,ECL_SYM("FLOAT",374),VV[16],T45) /* LIST */;
T47= ecl_plus(V10,V7);
T48= cl_list(3,ECL_SYM("-",17),VV[10],T47) /* LIST */;
T49= cl_list(3,ECL_SYM("SCALE-FLOAT",737),T46,T48) /* LIST */;
T50= cl_list(3,T44,VV[23],T49) /* LIST */;
T51= ecl_append(T40,T50);
T52= cl_listX(3,ECL_SYM("LET*",478),T39,T51) /* LIST* */;
T53= cl_list(5,ECL_SYM("DEFUN",289),V5,VV[19],T35,T52) /* LIST */;
value0=cl_list(3,ECL_SYM("PROGN",671),T32,T53) /* LIST */;
return value0;
}
}
}}
/* function definition for ENCODE-FLOAT32 */
/* optimize speed 3, debug 0, space 0, safety 2 */
static cl_object L2encode_float32(cl_object V1)
{ VT3 VLEX3 CLSR3 STCK3
const cl_env_ptr cl_env_copy = ecl_process_env();
cl_object value0;
ecl_cs_check(cl_env_copy,value0);
{
TTL:
{bool V2;
V2= floatp(V1);
if (ecl_unlikely(!(V2)))
FEwrong_type_argument(ECL_SYM("FLOAT",374),V1);}
if(!(ecl_zerop(V1))){
goto L4;}
cl_env_copy->nvalues=3;
cl_env_copy->values[2]=ecl_make_fixnum(0);
cl_env_copy->values[1]=ecl_make_fixnum(0);
cl_env_copy->values[0]=ecl_make_fixnum(0);
goto L2;
L4:;
cl_env_copy->values[0]=cl_decode_float(V1) /* DECODE-FLOAT */;
{
cl_object V3; /* SIGNIFICAND */
cl_object V4; /* EXPONENT */
cl_object V5; /* SIGN */
V3= cl_env_copy->values[0];
V4= cl_env_copy->values[1];
V5= cl_env_copy->values[2];
{cl_object V6; /* LET0 */
cl_fixnum V7; /* LET1 */
T0= ecl_one_minus(V4);
V6= ecl_plus(T0,ecl_make_fixnum(127));
if(!(ecl_number_equalp(V5,VV[25]))){
goto L10;}
V7= 0;
goto L8;
L10:;
V7= 1;
goto L8;
L8:;
if(ecl_number_compare(V6,ecl_make_fixnum(256))<0){
goto L14;}
cl_error(2,VV[27],V1) /* ERROR */;
goto L12;
L14:;
goto L12;
L12:;
if(!(ecl_number_compare(V6,ecl_make_fixnum(0))<0)){
goto L17;}
T0= ecl_times(ecl_make_fixnum(8388608),V3);
T1= ecl_round1(T0);
T2= cl_ash(T1,V6) /* ASH */;
cl_env_copy->nvalues=3;
cl_env_copy->values[2]=ecl_make_fixnum(0);
cl_env_copy->values[1]=T2;
cl_env_copy->values[0]=ecl_make_fixnum(V7);
goto L2;
L17:;
T0= ecl_times(V3,ecl_make_fixnum(2));
T1= ecl_one_minus(T0);
T2= ecl_times(ecl_make_fixnum(8388608),T1);
T3= ecl_round1(T2);
cl_env_copy->nvalues=3;
cl_env_copy->values[2]=V6;
cl_env_copy->values[1]=T3;
cl_env_copy->values[0]=ecl_make_fixnum(V7);
goto L2;
}}
L2:;
{
cl_object V3; /* SIGN */
cl_object V4; /* SIGNIFICAND */
cl_object V5; /* EXPONENT */
V3= cl_env_copy->values[0];
V4= cl_env_copy->values[1];
V5= cl_env_copy->values[2];
{unsigned int V6; /* BITS */
V6= (unsigned int)(0);
{cl_object V7;
V7= cl_byte(ecl_make_fixnum(1),ecl_make_fixnum(31)) /* BYTE */;
{cl_object V8;
V8= cl_dpb(V3,V7,ecl_make_uint(V6)) /* DPB */;
{cl_object V9;
V9= ecl_make_fixnum(0);
if(!(ECL_FIXNUMP(V8)||ECL_BIGNUMP(V8))){
goto L30;}
V9= V8;
if(!(ecl_number_compare(V9,VV[28])<=0)){
goto L35;}
T0= ecl_make_bool(ecl_number_compare(V9,ecl_make_fixnum(0))>=0);
goto L27;
L35:;
T0= ECL_NIL;
goto L27;
L30:;
T0= ECL_NIL;
goto L27;
}
L27:;
if (ecl_unlikely(!((T0)!=ECL_NIL)))
FEwrong_type_argument(VV[29],V8);
V6= ecl_to_uint(V8);
}
}
{cl_object V7;
V7= cl_byte(ecl_make_fixnum(8),ecl_make_fixnum(23)) /* BYTE */;
{cl_object V8;
V8= cl_dpb(V5,V7,ecl_make_uint(V6)) /* DPB */;
{cl_object V9;
V9= ecl_make_fixnum(0);
if(!(ECL_FIXNUMP(V8)||ECL_BIGNUMP(V8))){
goto L46;}
V9= V8;
if(!(ecl_number_compare(V9,VV[28])<=0)){
goto L51;}
T0= ecl_make_bool(ecl_number_compare(V9,ecl_make_fixnum(0))>=0);
goto L43;
L51:;
T0= ECL_NIL;
goto L43;
L46:;
T0= ECL_NIL;
goto L43;
}
L43:;
if (ecl_unlikely(!((T0)!=ECL_NIL)))
FEwrong_type_argument(VV[29],V8);
V6= ecl_to_uint(V8);
}
}
{cl_object V7;
V7= cl_byte(ecl_make_fixnum(23),ecl_make_fixnum(0)) /* BYTE */;
{cl_object V8;
V8= cl_dpb(V4,V7,ecl_make_uint(V6)) /* DPB */;
{cl_object V9;
V9= ecl_make_fixnum(0);
if(!(ECL_FIXNUMP(V8)||ECL_BIGNUMP(V8))){
goto L61;}
V9= V8;
if(!(ecl_number_compare(V9,VV[28])<=0)){
goto L66;}
T0= ecl_make_bool(ecl_number_compare(V9,ecl_make_fixnum(0))>=0);
goto L58;
L66:;
T0= ECL_NIL;
goto L58;
L61:;
T0= ECL_NIL;
goto L58;
}
L58:;
if (ecl_unlikely(!((T0)!=ECL_NIL)))
FEwrong_type_argument(VV[29],V8);
V6= ecl_to_uint(V8);
}
}
value0=ecl_make_uint(V6); cl_env_copy->nvalues=1;
return value0;
}}
}}
/* function definition for DECODE-FLOAT32 */
/* optimize speed 3, debug 0, space 0, safety 2 */
static cl_object L3decode_float32(cl_object V1)
{ VT4 VLEX4 CLSR4 STCK4
const cl_env_ptr cl_env_copy = ecl_process_env();
cl_object value0;
ecl_cs_check(cl_env_copy,value0);
{
TTL:
{cl_object V2;
V2= ecl_make_fixnum(0);
if(!(ECL_FIXNUMP(V1)||ECL_BIGNUMP(V1))){
goto L5;}
V2= V1;
if(!(ecl_number_compare(V2,VV[28])<=0)){
goto L10;}
T0= ecl_make_bool(ecl_number_compare(V2,ecl_make_fixnum(0))>=0);
goto L2;
L10:;
T0= ECL_NIL;
goto L2;
L5:;
T0= ECL_NIL;
goto L2;
}
L2:;
if (ecl_unlikely(!((T0)!=ECL_NIL)))
FEwrong_type_argument(VV[29],V1);
{cl_object V2; /* SIGN */
cl_object V3; /* EXPONENT */
cl_object V4; /* SIGNIFICAND */
T0= cl_byte(ecl_make_fixnum(1),ecl_make_fixnum(31)) /* BYTE */;
V2= cl_ldb(T0,V1) /* LDB */;
T0= cl_byte(ecl_make_fixnum(8),ecl_make_fixnum(23)) /* BYTE */;
V3= cl_ldb(T0,V1) /* LDB */;
T0= cl_byte(ecl_make_fixnum(23),ecl_make_fixnum(0)) /* BYTE */;
V4= cl_ldb(T0,V1) /* LDB */;
if(!(ecl_zerop(V3))){
goto L17;}
V3= ecl_make_fixnum(1);
goto L15;
L17:;
{cl_object V5;
V5= cl_byte(ecl_make_fixnum(1),ecl_make_fixnum(23)) /* BYTE */;
{cl_object V6;
V6= cl_dpb(ecl_make_fixnum(1),V5,V4) /* DPB */;
V4= V6;
goto L15;
}
}
L15:;
if(ecl_zerop(V2)){
goto L26;}
V4= ecl_negate(V4);
goto L24;
L26:;
goto L24;
L24:;
{float V5;
V5= ecl_to_float(V4);
T0= ecl_minus(V3,ecl_make_fixnum(150));
value0=cl_scale_float(ecl_make_single_float(V5),T0) /* SCALE-FLOAT */;
return value0;}
}
}}
/* function definition for ENCODE-FLOAT64 */
/* optimize speed 3, debug 0, space 0, safety 2 */
static cl_object L4encode_float64(cl_object V1)
{ VT5 VLEX5 CLSR5 STCK5
const cl_env_ptr cl_env_copy = ecl_process_env();
cl_object value0;
ecl_cs_check(cl_env_copy,value0);
{
TTL:
{bool V2;
V2= floatp(V1);
if (ecl_unlikely(!(V2)))
FEwrong_type_argument(ECL_SYM("FLOAT",374),V1);}
if(!(ecl_zerop(V1))){
goto L4;}
cl_env_copy->nvalues=3;
cl_env_copy->values[2]=ecl_make_fixnum(0);
cl_env_copy->values[1]=ecl_make_fixnum(0);
cl_env_copy->values[0]=ecl_make_fixnum(0);
goto L2;
L4:;
cl_env_copy->values[0]=cl_decode_float(V1) /* DECODE-FLOAT */;
{
cl_object V3; /* SIGNIFICAND */
cl_object V4; /* EXPONENT */
cl_object V5; /* SIGN */
V3= cl_env_copy->values[0];
V4= cl_env_copy->values[1];
V5= cl_env_copy->values[2];
{cl_object V6; /* LET11 */
cl_fixnum V7; /* LET12 */
T0= ecl_one_minus(V4);
V6= ecl_plus(T0,ecl_make_fixnum(1023));
if(!(ecl_number_equalp(V5,VV[25]))){
goto L10;}
V7= 0;
goto L8;
L10:;
V7= 1;
goto L8;
L8:;
if(ecl_number_compare(V6,ecl_make_fixnum(2048))<0){
goto L14;}
cl_error(2,VV[27],V1) /* ERROR */;
goto L12;
L14:;
goto L12;
L12:;
if(!(ecl_number_compare(V6,ecl_make_fixnum(0))<0)){
goto L17;}
T0= ecl_times(VV[32],V3);
T1= ecl_round1(T0);
T2= cl_ash(T1,V6) /* ASH */;
cl_env_copy->nvalues=3;
cl_env_copy->values[2]=ecl_make_fixnum(0);
cl_env_copy->values[1]=T2;
cl_env_copy->values[0]=ecl_make_fixnum(V7);
goto L2;
L17:;
T0= ecl_times(V3,ecl_make_fixnum(2));
T1= ecl_one_minus(T0);
T2= ecl_times(VV[32],T1);
T3= ecl_round1(T2);
cl_env_copy->nvalues=3;
cl_env_copy->values[2]=V6;
cl_env_copy->values[1]=T3;
cl_env_copy->values[0]=ecl_make_fixnum(V7);
goto L2;
}}
L2:;
{
cl_object V3; /* SIGN */
cl_object V4; /* SIGNIFICAND */
cl_object V5; /* EXPONENT */
V3= cl_env_copy->values[0];
V4= cl_env_copy->values[1];
V5= cl_env_copy->values[2];
{ecl_ulong_long_t V6; /* BITS */
V6= (ecl_ulong_long_t)(0);
{cl_object V7;
V7= cl_byte(ecl_make_fixnum(1),ecl_make_fixnum(63)) /* BYTE */;
{cl_object V8;
V8= cl_dpb(V3,V7,ecl_make_ulong_Long(V6)) /* DPB */;
{cl_object V9;
V9= ecl_make_fixnum(0);
if(!(ECL_FIXNUMP(V8)||ECL_BIGNUMP(V8))){
goto L30;}
V9= V8;
if(!(ecl_number_compare(V9,VV[33])<=0)){
goto L35;}
T0= ecl_make_bool(ecl_number_compare(V9,ecl_make_fixnum(0))>=0);
goto L27;
L35:;
T0= ECL_NIL;
goto L27;
L30:;
T0= ECL_NIL;
goto L27;
}
L27:;
if (ecl_unlikely(!((T0)!=ECL_NIL)))
FEwrong_type_argument(VV[34],V8);
V6= ecl_to_ulong_Long(V8);
}
}
{cl_object V7;
V7= cl_byte(ecl_make_fixnum(11),ecl_make_fixnum(52)) /* BYTE */;
{cl_object V8;
V8= cl_dpb(V5,V7,ecl_make_ulong_Long(V6)) /* DPB */;
{cl_object V9;
V9= ecl_make_fixnum(0);
if(!(ECL_FIXNUMP(V8)||ECL_BIGNUMP(V8))){
goto L46;}
V9= V8;
if(!(ecl_number_compare(V9,VV[33])<=0)){
goto L51;}
T0= ecl_make_bool(ecl_number_compare(V9,ecl_make_fixnum(0))>=0);
goto L43;
L51:;
T0= ECL_NIL;
goto L43;
L46:;
T0= ECL_NIL;
goto L43;
}
L43:;
if (ecl_unlikely(!((T0)!=ECL_NIL)))
FEwrong_type_argument(VV[34],V8);
V6= ecl_to_ulong_Long(V8);
}
}
{cl_object V7;
V7= cl_byte(ecl_make_fixnum(52),ecl_make_fixnum(0)) /* BYTE */;
{cl_object V8;
V8= cl_dpb(V4,V7,ecl_make_ulong_Long(V6)) /* DPB */;
{cl_object V9;
V9= ecl_make_fixnum(0);
if(!(ECL_FIXNUMP(V8)||ECL_BIGNUMP(V8))){
goto L61;}
V9= V8;
if(!(ecl_number_compare(V9,VV[33])<=0)){
goto L66;}
T0= ecl_make_bool(ecl_number_compare(V9,ecl_make_fixnum(0))>=0);
goto L58;
L66:;
T0= ECL_NIL;
goto L58;
L61:;
T0= ECL_NIL;
goto L58;
}
L58:;
if (ecl_unlikely(!((T0)!=ECL_NIL)))
FEwrong_type_argument(VV[34],V8);
V6= ecl_to_ulong_Long(V8);
}
}
value0=ecl_make_ulong_Long(V6); cl_env_copy->nvalues=1;
return value0;
}}
}}
/* function definition for DECODE-FLOAT64 */
/* optimize speed 3, debug 0, space 0, safety 2 */
static cl_object L5decode_float64(cl_object V1)
{ VT6 VLEX6 CLSR6 STCK6
const cl_env_ptr cl_env_copy = ecl_process_env();
cl_object value0;
ecl_cs_check(cl_env_copy,value0);
{
TTL:
{cl_object V2;
V2= ecl_make_fixnum(0);
if(!(ECL_FIXNUMP(V1)||ECL_BIGNUMP(V1))){
goto L5;}
V2= V1;
if(!(ecl_number_compare(V2,VV[33])<=0)){
goto L10;}
T0= ecl_make_bool(ecl_number_compare(V2,ecl_make_fixnum(0))>=0);
goto L2;
L10:;
T0= ECL_NIL;
goto L2;
L5:;
T0= ECL_NIL;
goto L2;
}
L2:;
if (ecl_unlikely(!((T0)!=ECL_NIL)))
FEwrong_type_argument(VV[34],V1);
{cl_object V2; /* SIGN */
cl_object V3; /* EXPONENT */
cl_object V4; /* SIGNIFICAND */
T0= cl_byte(ecl_make_fixnum(1),ecl_make_fixnum(63)) /* BYTE */;
V2= cl_ldb(T0,V1) /* LDB */;
T0= cl_byte(ecl_make_fixnum(11),ecl_make_fixnum(52)) /* BYTE */;
V3= cl_ldb(T0,V1) /* LDB */;
T0= cl_byte(ecl_make_fixnum(52),ecl_make_fixnum(0)) /* BYTE */;
V4= cl_ldb(T0,V1) /* LDB */;
if(!(ecl_zerop(V3))){
goto L17;}
V3= ecl_make_fixnum(1);
goto L15;
L17:;
{cl_object V5;
V5= cl_byte(ecl_make_fixnum(1),ecl_make_fixnum(52)) /* BYTE */;
{cl_object V6;
V6= cl_dpb(ecl_make_fixnum(1),V5,V4) /* DPB */;
V4= V6;
goto L15;
}
}
L15:;
if(ecl_zerop(V2)){
goto L26;}
V4= ecl_negate(V4);
goto L24;
L26:;
goto L24;
L24:;
{double V5;
V5= ecl_to_double(V4);
T0= ecl_minus(V3,ecl_make_fixnum(1075));
value0=cl_scale_float(ecl_make_double_float(V5),T0) /* SCALE-FLOAT */;
return value0;}
}
}}
#include "E:/Documents/emacs-home/ieee-flaots.data"
#ifdef __cplusplus
extern "C"
#endif
ECL_DLLEXPORT void init_fas_CODE(cl_object flag)
{ VT1 VLEX1 CLSR1 STCK1
const cl_env_ptr cl_env_copy = ecl_process_env();
cl_object value0;
cl_object *VVtemp;
if (flag != OBJNULL){
Cblock=flag;
#ifndef ECL_DYNAMIC_VV
flag->cblock.data = VV;
#endif
flag->cblock.data_size = VM;
flag->cblock.temp_data_size = VMtemp;
flag->cblock.data_text = compiler_data_text;
flag->cblock.data_text_size = compiler_data_text_size;
flag->cblock.cfuns_size = compiler_cfuns_size;
flag->cblock.cfuns = compiler_cfuns;
flag->cblock.source = make_constant_base_string("e:/Documents/emacs-home/lisp/.quicklisp/dists/quicklisp/software/ieee-floats-20101006-darcs/ieee-floats.lisp");
return;}
#ifdef ECL_DYNAMIC_VV
VV = Cblock->cblock.data;
#endif
Cblock->cblock.data_text = "@EcLtAg:init_fas_CODE@";
VVtemp = Cblock->cblock.temp_data;
ECL_DEFINE_SETF_FUNCTIONS
ecl_function_dispatch(cl_env_copy,VV[37])(10,VVtemp[0],ECL_NIL,ECL_NIL,VVtemp[1],ECL_NIL,ECL_NIL,VVtemp[2],ECL_NIL,ECL_NIL,ECL_NIL) /* DODEFPACKAGE */;
si_select_package(VVtemp[0]) /* SELECT-PACKAGE */;
ecl_cmp_defmacro(VV[38]); /* MAKE-FLOAT-CONVERTERS */
si_set_documentation(3,VV[26],ECL_SYM("FUNCTION",396),VVtemp[3]) /* SET-DOCUMENTATION */;
ecl_cmp_defun(VV[39]); /* ENCODE-FLOAT32 */
ecl_cmp_defun(VV[40]); /* DECODE-FLOAT32 */
ecl_cmp_defun(VV[41]); /* ENCODE-FLOAT64 */
ecl_cmp_defun(VV[42]); /* DECODE-FLOAT64 */
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment