version 1.243, 2009/06/29 20:21:28
|
version 1.246, 2010/04/05 22:17:56
|
Line 1
|
Line 1
|
\ Gforth primitives |
\ Gforth primitives |
|
|
\ Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007,2008 Free Software Foundation, Inc. |
\ Copyright (C) 1995,1996,1997,1998,2000,2003,2004,2005,2006,2007,2008,2009 Free Software Foundation, Inc. |
|
|
\ This file is part of Gforth. |
\ This file is part of Gforth. |
|
|
Line 233 SET_IP(DOES_CODE1(CFA));
|
Line 233 SET_IP(DOES_CODE1(CFA));
|
""just a slot to have an encoding for the DOESJUMP, |
""just a slot to have an encoding for the DOESJUMP, |
which is no longer used anyway (!! eliminate this)"" |
which is no longer used anyway (!! eliminate this)"" |
|
|
|
(doabicode) ( s:... f:... -- s:... f:...) gforth-internal paren_doabicode |
|
""run-time routine for ABI-CODE definitions"" |
|
struct abi_code_ret_t { |
|
Cell *sp; |
|
double * fp; |
|
} ret = ((struct abi_code_ret_t(*)(Cell *, double *))(PFA(CFA)))(sp, fp); |
|
sp = ret.sp; |
|
fp = ret.fp; |
|
#ifdef NO_IP |
|
INST_TAIL; |
|
goto *next_code; |
|
#endif /* defined(NO_IP) */ |
|
|
\F [endif] |
\F [endif] |
|
|
\g control |
\g control |
Line 625 k ( R:w R:w1 R:w2 R:w3 R:w4 -- w R:w R:w
|
Line 638 k ( R:w R:w1 R:w2 R:w3 R:w4 -- w R:w R:w
|
|
|
\ digit is high-level: 0/0% |
\ digit is high-level: 0/0% |
|
|
|
abi-call ( #a_callee s:... f:... -- s:... f:... ) gforth abi_call |
|
struct abi_code_ret_t { |
|
Cell *sp; |
|
double * fp; |
|
} ret = ((struct abi_code_ret_t(*)(Cell *, double *))(a_callee))(sp, fp); |
|
sp = ret.sp; |
|
fp = ret.fp; |
|
|
\g strings |
\g strings |
|
|
move ( c_from c_to ucount -- ) core |
move ( c_from c_to ucount -- ) core |
Line 2465 lib-error ( -- c_addr u ) gforth
|
Line 2486 lib-error ( -- c_addr u ) gforth
|
#ifdef HAVE_LIBLTDL |
#ifdef HAVE_LIBLTDL |
c_addr = (Char *)lt_dlerror(); |
c_addr = (Char *)lt_dlerror(); |
u = (c_addr == NULL) ? 0 : strlen((char *)c_addr); |
u = (c_addr == NULL) ? 0 : strlen((char *)c_addr); |
|
#elif defined(HAVE_LIBDL) || defined(HAVE_DLOPEN) |
|
c_addr = dlerror(); |
|
u = strlen(c_addr); |
#else |
#else |
c_addr = "libltdl is not configured"; |
c_addr = "libltdl is not configured"; |
u = strlen(c_addr); |
u = strlen(c_addr); |