Skip to content

A portable assembler with "advanced" control flow constructs; intended mainly as an intermediate representation

License

Notifications You must be signed in to change notification settings

edemko/ediacara

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Ediacara - portable assembler

I think I've hit a good level of abstraction here. This is an assembler inspired by SSA, C--, and whatever else I've read about and have knocking around my head. The key idea is to create a language/library that serves as an intermediate language for code generation. A backend that reads these asm files is responsible for register allocation and operation selection. The design is also meant to admit an implementation with an interpreter, rather than necessitating compilation.

A backend may also perform some type checking and optimizations, but those are meant to be done by a frontend that targets this lang. In particular, control flow should already be optimized, and the type system included is present only to drive size calculations and generating call/return sequences.

While C is often describes as a portable assembler, standards-compliant C is lacking a number of useful assembly features. In particular, alternate (perhaps even ad-hoc) calling conventions, tail calls, multiple return values, and alternate return continuations, and access to architecture-specific instructions are all missing.

About

A portable assembler with "advanced" control flow constructs; intended mainly as an intermediate representation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published