blob: 5edee4a58c7b2959fa2a46d249decfd798822e40 (
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
|
(in-package #:util)
(defun asm-extension? (file)
"Returns t if FILE is extended with .asm, nil otherwise."
(string= (pathname-type file) "asm"))
;; TODO this won't work for negative numbers of odd sizes quite yet.
(defun format-as-binary (num len)
"Formats NUM as a binary number, and pads to LEN with zeros."
(declare (type number num))
(declare (type (integer 0 *) len))
(format nil "~V,'0b" len num))
(defparameter type-r
'(ADD SUB MUL QUOT REM SFTR SFTL AND OR NOT XOR ADDV SUBV MULV DIVV CMP CEV)
"R-type instructions.")
(defparameter type-i
'(LOAD LOADV ADDI SUBI SFTRI SFTLI ANDI ORI XORI STORE STOREV)
"I-type instructions.")
(defparameter type-j
'(JMP JRL JAL BEQ BGT BUF BOF PUSH POP)
"J-type instructions.")
(defparameter label-loc '()
"A symbol table mapping label names to line indices.")
|