src/wam/types.lisp @ ea71bdab6baa

Deal with the L1 register assignment mess
author Steve Losh <steve@stevelosh.com>
date Fri, 01 Apr 2016 17:24:39 +0000
parents 8a18f9b3bb72
children 6dc3f4e03454
(in-package #:bones.wam)

(deftype heap-cell ()
  `(unsigned-byte ,+cell-width+))

(deftype heap-cell-tag ()
  `(unsigned-byte ,+cell-tag-width+))

(deftype heap-cell-value ()
  `(unsigned-byte ,+cell-value-width+))


(deftype heap-index ()
  `(integer 0 ,(1- +heap-limit+)))

(deftype register-index ()
  `(integer 0 ,(1- +register-count+)))

(deftype functor-index ()
  `(integer 0 ,(1- array-total-size-limit)))


(deftype arity ()
  `(integer 0 ,+maximum-arity+))


(deftype code-word ()
  `(unsigned-byte ,+code-word-size+))

(deftype code-index ()
  `(integer 0 ,(1- +code-limit+)))

(deftype opcode ()
  '(integer 0 3))