mirror of
https://github.com/Mercantec-GHC/h4-projekt-gruppe-0-sm.git
synced 2025-04-27 16:24:07 +02:00
compiler: example
This commit is contained in:
parent
ad06f80f72
commit
cb0406e180
@ -299,15 +299,15 @@ export class AsmGen {
|
||||
}
|
||||
}
|
||||
|
||||
private relative(offset: number): string {
|
||||
return `[rbp${offset >= 0 ? `+${offset}` : `${offset}`}]`;
|
||||
}
|
||||
|
||||
private kill(reg: lir.Reg) {
|
||||
this.liveRegs.delete(reg);
|
||||
this.regSelect.delete(reg);
|
||||
}
|
||||
|
||||
private relative(offset: number): string {
|
||||
return `[rbp${offset >= 0 ? `+${offset}` : `${offset}`}]`;
|
||||
}
|
||||
|
||||
private writeIns(ins: string) {
|
||||
this.writer.writeln(` ${ins}`);
|
||||
}
|
||||
|
@ -9,8 +9,8 @@ import {
|
||||
} from "./lir.ts";
|
||||
|
||||
export function optimizeLir(program: Program) {
|
||||
//console.log("=== BEFORE OPTIMIZATION ===");
|
||||
//console.log(new ProgramStringifyer(program).stringify());
|
||||
console.log("=== BEFORE OPTIMIZATION ===");
|
||||
console.log(new ProgramStringifyer(program).stringify());
|
||||
|
||||
let sizeBefore = program.fns
|
||||
.reduce((acc, fn) => acc + fn.lines.length, 0);
|
||||
@ -34,8 +34,8 @@ export function optimizeLir(program: Program) {
|
||||
sizeHistory.add(sizeBefore);
|
||||
}
|
||||
|
||||
//console.log("=== AFTER OPTIMIZATION ===");
|
||||
//console.log(new ProgramStringifyer(program).stringify());
|
||||
console.log("=== AFTER OPTIMIZATION ===");
|
||||
console.log(new ProgramStringifyer(program).stringify());
|
||||
}
|
||||
|
||||
function eliminatePushPop(fn: Fn) {
|
||||
|
@ -6,15 +6,28 @@ fn notice() -> int {}
|
||||
fn print_int(value: int) -> int {}
|
||||
|
||||
|
||||
|
||||
|
||||
#[c_function("println")]
|
||||
fn println(value: *str) -> int {}
|
||||
|
||||
fn add(a: int, b: int) -> int { return a + b; }
|
||||
fn compute() -> int { return 0; }
|
||||
fn consume(value: int) -> int { return 0; }
|
||||
|
||||
|
||||
#[c_export("sbc_main")]
|
||||
fn main() -> int {
|
||||
println("hello_world");
|
||||
let i = 0;
|
||||
|
||||
loop {
|
||||
if 10 < i + 1 {
|
||||
break;
|
||||
}
|
||||
|
||||
println("hello\ world");
|
||||
|
||||
i = i + 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user