version 1.15, 2000/11/12 18:14:09
|
version 1.16, 2001/02/07 09:58:46
|
Line 72 typedef struct {
|
Line 72 typedef struct {
|
UCell lo; |
UCell lo; |
} UDCell; |
} UDCell; |
|
|
#define FETCH_DCELL(d,lo,hi) ((d)=(typeof(d)){(hi),(lo)}) |
|
#define STORE_DCELL(d,low,high) ({ \ |
|
typeof(d) _d = (d); \ |
|
(low) = _d.lo; \ |
|
(high)= _d.hi; \ |
|
}) |
|
|
|
#define LONG2UD(l) ({UDCell _ud; _ud.hi=0; _ud.lo=(Cell)(l); _ud;}) |
#define LONG2UD(l) ({UDCell _ud; _ud.hi=0; _ud.lo=(Cell)(l); _ud;}) |
#define UD2LONG(ud) ((long)(ud.lo)) |
#define UD2LONG(ud) ((long)(ud.lo)) |
#define DZERO ((DCell){0,0}) |
#define DZERO ((DCell){0,0}) |
Line 89 typedef struct {
|
Line 82 typedef struct {
|
typedef DOUBLE_CELL_TYPE DCell; |
typedef DOUBLE_CELL_TYPE DCell; |
typedef unsigned DOUBLE_CELL_TYPE UDCell; |
typedef unsigned DOUBLE_CELL_TYPE UDCell; |
|
|
|
#define LONG2UD(l) ((UDCell)(l)) |
|
#define UD2LONG(ud) ((long)(ud)) |
|
#define DZERO ((DCell)0) |
|
|
|
#endif /* ! defined(BUGGY_LONG_LONG) */ |
|
|
typedef union { |
typedef union { |
struct { |
struct { |
#ifdef WORDS_BIGENDIAN |
#if defined(WORDS_BIGENDIAN)||defined(BUGGY_LONG_LONG) |
Cell high; |
Cell high; |
UCell low; |
UCell low; |
#else |
#else |
Line 99 typedef union {
|
Line 98 typedef union {
|
Cell high; |
Cell high; |
#endif; |
#endif; |
} cells; |
} cells; |
DCell dcell; |
DCell d; |
|
UDCell ud; |
} Double_Store; |
} Double_Store; |
|
|
#define FETCH_DCELL(d,lo,hi) ({ \ |
#define FETCH_DCELL_T(d_,lo,hi,t_) ({ \ |
Double_Store _d; \ |
Double_Store _d; \ |
_d.cells.low = (lo); \ |
_d.cells.low = (lo); \ |
_d.cells.high = (hi); \ |
_d.cells.high = (hi); \ |
(d) = _d.dcell; \ |
(d_) = _d.t_; \ |
}) |
}) |
|
|
#define STORE_DCELL(d,lo,hi) ({ \ |
#define STORE_DCELL_T(d_,lo,hi,t_) ({ \ |
Double_Store _d; \ |
Double_Store _d; \ |
_d.dcell = (d); \ |
_d.t_ = (d_); \ |
(lo) = _d.cells.low; \ |
(lo) = _d.cells.low; \ |
(hi) = _d.cells.high; \ |
(hi) = _d.cells.high; \ |
}) |
}) |
|
|
#define LONG2UD(l) ((UDCell)(l)) |
#define vm_twoCell2d(d_,lo,hi) FETCH_DCELL_T(d_,lo,hi,d) |
#define UD2LONG(ud) ((long)(ud)) |
#define vm_twoCell2ud(d_,lo,hi) FETCH_DCELL_T(d_,lo,hi,ud) |
#define DZERO ((DCell)0) |
|
|
|
#endif /* ! defined(BUGGY_LONG_LONG) */ |
#define vm_d2twoCell(d_,lo,hi) STORE_DCELL_T(d_,lo,hi,d) |
|
#define vm_ud2twoCell(d_,lo,hi) STORE_DCELL_T(d_,lo,hi,ud) |
|
|
#ifdef DIRECT_THREADED |
#ifdef DIRECT_THREADED |
typedef Label Xt; |
typedef Label Xt; |