Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

A compiler for the EVIL language for the Sparc architecture

branch: master

Fetching latest commit…

Octocat-spinner-32-eaf2f5

Cannot retrieve the latest commit at this time

Octocat-spinner-32 benchmarks
Octocat-spinner-32 paper
Octocat-spinner-32 .gitignore
Octocat-spinner-32 AddInstr.java
Octocat-spinner-32 AddSparc.java
Octocat-spinner-32 AndInstr.java
Octocat-spinner-32 AndSparc.java
Octocat-spinner-32 Block.java
Octocat-spinner-32 BlockReference.java
Octocat-spinner-32 BranchInstr.java
Octocat-spinner-32 BranchSparc.java
Octocat-spinner-32 CFG.g
Octocat-spinner-32 CallInstr.java
Octocat-spinner-32 CallSparc.java
Octocat-spinner-32 CmpSparc.java
Octocat-spinner-32 CompInstr.java
Octocat-spinner-32 Compare.java
Octocat-spinner-32 CompiInstr.java
Octocat-spinner-32 CompiSparc.java
Octocat-spinner-32 ComputeGlobalInstr.java
Octocat-spinner-32 CondMovSparc.java
Octocat-spinner-32 DelInstr.java
Octocat-spinner-32 DivInstr.java
Octocat-spinner-32 DottedTree.java
Octocat-spinner-32 EVILType.java
Octocat-spinner-32 Evil.g
Octocat-spinner-32 Evil.java
Octocat-spinner-32 FunctionTree.java
Octocat-spinner-32 IlocInstruction.java
Octocat-spinner-32 Instruction.tpl
Octocat-spinner-32 JumpiInstr.java
Octocat-spinner-32 LdSparc.java
Octocat-spinner-32 LdswSparc.java
Octocat-spinner-32 LoadGlobalInstr.java
Octocat-spinner-32 LoadInArgInstr.java
Octocat-spinner-32 LoadInInlineArgInstr.java
Octocat-spinner-32 LoadRetInstr.java
Octocat-spinner-32 LoadaiInstr.java
Octocat-spinner-32 LoadiInstr.java
Octocat-spinner-32 Makefile
Octocat-spinner-32 MovSparc.java
Octocat-spinner-32 MovanyInstr.java
Octocat-spinner-32 MoveInstr.java
Octocat-spinner-32 MoviSparc.java
Octocat-spinner-32 MultInstr.java
Octocat-spinner-32 MulxSparc.java
Octocat-spinner-32 MyBoolean.java
Octocat-spinner-32 NegInstr.java
Octocat-spinner-32 NegSparc.java
Octocat-spinner-32 NewInstr.java
Octocat-spinner-32 NopSparc.java
Octocat-spinner-32 OrInstr.java
Octocat-spinner-32 OrLoSparc.java
Octocat-spinner-32 OrSparc.java
Octocat-spinner-32 PrintInstr.java
Octocat-spinner-32 README
Octocat-spinner-32 ReadInstr.java
Octocat-spinner-32 RegGraph.java
Octocat-spinner-32 Register.java
Octocat-spinner-32 RegisterTable.java
Octocat-spinner-32 RestoreSparc.java
Octocat-spinner-32 RetInstr.java
Octocat-spinner-32 RetSparc.java
Octocat-spinner-32 SDivxSparc.java
Octocat-spinner-32 SaveSparc.java
Octocat-spinner-32 SethiSparc.java
Octocat-spinner-32 SparcInstruction.java
Octocat-spinner-32 SparcInstruction.tpl
Octocat-spinner-32 SparcRegister.java
Octocat-spinner-32 SraSparc.java
Octocat-spinner-32 StSparc.java
Octocat-spinner-32 StoreGlobalInstr.java
Octocat-spinner-32 StoreInlineRetInstr.java
Octocat-spinner-32 StoreRetInstr.java
Octocat-spinner-32 StoreaiInstr.java
Octocat-spinner-32 StoreoutInstr.java
Octocat-spinner-32 Struct.java
Octocat-spinner-32 StructTypes.java
Octocat-spinner-32 SubInstr.java
Octocat-spinner-32 SubSparc.java
Octocat-spinner-32 SymbolTable.java
Octocat-spinner-32 TypeBool.java
Octocat-spinner-32 TypeCheck.g
Octocat-spinner-32 TypeFun.java
Octocat-spinner-32 TypeId.java
Octocat-spinner-32 TypeInt.java
Octocat-spinner-32 TypeNull.java
Octocat-spinner-32 TypeStruct.java
Octocat-spinner-32 XorSparc.java
Octocat-spinner-32 compFile.sh
Octocat-spinner-32 compTests.sh
Octocat-spinner-32 fileRun.sh
Octocat-spinner-32 filegcc
Octocat-spinner-32 gccTimes.sh
Octocat-spinner-32 gccTimes.txt
Octocat-spinner-32 linklist.ev
Octocat-spinner-32 makeTests.sh
Octocat-spinner-32 myTimes.sh
Octocat-spinner-32 myTimes.txt
Octocat-spinner-32 runMultiTests.sh
Octocat-spinner-32 runTests.sh
README
To compile the compiler: 'make'

To compile an input program: 'java Evil file.ev'
Note: file.il is the outputted iloc file and file.s is the outputted assembly file

To make an executable: 'gcc -mcpu=v9 file.s -o file'
Note: must be on a Sparc machine

To run executable: './file'

Note: To get a symbol file from a c file, run `gcc file.c -S`


To run benchmarks:

./makeTests.sh - makes the program and runs `java Evil ....ev` on each benchmark (run on vogon/unix or sparc)
./runTests.sh - `gcc -mcpu=v9 ....s` on each benchmark, runs the executable and diffs the output (run on sparc)
./runMultiTests.sh - same as runTests.sh except it is multi-threaded


Created by: Ben Hirsch and Marc Zych

Optimizations performed in 2012 by Christopher Hoover and Marc Zych
Something went wrong with that request. Please try again.