Advertisement
NLinker

abort call

May 1st, 2013
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
ARM 5.47 KB | None | 0 0
  1.     .data
  2.     .align  2
  3.     .globl  class_nameTab
  4.     .globl  Main_protObj
  5.     .globl  Int_protObj
  6.     .globl  String_protObj
  7.     .globl  bool_const0
  8.     .globl  bool_const1
  9.     .globl  _int_tag
  10.     .globl  _bool_tag
  11.     .globl  _string_tag
  12. _int_tag:
  13.     .word   2
  14. _bool_tag:
  15.     .word   3
  16. _string_tag:
  17.     .word   4
  18.     .globl  _MemMgr_INITIALIZER
  19. _MemMgr_INITIALIZER:
  20.     .word   _NoGC_Init
  21.     .globl  _MemMgr_COLLECTOR
  22. _MemMgr_COLLECTOR:
  23.     .word   _NoGC_Collect
  24.     .globl  _MemMgr_TEST
  25. _MemMgr_TEST:
  26.     .word   0
  27.     .word   -1
  28. str_const8:
  29.     .word   4
  30.     .word   5
  31.     .word   String_dispTab
  32.     .word   int_const0
  33.     .byte   0  
  34.     .align  2
  35.     .word   -1
  36. str_const7:
  37.     .word   4
  38.     .word   6
  39.     .word   String_dispTab
  40.     .word   int_const1
  41.     .ascii  "Main"
  42.     .byte   0  
  43.     .align  2
  44.     .word   -1
  45. str_const6:
  46.     .word   4
  47.     .word   6
  48.     .word   String_dispTab
  49.     .word   int_const2
  50.     .ascii  "String"
  51.     .byte   0  
  52.     .align  2
  53.     .word   -1
  54. str_const5:
  55.     .word   4
  56.     .word   6
  57.     .word   String_dispTab
  58.     .word   int_const1
  59.     .ascii  "Bool"
  60.     .byte   0  
  61.     .align  2
  62.     .word   -1
  63. str_const4:
  64.     .word   4
  65.     .word   5
  66.     .word   String_dispTab
  67.     .word   int_const3
  68.     .ascii  "Int"
  69.     .byte   0  
  70.     .align  2
  71.     .word   -1
  72. str_const3:
  73.     .word   4
  74.     .word   5
  75.     .word   String_dispTab
  76.     .word   int_const4
  77.     .ascii  "IO"
  78.     .byte   0  
  79.     .align  2
  80.     .word   -1
  81. str_const2:
  82.     .word   4
  83.     .word   6
  84.     .word   String_dispTab
  85.     .word   int_const2
  86.     .ascii  "Object"
  87.     .byte   0  
  88.     .align  2
  89.     .word   -1
  90. str_const1:
  91.     .word   4
  92.     .word   8
  93.     .word   String_dispTab
  94.     .word   int_const5
  95.     .ascii  "<basic class>"
  96.     .byte   0  
  97.     .align  2
  98.     .word   -1
  99. str_const0:
  100.     .word   4
  101.     .word   15
  102.     .word   String_dispTab
  103.     .word   int_const6
  104.     .ascii  "/usr/class/cs143/tests/fa05/PA5/abort.cl"
  105.     .byte   0  
  106.     .align  2
  107.     .word   -1
  108. int_const6:
  109.     .word   2
  110.     .word   4
  111.     .word   Int_dispTab
  112.     .word   40
  113.     .word   -1
  114. int_const5:
  115.     .word   2
  116.     .word   4
  117.     .word   Int_dispTab
  118.     .word   13
  119.     .word   -1
  120. int_const4:
  121.     .word   2
  122.     .word   4
  123.     .word   Int_dispTab
  124.     .word   2
  125.     .word   -1
  126. int_const3:
  127.     .word   2
  128.     .word   4
  129.     .word   Int_dispTab
  130.     .word   3
  131.     .word   -1
  132. int_const2:
  133.     .word   2
  134.     .word   4
  135.     .word   Int_dispTab
  136.     .word   6
  137.     .word   -1
  138. int_const1:
  139.     .word   2
  140.     .word   4
  141.     .word   Int_dispTab
  142.     .word   4
  143.     .word   -1
  144. int_const0:
  145.     .word   2
  146.     .word   4
  147.     .word   Int_dispTab
  148.     .word   0
  149.     .word   -1
  150. bool_const0:
  151.     .word   3
  152.     .word   4
  153.     .word   Bool_dispTab
  154.     .word   0
  155.     .word   -1
  156. bool_const1:
  157.     .word   3
  158.     .word   4
  159.     .word   Bool_dispTab
  160.     .word   1
  161. class_nameTab:
  162.     .word   str_const2
  163.     .word   str_const3
  164.     .word   str_const4
  165.     .word   str_const5
  166.     .word   str_const6
  167.     .word   str_const7
  168. class_objTab:
  169.     .word   Object_protObj
  170.     .word   Object_init
  171.     .word   IO_protObj
  172.     .word   IO_init
  173.     .word   Int_protObj
  174.     .word   Int_init
  175.     .word   Bool_protObj
  176.     .word   Bool_init
  177.     .word   String_protObj
  178.     .word   String_init
  179.     .word   Main_protObj
  180.     .word   Main_init
  181. Object_dispTab:
  182.     .word   Object.abort
  183.     .word   Object.type_name
  184.     .word   Object.copy
  185. Main_dispTab:
  186.     .word   Object.abort
  187.     .word   Object.type_name
  188.     .word   Object.copy
  189.     .word   Main.main
  190. String_dispTab:
  191.     .word   Object.abort
  192.     .word   Object.type_name
  193.     .word   Object.copy
  194.     .word   String.length
  195.     .word   String.concat
  196.     .word   String.substr
  197. Bool_dispTab:
  198.     .word   Object.abort
  199.     .word   Object.type_name
  200.     .word   Object.copy
  201. Int_dispTab:
  202.     .word   Object.abort
  203.     .word   Object.type_name
  204.     .word   Object.copy
  205. IO_dispTab:
  206.     .word   Object.abort
  207.     .word   Object.type_name
  208.     .word   Object.copy
  209.     .word   IO.out_string
  210.     .word   IO.out_int
  211.     .word   IO.in_string
  212.     .word   IO.in_int
  213.     .word   -1
  214. Object_protObj:
  215.     .word   0
  216.     .word   3
  217.     .word   Object_dispTab
  218.     .word   -1
  219. Main_protObj:
  220.     .word   5
  221.     .word   3
  222.     .word   Main_dispTab
  223.     .word   -1
  224. String_protObj:
  225.     .word   4
  226.     .word   5
  227.     .word   String_dispTab
  228.     .word   int_const0
  229.     .word   0
  230.     .word   -1
  231. Bool_protObj:
  232.     .word   3
  233.     .word   4
  234.     .word   Bool_dispTab
  235.     .word   0
  236.     .word   -1
  237. Int_protObj:
  238.     .word   2
  239.     .word   4
  240.     .word   Int_dispTab
  241.     .word   0
  242.     .word   -1
  243. IO_protObj:
  244.     .word   1
  245.     .word   3
  246.     .word   IO_dispTab
  247.     .globl  heap_start
  248. heap_start:
  249.     .word   0
  250.     .text
  251.     .globl  Main_init
  252.     .globl  Int_init
  253.     .globl  String_init
  254.     .globl  Bool_init
  255.     .globl  Main.main
  256. Object_init:
  257.     addiu   $sp $sp -12
  258.     sw  $fp 12($sp)
  259.     sw  $s0 8($sp)
  260.     sw  $ra 4($sp)
  261.     addiu   $fp $sp 4
  262.     move    $s0 $a0
  263.     move    $a0 $s0
  264.     lw  $fp 12($sp)
  265.     lw  $s0 8($sp)
  266.     lw  $ra 4($sp)
  267.     addiu   $sp $sp 12
  268.     jr  $ra
  269. Main_init:
  270.     addiu   $sp $sp -12
  271.     sw  $fp 12($sp)
  272.     sw  $s0 8($sp)
  273.     sw  $ra 4($sp)
  274.     addiu   $fp $sp 4
  275.     move    $s0 $a0
  276.     jal Object_init
  277.     move    $a0 $s0
  278.     lw  $fp 12($sp)
  279.     lw  $s0 8($sp)
  280.     lw  $ra 4($sp)
  281.     addiu   $sp $sp 12
  282.     jr  $ra
  283. String_init:
  284.     addiu   $sp $sp -12
  285.     sw  $fp 12($sp)
  286.     sw  $s0 8($sp)
  287.     sw  $ra 4($sp)
  288.     addiu   $fp $sp 4
  289.     move    $s0 $a0
  290.     jal Object_init
  291.     move    $a0 $s0
  292.     lw  $fp 12($sp)
  293.     lw  $s0 8($sp)
  294.     lw  $ra 4($sp)
  295.     addiu   $sp $sp 12
  296.     jr  $ra
  297. Bool_init:
  298.     addiu   $sp $sp -12
  299.     sw  $fp 12($sp)
  300.     sw  $s0 8($sp)
  301.     sw  $ra 4($sp)
  302.     addiu   $fp $sp 4
  303.     move    $s0 $a0
  304.     jal Object_init
  305.     move    $a0 $s0
  306.     lw  $fp 12($sp)
  307.     lw  $s0 8($sp)
  308.     lw  $ra 4($sp)
  309.     addiu   $sp $sp 12
  310.     jr  $ra
  311. Int_init:
  312.     addiu   $sp $sp -12
  313.     sw  $fp 12($sp)
  314.     sw  $s0 8($sp)
  315.     sw  $ra 4($sp)
  316.     addiu   $fp $sp 4
  317.     move    $s0 $a0
  318.     jal Object_init
  319.     move    $a0 $s0
  320.     lw  $fp 12($sp)
  321.     lw  $s0 8($sp)
  322.     lw  $ra 4($sp)
  323.     addiu   $sp $sp 12
  324.     jr  $ra
  325. IO_init:
  326.     addiu   $sp $sp -12
  327.     sw  $fp 12($sp)
  328.     sw  $s0 8($sp)
  329.     sw  $ra 4($sp)
  330.     addiu   $fp $sp 4
  331.     move    $s0 $a0
  332.     jal Object_init
  333.     move    $a0 $s0
  334.     lw  $fp 12($sp)
  335.     lw  $s0 8($sp)
  336.     lw  $ra 4($sp)
  337.     addiu   $sp $sp 12
  338.     jr  $ra
  339. Main.main:
  340.     addiu   $sp $sp -12
  341.     sw  $fp 12($sp)
  342.     sw  $s0 8($sp)
  343.     sw  $ra 4($sp)
  344.     addiu   $fp $sp 4
  345.     move    $s0 $a0
  346.     move    $a0 $s0
  347.     bne $a0 $zero label0
  348.     la  $a0 str_const0
  349.     li  $t1 2
  350.     jal _dispatch_abort
  351. label0:
  352.     lw  $t1 8($a0)
  353.     lw  $t1 0($t1)
  354.     jalr        $t1
  355.     la  $a0 int_const0
  356.     lw  $fp 12($sp)
  357.     lw  $s0 8($sp)
  358.     lw  $ra 4($sp)
  359.     addiu   $sp $sp 12
  360.     jr  $ra
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement