blob: 027a770d3531753f08ed293773b315cb728cc4be (
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
|
(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 MOV)
"I-type instructions.")
(defparameter type-j
'(JMP JRL JAL BEQ BGT BUF BOF PUSH POP)
"J-type instructions.")
|