From 05d39afd3f0dc5799925eb0c5154d3fa959d246f Mon Sep 17 00:00:00 2001 From: Justin Ethier Date: Sat, 19 Mar 2016 22:38:23 -0400 Subject: [PATCH] Use immediates --- runtime.c | 8 ++++---- scheme/cyclone/cgen.sld | 16 ++++++++-------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/runtime.c b/runtime.c index 33af35ed..729bee96 100644 --- a/runtime.c +++ b/runtime.c @@ -1533,10 +1533,10 @@ object Cyc_num_op_va_list(void *data, int argc, object (fn_op(void *, common_typ fn_op(data, buf, va_arg(ns, object)); } -// // TODO: if result is integer, could convert to an immediate here -// if (type_of(buf) == integer_tag) { -// return obj_int2obj(buf->integer_t.value); -// } + // TODO: if result is integer, could convert to an immediate here + if (type_of(buf) == integer_tag) { + return obj_int2obj(buf->integer_t.value); + } return buf; } diff --git a/scheme/cyclone/cgen.sld b/scheme/cyclone/cgen.sld index 859fc954..381fbde6 100644 --- a/scheme/cyclone/cgen.sld +++ b/scheme/cyclone/cgen.sld @@ -405,14 +405,14 @@ ((vector? exp) (c-compile-vector exp)) ((integer? exp) - (let ((cvar-name (mangle (gensym 'c)))) - (c-code/vars - (string-append "&" cvar-name) ; Code is just the variable name - (list ; Allocate integer on the C stack - (string-append - "make_int(" cvar-name ", " (number->string exp) ");"))))) -; (c-code (string-append "obj_int2obj(" -; (number->string exp) ")"))) +; (let ((cvar-name (mangle (gensym 'c)))) +; (c-code/vars +; (string-append "&" cvar-name) ; Code is just the variable name +; (list ; Allocate integer on the C stack +; (string-append +; "make_int(" cvar-name ", " (number->string exp) ");"))))) + (c-code (string-append "obj_int2obj(" + (number->string exp) ")"))) ((real? exp) (let ((cvar-name (mangle (gensym 'c)))) (c-code/vars