Created
December 13, 2012 21:45
-
-
Save joseanpg/4280237 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.text | |
.globl Main_init | |
.globl Int_init | |
.globl String_init | |
.globl Bool_init | |
.globl Main.main | |
Object_init: | |
addiu $sp $sp -12 | |
sw $fp 12($sp) | |
sw $s0 8($sp) | |
sw $ra 4($sp) | |
addiu $fp $sp 4 | |
move $s0 $a0 | |
move $a0 $s0 | |
lw $fp 12($sp) | |
lw $s0 8($sp) | |
lw $ra 4($sp) | |
addiu $sp $sp 12 | |
jr $ra | |
String_init: | |
addiu $sp $sp -12 | |
sw $fp 12($sp) | |
sw $s0 8($sp) | |
sw $ra 4($sp) | |
addiu $fp $sp 4 | |
move $s0 $a0 | |
jal Object_init | |
move $a0 $s0 | |
lw $fp 12($sp) | |
lw $s0 8($sp) | |
lw $ra 4($sp) | |
addiu $sp $sp 12 | |
jr $ra | |
Bool_init: | |
addiu $sp $sp -12 | |
sw $fp 12($sp) | |
sw $s0 8($sp) | |
sw $ra 4($sp) | |
addiu $fp $sp 4 | |
move $s0 $a0 | |
jal Object_init | |
move $a0 $s0 | |
lw $fp 12($sp) | |
lw $s0 8($sp) | |
lw $ra 4($sp) | |
addiu $sp $sp 12 | |
jr $ra | |
Int_init: | |
addiu $sp $sp -12 | |
sw $fp 12($sp) | |
sw $s0 8($sp) | |
sw $ra 4($sp) | |
addiu $fp $sp 4 | |
move $s0 $a0 | |
jal Object_init | |
move $a0 $s0 | |
lw $fp 12($sp) | |
lw $s0 8($sp) | |
lw $ra 4($sp) | |
addiu $sp $sp 12 | |
jr $ra | |
IO_init: | |
addiu $sp $sp -12 | |
sw $fp 12($sp) | |
sw $s0 8($sp) | |
sw $ra 4($sp) | |
addiu $fp $sp 4 | |
move $s0 $a0 | |
jal Object_init | |
move $a0 $s0 | |
lw $fp 12($sp) | |
lw $s0 8($sp) | |
lw $ra 4($sp) | |
addiu $sp $sp 12 | |
jr $ra | |
Main_init: | |
addiu $sp $sp -12 | |
sw $fp 12($sp) | |
sw $s0 8($sp) | |
sw $ra 4($sp) | |
addiu $fp $sp 4 | |
move $s0 $a0 | |
jal IO_init | |
move $a0 $s0 | |
lw $fp 12($sp) | |
lw $s0 8($sp) | |
lw $ra 4($sp) | |
addiu $sp $sp 12 | |
jr $ra | |
Main.fibo: | |
addiu $sp $sp -20 | |
sw $fp 20($sp) | |
sw $s0 16($sp) | |
sw $ra 12($sp) | |
addiu $fp $sp 4 | |
move $s0 $a0 | |
lw $s1 20($fp) | |
la $t2 int_const0 | |
move $t1 $s1 | |
la $a0 bool_const1 | |
beq $t1 $t2 label2 | |
la $a1 bool_const0 | |
jal equality_test | |
label2: | |
lw $t1 12($a0) | |
beqz $t1 label0 | |
la $a0 int_const0 | |
b label1 | |
label0: | |
lw $s1 20($fp) | |
la $t2 int_const1 | |
move $t1 $s1 | |
la $a0 bool_const1 | |
beq $t1 $t2 label5 | |
la $a1 bool_const0 | |
jal equality_test | |
label5: | |
lw $t1 12($a0) | |
beqz $t1 label3 | |
la $a0 int_const1 | |
b label4 | |
label3: | |
lw $s1 20($fp) | |
la $a0 int_const1 | |
jal Object.copy | |
lw $t2 12($a0) | |
lw $t1 12($s1) | |
sub $t1 $t1 $t2 | |
sw $t1 12($a0) | |
sw $a0 0($sp) | |
addiu $sp $sp -4 | |
move $a0 $s0 | |
bne $a0 $zero label6 | |
la $a0 str_const0 | |
li $t1 1 | |
jal _dispatch_abort | |
label6: | |
lw $t1 8($a0) | |
lw $t1 28($t1) | |
jalr $t1 | |
move $s1 $a0 | |
lw $s2 20($fp) | |
la $a0 int_const2 | |
jal Object.copy | |
lw $t2 12($a0) | |
lw $t1 12($s2) | |
sub $t1 $t1 $t2 | |
sw $t1 12($a0) | |
sw $a0 0($sp) | |
addiu $sp $sp -4 | |
move $a0 $s0 | |
sw $s1 0($fp) | |
bne $a0 $zero label7 | |
la $a0 str_const0 | |
li $t1 1 | |
jal _dispatch_abort | |
label7: | |
lw $t1 8($a0) | |
lw $t1 28($t1) | |
jalr $t1 | |
lw $s1 0($fp) | |
jal Object.copy | |
lw $t2 12($a0) | |
lw $t1 12($s1) | |
add $t1 $t1 $t2 | |
sw $t1 12($a0) | |
label4: | |
label1: | |
lw $fp 20($sp) | |
lw $s0 16($sp) | |
lw $ra 12($sp) | |
addiu $sp $sp 24 | |
jr $ra | |
Main.main: | |
addiu $sp $sp -12 | |
sw $fp 12($sp) | |
sw $s0 8($sp) | |
sw $ra 4($sp) | |
addiu $fp $sp 4 | |
move $s0 $a0 | |
la $a0 int_const3 | |
sw $a0 0($sp) | |
addiu $sp $sp -4 | |
move $a0 $s0 | |
bne $a0 $zero label8 | |
la $a0 str_const0 | |
li $t1 1 | |
jal _dispatch_abort | |
label8: | |
lw $t1 8($a0) | |
lw $t1 28($t1) | |
jalr $t1 | |
sw $a0 0($sp) | |
addiu $sp $sp -4 | |
move $a0 $s0 | |
bne $a0 $zero label9 | |
la $a0 str_const0 | |
li $t1 1 | |
jal _dispatch_abort | |
label9: | |
lw $t1 8($a0) | |
lw $t1 16($t1) | |
jalr $t1 | |
lw $fp 12($sp) | |
lw $s0 8($sp) | |
lw $ra 4($sp) | |
addiu $sp $sp 12 | |
jr $ra |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
.data | |
.align 2 | |
.globl class_nameTab | |
.globl Main_protObj | |
.globl Int_protObj | |
.globl String_protObj | |
.globl bool_const0 | |
.globl bool_const1 | |
.globl _int_tag | |
.globl _bool_tag | |
.globl _string_tag | |
_int_tag: | |
.word 3 | |
_bool_tag: | |
.word 4 | |
_string_tag: | |
.word 5 | |
.globl _MemMgr_INITIALIZER | |
_MemMgr_INITIALIZER: | |
.word _NoGC_Init | |
.globl _MemMgr_COLLECTOR | |
_MemMgr_COLLECTOR: | |
.word _NoGC_Collect | |
.globl _MemMgr_TEST | |
_MemMgr_TEST: | |
.word 0 | |
.word -1 | |
str_const8: | |
.word 5 | |
.word 5 | |
.word String_dispTab | |
.word int_const0 | |
.byte 0 | |
.align 2 | |
.word -1 | |
str_const7: | |
.word 5 | |
.word 6 | |
.word String_dispTab | |
.word int_const4 | |
.ascii "String" | |
.byte 0 | |
.align 2 | |
.word -1 | |
str_const6: | |
.word 5 | |
.word 6 | |
.word String_dispTab | |
.word int_const5 | |
.ascii "Bool" | |
.byte 0 | |
.align 2 | |
.word -1 | |
str_const5: | |
.word 5 | |
.word 5 | |
.word String_dispTab | |
.word int_const6 | |
.ascii "Int" | |
.byte 0 | |
.align 2 | |
.word -1 | |
str_const4: | |
.word 5 | |
.word 6 | |
.word String_dispTab | |
.word int_const5 | |
.ascii "Main" | |
.byte 0 | |
.align 2 | |
.word -1 | |
str_const3: | |
.word 5 | |
.word 5 | |
.word String_dispTab | |
.word int_const2 | |
.ascii "IO" | |
.byte 0 | |
.align 2 | |
.word -1 | |
str_const2: | |
.word 5 | |
.word 6 | |
.word String_dispTab | |
.word int_const4 | |
.ascii "Object" | |
.byte 0 | |
.align 2 | |
.word -1 | |
str_const1: | |
.word 5 | |
.word 8 | |
.word String_dispTab | |
.word int_const7 | |
.ascii "<basic class>" | |
.byte 0 | |
.align 2 | |
.word -1 | |
str_const0: | |
.word 5 | |
.word 6 | |
.word String_dispTab | |
.word int_const8 | |
.ascii "fibo.cl" | |
.byte 0 | |
.align 2 | |
.word -1 | |
int_const8: | |
.word 3 | |
.word 4 | |
.word Int_dispTab | |
.word 7 | |
.word -1 | |
int_const7: | |
.word 3 | |
.word 4 | |
.word Int_dispTab | |
.word 13 | |
.word -1 | |
int_const6: | |
.word 3 | |
.word 4 | |
.word Int_dispTab | |
.word 3 | |
.word -1 | |
int_const5: | |
.word 3 | |
.word 4 | |
.word Int_dispTab | |
.word 4 | |
.word -1 | |
int_const4: | |
.word 3 | |
.word 4 | |
.word Int_dispTab | |
.word 6 | |
.word -1 | |
int_const3: | |
.word 3 | |
.word 4 | |
.word Int_dispTab | |
.word 15 | |
.word -1 | |
int_const2: | |
.word 3 | |
.word 4 | |
.word Int_dispTab | |
.word 2 | |
.word -1 | |
int_const1: | |
.word 3 | |
.word 4 | |
.word Int_dispTab | |
.word 1 | |
.word -1 | |
int_const0: | |
.word 3 | |
.word 4 | |
.word Int_dispTab | |
.word 0 | |
.word -1 | |
bool_const0: | |
.word 4 | |
.word 4 | |
.word Bool_dispTab | |
.word 0 | |
.word -1 | |
bool_const1: | |
.word 4 | |
.word 4 | |
.word Bool_dispTab | |
.word 1 | |
class_nameTab: | |
.word str_const2 | |
.word str_const3 | |
.word str_const4 | |
.word str_const5 | |
.word str_const6 | |
.word str_const7 | |
class_objTab: | |
.word Object_protObj | |
.word Object_init | |
.word IO_protObj | |
.word IO_init | |
.word Main_protObj | |
.word Main_init | |
.word Int_protObj | |
.word Int_init | |
.word Bool_protObj | |
.word Bool_init | |
.word String_protObj | |
.word String_init | |
Object_dispTab: | |
.word Object.abort | |
.word Object.type_name | |
.word Object.copy | |
String_dispTab: | |
.word Object.abort | |
.word Object.type_name | |
.word Object.copy | |
.word String.length | |
.word String.concat | |
.word String.substr | |
Bool_dispTab: | |
.word Object.abort | |
.word Object.type_name | |
.word Object.copy | |
Int_dispTab: | |
.word Object.abort | |
.word Object.type_name | |
.word Object.copy | |
IO_dispTab: | |
.word Object.abort | |
.word Object.type_name | |
.word Object.copy | |
.word IO.out_string | |
.word IO.out_int | |
.word IO.in_string | |
.word IO.in_int | |
Main_dispTab: | |
.word Object.abort | |
.word Object.type_name | |
.word Object.copy | |
.word IO.out_string | |
.word IO.out_int | |
.word IO.in_string | |
.word IO.in_int | |
.word Main.fibo | |
.word Main.main | |
.word -1 | |
Object_protObj: | |
.word 0 | |
.word 3 | |
.word Object_dispTab | |
.word -1 | |
String_protObj: | |
.word 5 | |
.word 5 | |
.word String_dispTab | |
.word int_const0 | |
.word 0 | |
.word -1 | |
Bool_protObj: | |
.word 4 | |
.word 4 | |
.word Bool_dispTab | |
.word 0 | |
.word -1 | |
Int_protObj: | |
.word 3 | |
.word 4 | |
.word Int_dispTab | |
.word 0 | |
.word -1 | |
IO_protObj: | |
.word 1 | |
.word 3 | |
.word IO_dispTab | |
.word -1 | |
Main_protObj: | |
.word 2 | |
.word 3 | |
.word Main_dispTab | |
.globl heap_start | |
heap_start: | |
.word 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
class Main inherits IO { | |
fibo(i:Int):Int { | |
if i=0 then | |
0 | |
else if i=1 then | |
1 | |
else | |
fibo(i-1)+fibo(i-2) | |
fi fi | |
}; | |
main():Object { | |
out_int(fibo(15)) | |
}; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment