diff options
author | Bryan Newbold <bnewbold@robocracy.org> | 2017-02-20 00:05:26 -0800 |
---|---|---|
committer | Bryan Newbold <bnewbold@robocracy.org> | 2017-02-20 00:05:26 -0800 |
commit | deda2c0fd8689349fea2a900199a76ff7ecb319e (patch) | |
tree | c9726d54a0806a9b0c75e6c82db8692aea0053cf /scmhob.scm | |
parent | 3278b75942bdbe706f7a0fba87729bb1e935b68b (diff) | |
download | scm-deda2c0fd8689349fea2a900199a76ff7ecb319e.tar.gz scm-deda2c0fd8689349fea2a900199a76ff7ecb319e.zip |
Import Upstream version 5d6upstream/5d6
Diffstat (limited to 'scmhob.scm')
-rw-r--r-- | scmhob.scm | 51 |
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 %/ /) + |