53 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
.In
 | 
						|
.NH
 | 
						|
INTRODUCTION
 | 
						|
.NH 2
 | 
						|
Why an EM backend for SPARC processors?
 | 
						|
.PP
 | 
						|
With the introduction of SPARC-based computers like the Sun-4, a
 | 
						|
whole new range of fast computers became readily available to the general
 | 
						|
public. The power of large mainframes had been captured into a small
 | 
						|
desk-top computer at only a fraction of the cost.
 | 
						|
.PP
 | 
						|
In the older days, a new computer used to be very hard to integrate into
 | 
						|
the existing environment, but due to standardization in the software world
 | 
						|
incompatibility in hardware no longer means incompatibility in software.
 | 
						|
Programs that are written for computer A can often be run on computer B
 | 
						|
without major modifications. Unfortunately this is not true for all software.
 | 
						|
.PP
 | 
						|
There will always be programs that rely on the specific
 | 
						|
hardware of a certain computer for many different reasons. They
 | 
						|
can be categorized as:
 | 
						|
.IP -
 | 
						|
poorly written programs
 | 
						|
.IP -
 | 
						|
programs to directly control hardware (device drivers)
 | 
						|
.IP -
 | 
						|
code that requires efficiency (time-critical I/O drivers)
 | 
						|
.IP -
 | 
						|
programs to generate code to run on the hardware (compilers)
 | 
						|
.LP
 | 
						|
This project for instance, the design and implementation of an EM backend
 | 
						|
for SPARC processors, comes in the last category.
 | 
						|
.PP
 | 
						|
We have designed and implemented an algorithm to convert EM programs to code
 | 
						|
that will run directly on the SPARC hardware. Henceforth, both the algorithm
 | 
						|
and the implementation will be referred to as the EM-to-SPARC backend,
 | 
						|
or simply: the backend.
 | 
						|
.NH 2
 | 
						|
Why has nobody done this before?
 | 
						|
.PP
 | 
						|
Since EM was designed around 1981 and even SPARC has been around for some
 | 
						|
years now, one may wonder why nobody has ever written an EM to SPARC backend
 | 
						|
before. The reason is twofold. In the first place, there are some
 | 
						|
non-trivial problems to be solved in the design phase, and secondly,
 | 
						|
the SPARC-design combined with the lack of documentation, would surely
 | 
						|
cost a lot of blood, sweat and tears. The absence of
 | 
						|
clues to any of the design problems, combined with the \(em at first
 | 
						|
glance \(em inhuman
 | 
						|
SPARC instruction set did not make this a very attractive project.
 | 
						|
.PP
 | 
						|
On the other hand, these were exactly the reasons which made us take on
 | 
						|
this particular project: it would require design skills, as well as some
 | 
						|
hard work; a golden combination for a successful project.
 | 
						|
.bp
 |