summaryrefslogtreecommitdiff
path: root/mips/Makefile
diff options
context:
space:
mode:
authorRobert Norton2018-03-08 16:49:50 +0000
committerRobert Norton2018-03-08 16:51:03 +0000
commit7f894658e6cf53a3ebf4dec5ccf788450de53d1e (patch)
treefb8a1855311b2d0fdd9ed398bfcd8de70c374321 /mips/Makefile
parent9e48920689ed4290f0bf155d604292143d5f5ffa (diff)
rename mips_new_tc to mips
Diffstat (limited to 'mips/Makefile')
-rw-r--r--mips/Makefile31
1 files changed, 31 insertions, 0 deletions
diff --git a/mips/Makefile b/mips/Makefile
new file mode 100644
index 00000000..55d8e986
--- /dev/null
+++ b/mips/Makefile
@@ -0,0 +1,31 @@
+THIS_MAKEFILE := $(realpath $(lastword $(MAKEFILE_LIST)))
+SAIL_DIR:=$(realpath $(dir $(THIS_MAKEFILE))..)
+export SAIL_DIR
+SAIL_LIB_DIR:=$(SAIL_DIR)/lib
+MIPS_SAIL_DIR:=$(SAIL_DIR)/mips
+
+SAIL:=$(SAIL_DIR)/sail
+
+MIPS_PRE:=$(SAIL_LIB_DIR)/flow.sail $(MIPS_SAIL_DIR)/prelude.sail $(MIPS_SAIL_DIR)/mips_prelude.sail
+MIPS_TLB:=$(MIPS_SAIL_DIR)/mips_tlb.sail
+MIPS_TLB_STUB:=$(MIPS_SAIL_DIR)/mips_tlb_stub.sail
+MIPS_SAILS:=$(MIPS_SAIL_DIR)/mips_wrappers.sail $(MIPS_SAIL_DIR)/mips_ast_decl.sail $(MIPS_SAIL_DIR)/mips_insts.sail $(MIPS_SAIL_DIR)/mips_ri.sail $(MIPS_SAIL_DIR)/mips_epilogue.sail
+MIPS_MAIN:=$(MIPS_SAIL_DIR)/main.sail
+
+mips: $(MIPS_PRE) $(MIPS_TLB) $(MIPS_SAILS) $(MIPS_MAIN)
+ $(SAIL) -ocaml -o mips $^
+
+mips_no_tlb.lem: $(MIPS_PRE) $(MIPS_TLB_STUB) $(MIPS_SAILS)
+ $(SAIL) -lem -o mips_no_tlb -lem_mwords -lem_lib Mips_extras -undefined_gen $^
+mips_no_tlb_types.lem: mips_no_tlb.lem
+
+# TODO: Use monomorphisation so that we can switch to machine words
+mips.lem: $(MIPS_PRE) $(MIPS_TLB) $(MIPS_SAILS)
+ $(SAIL) -lem -o mips -lem_lib Mips_extras -undefined_gen $^
+mips_types.lem: mips.lem
+
+M%.thy: m%.lem m%_types.lem mips_extras.lem
+ lem -isa -outdir . -lib $(SAIL_DIR)/src/gen_lib -lib $(SAIL_DIR)/src/lem_interp $^
+
+clean:
+ rm -rf mips Mips.thy mips.lem _sbuild