This is the experimental LLVM backend for the intel 8085 microprocessor.
1. Implemented Functionalities
Currently basic constructs such as , loading and storing variables, function call, branching statements, logical operations (and, or, xor) and two arithmetic operations such as addition and subtraction are implemented, for i8,i16,i32 integere types. Still far way to go.
- Arguments are passed via stack, and return value is stored in register.
- 8 bit integers are returned via A reg, 16 bit integers are returned via BC reg pair and 32 bit integers are returned via stack.
The output assembly is tested in open source 8085 simulators and assemblers. Codegen Tests are located here.
This 8085 backend is purely experimental and never tested with original hardware and never used in productional use cases.
- Linker/Loader implementation.
- Adding more arithmetic operations and floating point types.
This backend is inspired by LLVM backend for AVR 8 bit microcontroller. Some of the functionalities here is referred from there.