blob: bc15159a5ee0d6ca9a48263c88585dd96e798ca4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
; Copyright (C) 2000 Panagiotis Manolios
; 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 2 of the License, 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., 675 Mass Ave, Cambridge, MA 02139, USA.
; Written by Panagiotis Manolios who can be reached as follows.
; Email: pete@cs.utexas.edu
; Postal Mail:
; Department of Computer Science
; The University of Texas at Austin
; Austin, TX 78701 USA
(in-package "ACL2")
(include-book "../../top/inst")
(include-book "../../../top/alist-thms")
(include-book "../../top/non-det-macros")
(defun ISA-state (pc regs mem exc-on int)
(list 'ISA pc regs mem exc-on int))
(defun ISA-p (x)
(equal (car x) 'ISA))
(defmacro ISA-pc () 1)
(defmacro ISA-regs () 2)
(defmacro ISA-mem () 3)
(defmacro ISA-exc-on () 4)
(defmacro ISA-int () 5)
(defun ALU-output (op val1 val2)
(cond ((equal op 0)
(mod (+ (nfix val1) (nfix val2)) (expt 2 128)))
(t (mod (* (nfix val1) (nfix val2)) (expt 2 128)))))
(defun excp (op val1 val2)
(cond ((equal op 0)
(not (equal (mod (+ (nfix val1) (nfix val2)) (expt 2 128))
(+ (nfix val1) (nfix val2)))))
(t (not (equal (mod (* (nfix val1) (nfix val2)) (expt 2 128))
(* (nfix val1) (nfix val2)))))))
(defun ISA-step-regs (op rc ra-val rb-val regs)
(update-valuation rc
(ALU-output op ra-val rb-val)
regs))
(defun ISA-step-pc (ISA)
(1+ (nth (ISA-pc) ISA)))
|