core: Remove make_number.

* mes.c (MAKE_NUMBER): New macro.
  (tmp_num_, tmp_num_2): New function.
  (make_number): Remove.  Update callers.
This commit is contained in:
Jan Nieuwenhuizen 2016-12-23 16:22:19 +01:00
parent c2a12c4f34
commit c2bfeffe96
7 changed files with 29 additions and 22 deletions

2
lib.c
View File

@ -40,7 +40,7 @@ length (SCM x)
n++; n++;
x = cdr (x); x = cdr (x);
} }
return make_number (n); return MAKE_NUMBER (n);
} }
SCM SCM

14
math.c
View File

@ -76,7 +76,7 @@ minus (SCM x) ///((name . "-") (arity . n))
n -= VALUE (car (x)); n -= VALUE (car (x));
x = cdr (x); x = cdr (x);
} }
return make_number (n); return MAKE_NUMBER (n);
} }
SCM SCM
@ -89,7 +89,7 @@ plus (SCM x) ///((name . "+") (arity . n))
n += VALUE (car (x)); n += VALUE (car (x));
x = cdr (x); x = cdr (x);
} }
return make_number (n); return MAKE_NUMBER (n);
} }
SCM SCM
@ -107,7 +107,7 @@ divide (SCM x) ///((name . "/") (arity . n))
n /= VALUE (car (x)); n /= VALUE (car (x));
x = cdr (x); x = cdr (x);
} }
return make_number (n); return MAKE_NUMBER (n);
} }
SCM SCM
@ -115,7 +115,7 @@ modulo (SCM a, SCM b)
{ {
assert (TYPE (a) == NUMBER); assert (TYPE (a) == NUMBER);
assert (TYPE (b) == NUMBER); assert (TYPE (b) == NUMBER);
return make_number (VALUE (a) % VALUE (b)); return MAKE_NUMBER (VALUE (a) % VALUE (b));
} }
SCM SCM
@ -128,7 +128,7 @@ multiply (SCM x) ///((name . "*") (arity . n))
n *= VALUE (car (x)); n *= VALUE (car (x));
x = cdr (x); x = cdr (x);
} }
return make_number (n); return MAKE_NUMBER (n);
} }
SCM SCM
@ -141,7 +141,7 @@ logior (SCM x) ///((arity . n))
n |= VALUE (car (x)); n |= VALUE (car (x));
x = cdr (x); x = cdr (x);
} }
return make_number (n); return MAKE_NUMBER (n);
} }
SCM SCM
@ -151,5 +151,5 @@ ash (SCM n, SCM count)
assert (TYPE (count) == NUMBER); assert (TYPE (count) == NUMBER);
int cn = VALUE (n); int cn = VALUE (n);
int ccount = VALUE (count); int ccount = VALUE (count);
return make_number ((ccount < 0) ? cn >> -ccount : cn << ccount); return MAKE_NUMBER ((ccount < 0) ? cn >> -ccount : cn << ccount);
} }

24
mes.c
View File

@ -181,6 +181,8 @@ SCM r3 = 0; // param 3
#define CDADAR(x) CAR (CDR (CAR (CDR (x)))) #define CDADAR(x) CAR (CDR (CAR (CDR (x))))
#define CADR(x) CAR (CDR (x)) #define CADR(x) CAR (CDR (x))
#define MAKE_NUMBER(n) make_cell (tmp_num_ (NUMBER), 0, tmp_num2_ (n))
SCM display_ (FILE* f, SCM x); SCM display_ (FILE* f, SCM x);
SCM vm_call (function0_t f, SCM p1, SCM p2, SCM a); SCM vm_call (function0_t f, SCM p1, SCM p2, SCM a);
@ -684,11 +686,17 @@ make_char (int x)
} }
SCM SCM
make_number (int x) tmp_num_ (int x)
{
g_cells[tmp_num].value = x;
return tmp_num;
}
SCM
tmp_num2_ (int x)
{ {
g_cells[tmp_num].value = NUMBER;
g_cells[tmp_num2].value = x; g_cells[tmp_num2].value = x;
return make_cell (tmp_num, tmp_num2, tmp_num2); return tmp_num2;
} }
SCM SCM
@ -760,7 +768,7 @@ SCM
vector_length (SCM x) vector_length (SCM x)
{ {
assert (TYPE (x) == VECTOR); assert (TYPE (x) == VECTOR);
return make_number (LENGTH (x)); return MAKE_NUMBER (LENGTH (x));
} }
SCM SCM
@ -771,7 +779,7 @@ vector_ref (SCM x, SCM i)
SCM e = VECTOR (x) + VALUE (i); SCM e = VECTOR (x) + VALUE (i);
if (TYPE (e) == REF) e = g_cells[e].ref; if (TYPE (e) == REF) e = g_cells[e].ref;
if (TYPE (e) == CHAR) e = make_char (VALUE (e)); if (TYPE (e) == CHAR) e = make_char (VALUE (e));
if (TYPE (e) == NUMBER) e = make_number (VALUE (e)); if (TYPE (e) == NUMBER) e = MAKE_NUMBER (VALUE (e));
return e; return e;
} }
@ -828,13 +836,13 @@ peekchar ()
SCM SCM
peek_byte () peek_byte ()
{ {
return make_number (peekchar ()); return MAKE_NUMBER (peekchar ());
} }
SCM SCM
read_byte () read_byte ()
{ {
return make_number (getchar ()); return MAKE_NUMBER (getchar ());
} }
SCM SCM
@ -868,7 +876,7 @@ SCM
char_to_integer (SCM x) char_to_integer (SCM x)
{ {
assert (TYPE (x) == CHAR); assert (TYPE (x) == CHAR);
return make_number (VALUE (x)); return MAKE_NUMBER (VALUE (x));
} }
SCM SCM

View File

@ -48,13 +48,13 @@ force_output (SCM p) ///((arity . n))
SCM SCM
open_input_file (SCM file_name) open_input_file (SCM file_name)
{ {
return make_number (open (string_to_cstring (file_name), O_RDONLY)); return MAKE_NUMBER (open (string_to_cstring (file_name), O_RDONLY));
} }
SCM SCM
current_input_port () current_input_port ()
{ {
return make_number (fileno (g_stdin)); return MAKE_NUMBER (fileno (g_stdin));
} }
SCM SCM

View File

@ -103,7 +103,7 @@ lookup_ (SCM s, SCM a)
n += VALUE (car (p)) - '0'; n += VALUE (car (p)) - '0';
p = cdr (p); p = cdr (p);
} }
if (p == cell_nil) return make_number (n * sign); if (p == cell_nil) return MAKE_NUMBER (n * sign);
} }
SCM x = lookup_symbol_ (s); SCM x = lookup_symbol_ (s);

View File

@ -48,7 +48,7 @@ SCM
string_length (SCM x) string_length (SCM x)
{ {
assert (TYPE (x) == STRING); assert (TYPE (x) == STRING);
return make_number (VALUE (length (STRING (x)))); return MAKE_NUMBER (VALUE (length (STRING (x))));
} }
SCM SCM

3
type.c
View File

@ -113,9 +113,8 @@ boolean_p (SCM x)
} }
#endif #endif
SCM make_number (int);
SCM SCM
mes_type_of (SCM x) mes_type_of (SCM x)
{ {
return make_number (TYPE (x)); return MAKE_NUMBER (TYPE (x));
} }