summaryrefslogtreecommitdiffstats
path: root/scmhob.scm
diff options
context:
space:
mode:
authorBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:26 -0800
committerBryan Newbold <bnewbold@robocracy.org>2017-02-20 00:05:26 -0800
commitdeda2c0fd8689349fea2a900199a76ff7ecb319e (patch)
treec9726d54a0806a9b0c75e6c82db8692aea0053cf /scmhob.scm
parent3278b75942bdbe706f7a0fba87729bb1e935b68b (diff)
downloadscm-deda2c0fd8689349fea2a900199a76ff7ecb319e.tar.gz
scm-deda2c0fd8689349fea2a900199a76ff7ecb319e.zip
Import Upstream version 5d6upstream/5d6
Diffstat (limited to 'scmhob.scm')
-rw-r--r--scmhob.scm51
1 files changed, 51 insertions, 0 deletions
diff --git a/scmhob.scm b/scmhob.scm
new file mode 100644
index 0000000..bdef580
--- /dev/null
+++ b/scmhob.scm
@@ -0,0 +1,51 @@
+;====================================================================
+;
+; scmhob.scm defines several procedures recognized
+; by the hobbit compiler as primitives, but not defined in scm or slib.
+;
+; Use scmhob when running code (meant for compilation by
+; hobbit) under interpreter. Never compile scmhob.scm!
+;
+; Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997 Tanel Tammet
+; tammet@cs.chalmers.se
+;
+; version 5x
+;
+; This program is free software; you can redistribute it and/or modify
+; it under the terms of the GNU General Public License as published by
+; the Free Software Foundation; either version 1, or (at your option)
+; any later version.
+;
+; This program is distributed in the hope that it will be useful,
+; but WITHOUT ANY WARRANTY; without even the implied warranty of
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+; GNU General Public License for more details.
+;
+; You should have received a copy of the GNU General Public License
+; along with this program; if not, write to the Free Software
+; Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111, USA.
+;
+;====================================================================
+
+; bitwise operations: logical shift left and logical shift right
+
+(define (logsleft x y) (ash x y))
+(define (logsright x y) (ash x (- 0 y)))
+
+; immediate-integer (30-bit signed int) versions of arithmetic primitives:
+
+(define %eqv? eqv?)
+(define %zero? zero?)
+(define %negative? negative?)
+(define %positive? positive?)
+(define %number? number?)
+(define %= =)
+(define %< <)
+(define %> >)
+(define %<= <=)
+(define %>= >=)
+(define %+ +)
+(define %- -)
+(define %* *)
+(define %/ /)
+