--- gforth/prim 2003/01/01 17:28:29 1.112 +++ gforth/prim 2003/01/07 22:38:36 1.114 @@ -1941,7 +1941,11 @@ comparisons(f0, r, f_zero_, r, 0., float d>f ( d -- r ) float d_to_f #ifdef BUGGY_LONG_LONG extern double ldexp(double x, int exp); -r = ldexp((Float)d.hi,CELL_BITS) + (Float)d.lo; +if (d.hi<0) { + DCell d2=dnegate(d); + r = -(ldexp((Float)d2.hi,CELL_BITS) + (Float)d2.lo); +} else + r = ldexp((Float)d.hi,CELL_BITS) + (Float)d.lo; #else r = d; #endif @@ -2482,7 +2486,7 @@ f = forget_dyncode(c_code); decompile-prim ( a_code -- a_prim ) gforth-internal decompile_prim ""a_prim is the code address of the primitive that has been compile_prim1ed to a_code"" -a_prim = decompile_code(a_code); +a_prim = (Label)decompile_code((Label)a_code); \+