seathu
This commit is contained in:
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
.vscode
|
||||
Fasto/bin/*
|
||||
Fasto/obj/*
|
267
Fasto/Lexer.fs
Normal file
267
Fasto/Lexer.fs
Normal file
@ -0,0 +1,267 @@
|
||||
# 18 "Lexer.fsl"
|
||||
|
||||
module Lexer
|
||||
|
||||
open System;;
|
||||
open FSharp.Text.Lexing;;
|
||||
open System.Text;;
|
||||
|
||||
(* A lexer definition for Fasto, for use with fslex. *)
|
||||
|
||||
(* boilerplate code for all lexer files... *)
|
||||
let mutable currentLine = 1
|
||||
let mutable lineStartPos = [0]
|
||||
|
||||
let rec getLineCol pos line = function
|
||||
| (p1::ps) ->
|
||||
if pos>=p1
|
||||
then (line, pos-p1)
|
||||
else getLineCol pos (line-1) ps
|
||||
| [] -> (0,0) (* should not happen *)
|
||||
|
||||
let getPos (lexbuf : LexBuffer<'char>) =
|
||||
getLineCol lexbuf.StartPos.pos_cnum
|
||||
(currentLine)
|
||||
(lineStartPos)
|
||||
|
||||
exception LexicalError of string * (int * int) (* (message, (line, column)) *)
|
||||
|
||||
let lexerError lexbuf s =
|
||||
raise (LexicalError (s, getPos lexbuf))
|
||||
|
||||
(* This one is language specific, yet very common. Alternative would
|
||||
be to encode every keyword as a regexp. This one is much easier.
|
||||
Note that here we recognize specific keywords, and if none matches
|
||||
then we assume we have found a user-defined identifier (last case).
|
||||
*)
|
||||
let keyword (s, pos) =
|
||||
match s with
|
||||
| "if" -> Parser.IF pos
|
||||
| "then" -> Parser.THEN pos
|
||||
| "else" -> Parser.ELSE pos
|
||||
| "let" -> Parser.LET pos
|
||||
| "in" -> Parser.IN pos
|
||||
| "int" -> Parser.INT pos
|
||||
| "bool" -> Parser.BOOL pos
|
||||
| "char" -> Parser.CHAR pos
|
||||
| "fun" -> Parser.FUN pos
|
||||
| "fn" -> Parser.FN pos
|
||||
| "op" -> Parser.OP pos
|
||||
|
||||
(* specials: *)
|
||||
| "iota" -> Parser.IOTA pos
|
||||
| "map" -> Parser.MAP pos
|
||||
| "reduce" -> Parser.REDUCE pos
|
||||
| "read" -> Parser.READ pos
|
||||
| "write" -> Parser.WRITE pos
|
||||
| _ -> Parser.ID (s, pos)
|
||||
|
||||
|
||||
# 60 "Lexer.fs"
|
||||
let trans : uint16[] array =
|
||||
[|
|
||||
(* State 0 *)
|
||||
[|21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 1us; 2us; 21us; 2us; 1us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 1us; 21us; 8us; 21us; 21us; 21us; 21us; 7us; 13us; 14us; 21us; 9us; 19us; 10us; 21us; 3us; 4us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 5us; 21us; 21us; 12us; 11us; 21us; 21us; 21us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 15us; 21us; 16us; 21us; 21us; 21us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 6us; 17us; 21us; 18us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 21us; 20us; |];
|
||||
(* State 1 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 34us; 65535us; 65535us; 65535us; 34us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 34us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 2 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 3 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 32us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 4 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 5 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 6 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 65535us; 65535us; 65535us; 65535us; 30us; 65535us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 7 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 27us; 27us; 65535us; 27us; 27us; 27us; 27us; 65535us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 28us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 27us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 8 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 25us; 25us; 24us; 25us; 25us; 25us; 25us; 65535us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 26us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 9 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 10 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 11 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 23us; 22us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 12 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 13 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 14 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 15 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 16 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 17 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 18 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 19 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 20 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 21 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 22 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 23 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 24 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 25 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 25us; 25us; 24us; 25us; 25us; 25us; 25us; 65535us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 26us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 25us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 26 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 25us; 65535us; 65535us; 65535us; 65535us; 25us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 25us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 25us; 65535us; 65535us; 65535us; 65535us; 65535us; 25us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 27 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 29us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 28 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 27us; 65535us; 65535us; 65535us; 65535us; 27us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 27us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 27us; 65535us; 65535us; 65535us; 65535us; 65535us; 27us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 29 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 30 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 65535us; 65535us; 65535us; 65535us; 30us; 65535us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 30us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 31 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 31us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
(* State 32 *)
|
||||
[|33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 65535us; 33us; 65535us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 65535us; |];
|
||||
(* State 33 *)
|
||||
[|33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 65535us; 33us; 65535us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 33us; 65535us; |];
|
||||
(* State 34 *)
|
||||
[|65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 34us; 65535us; 65535us; 65535us; 34us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 34us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; 65535us; |];
|
||||
|]
|
||||
let actions : uint16[] = [|65535us; 0us; 1us; 21us; 3us; 3us; 4us; 21us; 21us; 7us; 8us; 11us; 12us; 13us; 14us; 15us; 16us; 17us; 18us; 19us; 20us; 21us; 9us; 10us; 6us; 65535us; 65535us; 65535us; 65535us; 5us; 4us; 3us; 2us; 2us; 0us; |]
|
||||
let _fslex_tables = FSharp.Text.Lexing.AsciiTables.Create(trans,actions)
|
||||
let rec _fslex_dummy () = _fslex_dummy()
|
||||
// Rule Token
|
||||
and Token lexbuf =
|
||||
match _fslex_tables.Interpret(0,lexbuf) with
|
||||
| 0 -> (
|
||||
# 78 "Lexer.fsl"
|
||||
Token lexbuf
|
||||
# 143 "Lexer.fs"
|
||||
)
|
||||
| 1 -> (
|
||||
# 79 "Lexer.fsl"
|
||||
currentLine <- currentLine + 1;
|
||||
lineStartPos <- lexbuf.StartPos.pos_cnum
|
||||
:: lineStartPos;
|
||||
Token lexbuf
|
||||
# 151 "Lexer.fs"
|
||||
)
|
||||
| 2 -> (
|
||||
# 83 "Lexer.fsl"
|
||||
Token lexbuf
|
||||
# 156 "Lexer.fs"
|
||||
)
|
||||
| 3 -> (
|
||||
# 85 "Lexer.fsl"
|
||||
Parser.NUM
|
||||
( int (Encoding.UTF8.GetString(lexbuf.Lexeme))
|
||||
, getPos lexbuf )
|
||||
|
||||
# 164 "Lexer.fs"
|
||||
)
|
||||
| 4 -> (
|
||||
# 90 "Lexer.fsl"
|
||||
keyword ( Encoding.UTF8.GetString(lexbuf.Lexeme)
|
||||
, getPos lexbuf )
|
||||
# 170 "Lexer.fs"
|
||||
)
|
||||
| 5 -> (
|
||||
# 93 "Lexer.fsl"
|
||||
let str0 = Encoding.UTF8.GetString(lexbuf.Lexeme)
|
||||
let str1 = str0.Substring (1, (String.length str0) - 2)
|
||||
let str2 = AbSyn.fromCString str1
|
||||
Parser.CHARLIT (str2.Chars(0), getPos lexbuf)
|
||||
|
||||
# 179 "Lexer.fs"
|
||||
)
|
||||
| 6 -> (
|
||||
# 99 "Lexer.fsl"
|
||||
|
||||
let str0 = Encoding.UTF8.GetString(lexbuf.Lexeme)
|
||||
let str1 = str0.Substring (1, (String.length str0) - 2)
|
||||
Parser.STRINGLIT (AbSyn.fromCString str1, getPos lexbuf)
|
||||
|
||||
# 188 "Lexer.fs"
|
||||
)
|
||||
| 7 -> (
|
||||
# 104 "Lexer.fsl"
|
||||
Parser.PLUS (getPos lexbuf)
|
||||
# 193 "Lexer.fs"
|
||||
)
|
||||
| 8 -> (
|
||||
# 105 "Lexer.fsl"
|
||||
Parser.MINUS (getPos lexbuf)
|
||||
# 198 "Lexer.fs"
|
||||
)
|
||||
| 9 -> (
|
||||
# 106 "Lexer.fsl"
|
||||
Parser.ARROW (getPos lexbuf)
|
||||
# 203 "Lexer.fs"
|
||||
)
|
||||
| 10 -> (
|
||||
# 107 "Lexer.fsl"
|
||||
Parser.DEQ (getPos lexbuf)
|
||||
# 208 "Lexer.fs"
|
||||
)
|
||||
| 11 -> (
|
||||
# 108 "Lexer.fsl"
|
||||
Parser.EQ (getPos lexbuf)
|
||||
# 213 "Lexer.fs"
|
||||
)
|
||||
| 12 -> (
|
||||
# 109 "Lexer.fsl"
|
||||
Parser.LTH (getPos lexbuf)
|
||||
# 218 "Lexer.fs"
|
||||
)
|
||||
| 13 -> (
|
||||
# 110 "Lexer.fsl"
|
||||
Parser.LPAR (getPos lexbuf)
|
||||
# 223 "Lexer.fs"
|
||||
)
|
||||
| 14 -> (
|
||||
# 111 "Lexer.fsl"
|
||||
Parser.RPAR (getPos lexbuf)
|
||||
# 228 "Lexer.fs"
|
||||
)
|
||||
| 15 -> (
|
||||
# 112 "Lexer.fsl"
|
||||
Parser.LBRACKET (getPos lexbuf)
|
||||
# 233 "Lexer.fs"
|
||||
)
|
||||
| 16 -> (
|
||||
# 113 "Lexer.fsl"
|
||||
Parser.RBRACKET (getPos lexbuf)
|
||||
# 238 "Lexer.fs"
|
||||
)
|
||||
| 17 -> (
|
||||
# 114 "Lexer.fsl"
|
||||
Parser.LCURLY (getPos lexbuf)
|
||||
# 243 "Lexer.fs"
|
||||
)
|
||||
| 18 -> (
|
||||
# 115 "Lexer.fsl"
|
||||
Parser.RCURLY (getPos lexbuf)
|
||||
# 248 "Lexer.fs"
|
||||
)
|
||||
| 19 -> (
|
||||
# 116 "Lexer.fsl"
|
||||
Parser.COMMA (getPos lexbuf)
|
||||
# 253 "Lexer.fs"
|
||||
)
|
||||
| 20 -> (
|
||||
# 117 "Lexer.fsl"
|
||||
Parser.EOF (getPos lexbuf)
|
||||
# 258 "Lexer.fs"
|
||||
)
|
||||
| 21 -> (
|
||||
# 118 "Lexer.fsl"
|
||||
lexerError lexbuf "Illegal symbol in input"
|
||||
# 263 "Lexer.fs"
|
||||
)
|
||||
| _ -> failwith "Token"
|
||||
|
||||
# 3000000 "Lexer.fs"
|
887
Fasto/Parser.fs
Normal file
887
Fasto/Parser.fs
Normal file
File diff suppressed because one or more lines are too long
101
Fasto/Parser.fsi
Normal file
101
Fasto/Parser.fsi
Normal file
@ -0,0 +1,101 @@
|
||||
// Signature file for parser generated by fsyacc
|
||||
module Parser
|
||||
type token =
|
||||
| LPAR of (Position)
|
||||
| RPAR of (Position)
|
||||
| LBRACKET of (Position)
|
||||
| RBRACKET of (Position)
|
||||
| LCURLY of (Position)
|
||||
| RCURLY of (Position)
|
||||
| FUN of (Position)
|
||||
| FN of (Position)
|
||||
| COMMA of (Position)
|
||||
| SEMICOLON of (Position)
|
||||
| READ of (Position)
|
||||
| WRITE of (Position)
|
||||
| DEQ of (Position)
|
||||
| LTH of (Position)
|
||||
| EQ of (Position)
|
||||
| OP of (Position)
|
||||
| MAP of (Position)
|
||||
| REDUCE of (Position)
|
||||
| IOTA of (Position)
|
||||
| ARROW of (Position)
|
||||
| PLUS of (Position)
|
||||
| MINUS of (Position)
|
||||
| LESS of (Position)
|
||||
| INT of (Position)
|
||||
| CHAR of (Position)
|
||||
| BOOL of (Position)
|
||||
| IF of (Position)
|
||||
| THEN of (Position)
|
||||
| ELSE of (Position)
|
||||
| LET of (Position)
|
||||
| IN of (Position)
|
||||
| EOF of (Position)
|
||||
| ID of (string * Position)
|
||||
| STRINGLIT of (string * Position)
|
||||
| CHARLIT of (char * Position)
|
||||
| NUM of (int * Position)
|
||||
type tokenId =
|
||||
| TOKEN_LPAR
|
||||
| TOKEN_RPAR
|
||||
| TOKEN_LBRACKET
|
||||
| TOKEN_RBRACKET
|
||||
| TOKEN_LCURLY
|
||||
| TOKEN_RCURLY
|
||||
| TOKEN_FUN
|
||||
| TOKEN_FN
|
||||
| TOKEN_COMMA
|
||||
| TOKEN_SEMICOLON
|
||||
| TOKEN_READ
|
||||
| TOKEN_WRITE
|
||||
| TOKEN_DEQ
|
||||
| TOKEN_LTH
|
||||
| TOKEN_EQ
|
||||
| TOKEN_OP
|
||||
| TOKEN_MAP
|
||||
| TOKEN_REDUCE
|
||||
| TOKEN_IOTA
|
||||
| TOKEN_ARROW
|
||||
| TOKEN_PLUS
|
||||
| TOKEN_MINUS
|
||||
| TOKEN_LESS
|
||||
| TOKEN_INT
|
||||
| TOKEN_CHAR
|
||||
| TOKEN_BOOL
|
||||
| TOKEN_IF
|
||||
| TOKEN_THEN
|
||||
| TOKEN_ELSE
|
||||
| TOKEN_LET
|
||||
| TOKEN_IN
|
||||
| TOKEN_EOF
|
||||
| TOKEN_ID
|
||||
| TOKEN_STRINGLIT
|
||||
| TOKEN_CHARLIT
|
||||
| TOKEN_NUM
|
||||
| TOKEN_end_of_input
|
||||
| TOKEN_error
|
||||
type nonTerminalId =
|
||||
| NONTERM__startProg
|
||||
| NONTERM_Prog
|
||||
| NONTERM_FunDecs
|
||||
| NONTERM_Fun
|
||||
| NONTERM_Type
|
||||
| NONTERM_Params
|
||||
| NONTERM_BinOp
|
||||
| NONTERM_Exp
|
||||
| NONTERM_Exps
|
||||
| NONTERM_FunArg
|
||||
/// This function maps tokens to integer indexes
|
||||
val tagOfToken: token -> int
|
||||
|
||||
/// This function maps integer indexes to symbolic token ids
|
||||
val tokenTagToTokenId: int -> tokenId
|
||||
|
||||
/// This function maps production indexes returned in syntax errors to strings representing the non terminal that would be produced by that production
|
||||
val prodIdxToNonTerminal: int -> nonTerminalId
|
||||
|
||||
/// This function gets the name of a token as a string
|
||||
val token_to_string: token -> string
|
||||
val Prog : (FSharp.Text.Lexing.LexBuffer<'cty> -> token) -> FSharp.Text.Lexing.LexBuffer<'cty> -> (AbSyn.UntypedProg)
|
4640
Fasto/Parser.fsyacc.output
Normal file
4640
Fasto/Parser.fsyacc.output
Normal file
File diff suppressed because it is too large
Load Diff
@ -17,189 +17,316 @@
|
||||
_stop_:
|
||||
ori $2, $0, 10
|
||||
syscall
|
||||
# Function main
|
||||
main:
|
||||
# Function plus5
|
||||
plus5:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_x_1_,$2,0
|
||||
# ori _plus_L_3_,_param_x_1_,0
|
||||
ori $3, $0, 5
|
||||
# was: ori _plus_R_4_, $0, 5
|
||||
add $2, $2, $3
|
||||
# was: add _plus5res_2_, _plus_L_3_, _plus_R_4_
|
||||
# ori $2,_plus5res_2_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function mul2
|
||||
mul2:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_x_5_,$2,0
|
||||
ori $3, $2, 0
|
||||
# was: ori _plus_L_7_, _param_x_5_, 0
|
||||
# ori _plus_R_8_,_param_x_5_,0
|
||||
add $2, $3, $2
|
||||
# was: add _mul2res_6_, _plus_L_7_, _plus_R_8_
|
||||
# ori $2,_mul2res_6_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function testcomp
|
||||
testcomp:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_x_9_,$2,0
|
||||
# ori _arg_12_,_param_x_9_,0
|
||||
# ori $2,_arg_12_,0
|
||||
jal write_int_arr
|
||||
# was: jal write_int_arr, $2
|
||||
# ori _arg_11_,$2,0
|
||||
# ori $2,_arg_11_,0
|
||||
jal write_int_arr
|
||||
# was: jal write_int_arr, $2
|
||||
# ori _testcompres_10_,$2,0
|
||||
# ori $2,_testcompres_10_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function write_int
|
||||
write_int:
|
||||
sw $31, -4($29)
|
||||
sw $16, -8($29)
|
||||
addi $29, $29, -12
|
||||
# ori _param_x_13_,$2,0
|
||||
ori $16, $2, 0
|
||||
# was: ori _tmp_15_, _param_x_13_, 0
|
||||
# ori _write_intres_14_,_tmp_15_,0
|
||||
ori $2, $16, 0
|
||||
# was: ori $2, _write_intres_14_, 0
|
||||
jal putint
|
||||
# was: jal putint, $2
|
||||
ori $2, $16, 0
|
||||
# was: ori $2, _write_intres_14_, 0
|
||||
addi $29, $29, 12
|
||||
lw $16, -8($29)
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function write_int_arr
|
||||
write_int_arr:
|
||||
sw $31, -4($29)
|
||||
sw $21, -28($29)
|
||||
sw $20, -24($29)
|
||||
sw $19, -20($29)
|
||||
sw $18, -16($29)
|
||||
sw $17, -12($29)
|
||||
sw $16, -8($29)
|
||||
addi $29, $29, -32
|
||||
addi $29, $29, -28
|
||||
# ori _param_x_16_,$2,0
|
||||
# ori _arr_reg_19_,_param_x_16_,0
|
||||
lw $16, 0($2)
|
||||
# was: lw _size_reg_18_, 0(_arr_reg_19_)
|
||||
ori $17, $28, 0
|
||||
# was: ori _write_int_arrres_17_, $28, 0
|
||||
sll $3, $16, 2
|
||||
# was: sll _tmp_28_, _size_reg_18_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_28_, _tmp_28_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_28_
|
||||
sw $16, 0($17)
|
||||
# was: sw _size_reg_18_, 0(_write_int_arrres_17_)
|
||||
addi $18, $17, 4
|
||||
# was: addi _addr_reg_22_, _write_int_arrres_17_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_23_, $0, 0
|
||||
addi $20, $2, 4
|
||||
# was: addi _elem_reg_20_, _arr_reg_19_, 4
|
||||
_loop_beg_24_:
|
||||
sub $2, $19, $16
|
||||
# was: sub _tmp_reg_26_, _i_reg_23_, _size_reg_18_
|
||||
bgez $2, _loop_end_25_
|
||||
# was: bgez _tmp_reg_26_, _loop_end_25_
|
||||
lw $2, 0($20)
|
||||
# was: lw _res_reg_21_, 0(_elem_reg_20_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_20_, _elem_reg_20_, 4
|
||||
# ori $2,_res_reg_21_,0
|
||||
jal write_int
|
||||
# was: jal write_int, $2
|
||||
# ori _tmp_reg_27_,$2,0
|
||||
# ori _res_reg_21_,_tmp_reg_27_,0
|
||||
sw $2, 0($18)
|
||||
# was: sw _res_reg_21_, 0(_addr_reg_22_)
|
||||
addi $18, $18, 4
|
||||
# was: addi _addr_reg_22_, _addr_reg_22_, 4
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_23_, _i_reg_23_, 1
|
||||
j _loop_beg_24_
|
||||
_loop_end_25_:
|
||||
ori $2, $17, 0
|
||||
# was: ori $2, _write_int_arrres_17_, 0
|
||||
addi $29, $29, 28
|
||||
lw $20, -24($29)
|
||||
lw $19, -20($29)
|
||||
lw $18, -16($29)
|
||||
lw $17, -12($29)
|
||||
lw $16, -8($29)
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function boo
|
||||
boo:
|
||||
sw $31, -4($29)
|
||||
sw $20, -24($29)
|
||||
sw $19, -20($29)
|
||||
sw $18, -16($29)
|
||||
sw $17, -12($29)
|
||||
sw $16, -8($29)
|
||||
addi $29, $29, -28
|
||||
# ori _param_a_29_,$2,0
|
||||
ori $4, $0, 5
|
||||
# was: ori _plus_L_33_, $0, 5
|
||||
ori $3, $0, 3
|
||||
# was: ori _plus_R_34_, $0, 3
|
||||
add $0, $4, $3
|
||||
# was: add _letBind_32_, _plus_L_33_, _plus_R_34_
|
||||
# ori _arr_reg_36_,_param_a_29_,0
|
||||
lw $17, 0($2)
|
||||
# was: lw _size_reg_35_, 0(_arr_reg_36_)
|
||||
ori $16, $28, 0
|
||||
# was: ori _letBind_31_, $28, 0
|
||||
sll $3, $17, 2
|
||||
# was: sll _tmp_45_, _size_reg_35_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_45_, _tmp_45_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_45_
|
||||
sw $17, 0($16)
|
||||
# was: sw _size_reg_35_, 0(_letBind_31_)
|
||||
addi $18, $16, 4
|
||||
# was: addi _addr_reg_39_, _letBind_31_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_40_, $0, 0
|
||||
addi $20, $2, 4
|
||||
# was: addi _elem_reg_37_, _arr_reg_36_, 4
|
||||
_loop_beg_41_:
|
||||
sub $2, $19, $17
|
||||
# was: sub _tmp_reg_43_, _i_reg_40_, _size_reg_35_
|
||||
bgez $2, _loop_end_42_
|
||||
# was: bgez _tmp_reg_43_, _loop_end_42_
|
||||
lw $2, 0($20)
|
||||
# was: lw _res_reg_38_, 0(_elem_reg_37_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_37_, _elem_reg_37_, 4
|
||||
# ori $2,_res_reg_38_,0
|
||||
jal plus5
|
||||
# was: jal plus5, $2
|
||||
# ori _tmp_reg_44_,$2,0
|
||||
# ori _res_reg_38_,_tmp_reg_44_,0
|
||||
sw $2, 0($18)
|
||||
# was: sw _res_reg_38_, 0(_addr_reg_39_)
|
||||
addi $18, $18, 4
|
||||
# was: addi _addr_reg_39_, _addr_reg_39_, 4
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_40_, _i_reg_40_, 1
|
||||
j _loop_beg_41_
|
||||
_loop_end_42_:
|
||||
ori $2, $16, 0
|
||||
# was: ori _boores_30_, _letBind_31_, 0
|
||||
# ori $2,_boores_30_,0
|
||||
addi $29, $29, 28
|
||||
lw $20, -24($29)
|
||||
lw $19, -20($29)
|
||||
lw $18, -16($29)
|
||||
lw $17, -12($29)
|
||||
lw $16, -8($29)
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function main
|
||||
main:
|
||||
sw $31, -4($29)
|
||||
sw $20, -24($29)
|
||||
sw $19, -20($29)
|
||||
sw $18, -16($29)
|
||||
sw $17, -12($29)
|
||||
sw $16, -8($29)
|
||||
addi $29, $29, -28
|
||||
jal getint
|
||||
# was: jal getint, $2
|
||||
# ori _letBind_2_,$2,0
|
||||
# ori _size_reg_4_,_letBind_2_,0
|
||||
bgez $2, _safe_lab_5_
|
||||
# was: bgez _size_reg_4_, _safe_lab_5_
|
||||
ori $3, $2, 0
|
||||
# was: ori _letBind_47_, $2, 0
|
||||
# ori _size_reg_49_,_letBind_47_,0
|
||||
bgez $3, _safe_lab_50_
|
||||
# was: bgez _size_reg_49_, _safe_lab_50_
|
||||
ori $5, $0, 15
|
||||
# was: ori $5, $0, 15
|
||||
la $6, _Msg_IllegalArraySize_
|
||||
# was: la $6, _Msg_IllegalArraySize_
|
||||
j _RuntimeError_
|
||||
_safe_lab_5_:
|
||||
ori $3, $28, 0
|
||||
# was: ori _letBind_3_, $28, 0
|
||||
sll $4, $2, 2
|
||||
# was: sll _tmp_11_, _size_reg_4_, 2
|
||||
_safe_lab_50_:
|
||||
ori $2, $28, 0
|
||||
# was: ori _letBind_48_, $28, 0
|
||||
sll $4, $3, 2
|
||||
# was: sll _tmp_56_, _size_reg_49_, 2
|
||||
addi $4, $4, 4
|
||||
# was: addi _tmp_11_, _tmp_11_, 4
|
||||
# was: addi _tmp_56_, _tmp_56_, 4
|
||||
add $28, $28, $4
|
||||
# was: add $28, $28, _tmp_11_
|
||||
sw $2, 0($3)
|
||||
# was: sw _size_reg_4_, 0(_letBind_3_)
|
||||
addi $6, $3, 4
|
||||
# was: addi _addr_reg_6_, _letBind_3_, 4
|
||||
ori $5, $0, 0
|
||||
# was: ori _i_reg_7_, $0, 0
|
||||
_loop_beg_8_:
|
||||
sub $4, $5, $2
|
||||
# was: sub _tmp_reg_10_, _i_reg_7_, _size_reg_4_
|
||||
bgez $4, _loop_end_9_
|
||||
# was: bgez _tmp_reg_10_, _loop_end_9_
|
||||
sw $5, 0($6)
|
||||
# was: sw _i_reg_7_, 0(_addr_reg_6_)
|
||||
addi $6, $6, 4
|
||||
# was: addi _addr_reg_6_, _addr_reg_6_, 4
|
||||
addi $5, $5, 1
|
||||
# was: addi _i_reg_7_, _i_reg_7_, 1
|
||||
j _loop_beg_8_
|
||||
_loop_end_9_:
|
||||
ori $2, $3, 0
|
||||
# was: ori _arr_reg_14_, _letBind_3_, 0
|
||||
lw $4, 0($2)
|
||||
# was: lw _size_reg_13_, 0(_arr_reg_14_)
|
||||
ori $6, $28, 0
|
||||
# was: ori _letBind_12_, $28, 0
|
||||
sll $3, $4, 2
|
||||
# was: sll _tmp_25_, _size_reg_13_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_25_, _tmp_25_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_25_
|
||||
sw $4, 0($6)
|
||||
# was: sw _size_reg_13_, 0(_letBind_12_)
|
||||
addi $3, $6, 4
|
||||
# was: addi _addr_reg_17_, _letBind_12_, 4
|
||||
ori $5, $0, 0
|
||||
# was: ori _i_reg_18_, $0, 0
|
||||
addi $7, $2, 4
|
||||
# was: addi _elem_reg_15_, _arr_reg_14_, 4
|
||||
_loop_beg_19_:
|
||||
sub $2, $5, $4
|
||||
# was: sub _tmp_reg_21_, _i_reg_18_, _size_reg_13_
|
||||
bgez $2, _loop_end_20_
|
||||
# was: bgez _tmp_reg_21_, _loop_end_20_
|
||||
lw $2, 0($7)
|
||||
# was: lw _res_reg_16_, 0(_elem_reg_15_)
|
||||
addi $7, $7, 4
|
||||
# was: addi _elem_reg_15_, _elem_reg_15_, 4
|
||||
ori $8, $2, 0
|
||||
# was: ori _plus_L_23_, _res_reg_16_, 0
|
||||
ori $2, $0, 5
|
||||
# was: ori _plus_R_24_, $0, 5
|
||||
add $2, $8, $2
|
||||
# was: add _fun_arg_res_22_, _plus_L_23_, _plus_R_24_
|
||||
# ori _res_reg_16_,_fun_arg_res_22_,0
|
||||
sw $2, 0($3)
|
||||
# was: sw _res_reg_16_, 0(_addr_reg_17_)
|
||||
addi $3, $3, 4
|
||||
# was: addi _addr_reg_17_, _addr_reg_17_, 4
|
||||
addi $5, $5, 1
|
||||
# was: addi _i_reg_18_, _i_reg_18_, 1
|
||||
j _loop_beg_19_
|
||||
_loop_end_20_:
|
||||
ori $2, $6, 0
|
||||
# was: ori _arr_reg_28_, _letBind_12_, 0
|
||||
lw $4, 0($2)
|
||||
# was: lw _size_reg_27_, 0(_arr_reg_28_)
|
||||
ori $5, $28, 0
|
||||
# was: ori _letBind_26_, $28, 0
|
||||
sll $3, $4, 2
|
||||
# was: sll _tmp_39_, _size_reg_27_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_39_, _tmp_39_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_39_
|
||||
sw $4, 0($5)
|
||||
# was: sw _size_reg_27_, 0(_letBind_26_)
|
||||
addi $3, $5, 4
|
||||
# was: addi _addr_reg_31_, _letBind_26_, 4
|
||||
# was: add $28, $28, _tmp_56_
|
||||
sw $3, 0($2)
|
||||
# was: sw _size_reg_49_, 0(_letBind_48_)
|
||||
addi $5, $2, 4
|
||||
# was: addi _addr_reg_51_, _letBind_48_, 4
|
||||
ori $6, $0, 0
|
||||
# was: ori _i_reg_32_, $0, 0
|
||||
addi $7, $2, 4
|
||||
# was: addi _elem_reg_29_, _arr_reg_28_, 4
|
||||
_loop_beg_33_:
|
||||
sub $2, $6, $4
|
||||
# was: sub _tmp_reg_35_, _i_reg_32_, _size_reg_27_
|
||||
bgez $2, _loop_end_34_
|
||||
# was: bgez _tmp_reg_35_, _loop_end_34_
|
||||
lw $2, 0($7)
|
||||
# was: lw _res_reg_30_, 0(_elem_reg_29_)
|
||||
addi $7, $7, 4
|
||||
# was: addi _elem_reg_29_, _elem_reg_29_, 4
|
||||
ori $8, $2, 0
|
||||
# was: ori _plus_L_37_, _res_reg_30_, 0
|
||||
# ori _plus_R_38_,_res_reg_30_,0
|
||||
add $2, $8, $2
|
||||
# was: add _fun_arg_res_36_, _plus_L_37_, _plus_R_38_
|
||||
# ori _res_reg_30_,_fun_arg_res_36_,0
|
||||
sw $2, 0($3)
|
||||
# was: sw _res_reg_30_, 0(_addr_reg_31_)
|
||||
addi $3, $3, 4
|
||||
# was: addi _addr_reg_31_, _addr_reg_31_, 4
|
||||
# was: ori _i_reg_52_, $0, 0
|
||||
_loop_beg_53_:
|
||||
sub $4, $6, $3
|
||||
# was: sub _tmp_reg_55_, _i_reg_52_, _size_reg_49_
|
||||
bgez $4, _loop_end_54_
|
||||
# was: bgez _tmp_reg_55_, _loop_end_54_
|
||||
sw $6, 0($5)
|
||||
# was: sw _i_reg_52_, 0(_addr_reg_51_)
|
||||
addi $5, $5, 4
|
||||
# was: addi _addr_reg_51_, _addr_reg_51_, 4
|
||||
addi $6, $6, 1
|
||||
# was: addi _i_reg_32_, _i_reg_32_, 1
|
||||
j _loop_beg_33_
|
||||
_loop_end_34_:
|
||||
# ori _arr_reg_41_,_letBind_26_,0
|
||||
lw $16, 0($5)
|
||||
# was: lw _size_reg_40_, 0(_arr_reg_41_)
|
||||
# was: addi _i_reg_52_, _i_reg_52_, 1
|
||||
j _loop_beg_53_
|
||||
_loop_end_54_:
|
||||
# ori _plus_L_59_,_letBind_47_,0
|
||||
ori $4, $3, 0
|
||||
# was: ori _plus_R_60_, _letBind_47_, 0
|
||||
add $0, $3, $4
|
||||
# was: add _letBind_58_, _plus_L_59_, _plus_R_60_
|
||||
ori $4, $3, 0
|
||||
# was: ori _plus_L_63_, _letBind_47_, 0
|
||||
# ori _plus_R_64_,_letBind_47_,0
|
||||
add $4, $4, $3
|
||||
# was: add _plus_L_61_, _plus_L_63_, _plus_R_64_
|
||||
# ori _plus_R_62_,_letBind_47_,0
|
||||
add $0, $4, $3
|
||||
# was: add _letBind_57_, _plus_L_61_, _plus_R_62_
|
||||
# ori _arg_66_,_letBind_48_,0
|
||||
# ori $2,_arg_66_,0
|
||||
jal boo
|
||||
# was: jal boo, $2
|
||||
# ori _letBind_65_,$2,0
|
||||
# ori _arr_reg_69_,_letBind_65_,0
|
||||
lw $16, 0($2)
|
||||
# was: lw _size_reg_68_, 0(_arr_reg_69_)
|
||||
ori $17, $28, 0
|
||||
# was: ori _mainres_1_, $28, 0
|
||||
sll $2, $16, 2
|
||||
# was: sll _tmp_51_, _size_reg_40_, 2
|
||||
addi $2, $2, 4
|
||||
# was: addi _tmp_51_, _tmp_51_, 4
|
||||
add $28, $28, $2
|
||||
# was: add $28, $28, _tmp_51_
|
||||
# was: ori _letBind_67_, $28, 0
|
||||
sll $3, $16, 2
|
||||
# was: sll _tmp_78_, _size_reg_68_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_78_, _tmp_78_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_78_
|
||||
sw $16, 0($17)
|
||||
# was: sw _size_reg_40_, 0(_mainres_1_)
|
||||
# was: sw _size_reg_68_, 0(_letBind_67_)
|
||||
addi $18, $17, 4
|
||||
# was: addi _addr_reg_44_, _mainres_1_, 4
|
||||
# was: addi _addr_reg_72_, _letBind_67_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_45_, $0, 0
|
||||
addi $20, $5, 4
|
||||
# was: addi _elem_reg_42_, _arr_reg_41_, 4
|
||||
_loop_beg_46_:
|
||||
# was: ori _i_reg_73_, $0, 0
|
||||
addi $20, $2, 4
|
||||
# was: addi _elem_reg_70_, _arr_reg_69_, 4
|
||||
_loop_beg_74_:
|
||||
sub $2, $19, $16
|
||||
# was: sub _tmp_reg_48_, _i_reg_45_, _size_reg_40_
|
||||
bgez $2, _loop_end_47_
|
||||
# was: bgez _tmp_reg_48_, _loop_end_47_
|
||||
lw $21, 0($20)
|
||||
# was: lw _res_reg_43_, 0(_elem_reg_42_)
|
||||
# was: sub _tmp_reg_76_, _i_reg_73_, _size_reg_68_
|
||||
bgez $2, _loop_end_75_
|
||||
# was: bgez _tmp_reg_76_, _loop_end_75_
|
||||
lw $2, 0($20)
|
||||
# was: lw _res_reg_71_, 0(_elem_reg_70_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_42_, _elem_reg_42_, 4
|
||||
# ori _tmp_50_,_res_reg_43_,0
|
||||
# ori _fun_arg_res_49_,_tmp_50_,0
|
||||
ori $2, $21, 0
|
||||
# was: ori $2, _fun_arg_res_49_, 0
|
||||
jal putint
|
||||
# was: jal putint, $2
|
||||
# ori _res_reg_43_,_fun_arg_res_49_,0
|
||||
sw $21, 0($18)
|
||||
# was: sw _res_reg_43_, 0(_addr_reg_44_)
|
||||
# was: addi _elem_reg_70_, _elem_reg_70_, 4
|
||||
# ori $2,_res_reg_71_,0
|
||||
jal mul2
|
||||
# was: jal mul2, $2
|
||||
# ori _tmp_reg_77_,$2,0
|
||||
# ori _res_reg_71_,_tmp_reg_77_,0
|
||||
sw $2, 0($18)
|
||||
# was: sw _res_reg_71_, 0(_addr_reg_72_)
|
||||
addi $18, $18, 4
|
||||
# was: addi _addr_reg_44_, _addr_reg_44_, 4
|
||||
# was: addi _addr_reg_72_, _addr_reg_72_, 4
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_45_, _i_reg_45_, 1
|
||||
j _loop_beg_46_
|
||||
_loop_end_47_:
|
||||
# was: addi _i_reg_73_, _i_reg_73_, 1
|
||||
j _loop_beg_74_
|
||||
_loop_end_75_:
|
||||
ori $2, $17, 0
|
||||
# was: ori $2, _mainres_1_, 0
|
||||
addi $29, $29, 32
|
||||
lw $21, -28($29)
|
||||
# was: ori _arg_79_, _letBind_67_, 0
|
||||
# ori $2,_arg_79_,0
|
||||
jal write_int_arr
|
||||
# was: jal write_int_arr, $2
|
||||
# ori _mainres_46_,$2,0
|
||||
# ori $2,_mainres_46_,0
|
||||
addi $29, $29, 28
|
||||
lw $20, -24($29)
|
||||
lw $19, -20($29)
|
||||
lw $18, -16($29)
|
||||
|
333
tests/lambda.asm
333
tests/lambda.asm
@ -1,12 +1,12 @@
|
||||
.text 0x00400000
|
||||
.globl main
|
||||
la $28, _heap_
|
||||
la $4, _a__str__41_
|
||||
# was: la _a__str__41__addr, _a__str__41_
|
||||
la $4, _a__str__45_
|
||||
# was: la _a__str__45__addr, _a__str__45_
|
||||
ori $3, $0, 1
|
||||
# was: ori _a__str__41__init, $0, 1
|
||||
# was: ori _a__str__45__init, $0, 1
|
||||
sw $3, 0($4)
|
||||
# was: sw _a__str__41__init, 0(_a__str__41__addr)
|
||||
# was: sw _a__str__45__init, 0(_a__str__45__addr)
|
||||
la $4, _true
|
||||
# was: la _true_addr, _true
|
||||
ori $3, $0, 4
|
||||
@ -23,191 +23,220 @@
|
||||
_stop_:
|
||||
ori $2, $0, 10
|
||||
syscall
|
||||
# Function main
|
||||
main:
|
||||
# Function write_int
|
||||
write_int:
|
||||
sw $31, -4($29)
|
||||
sw $16, -8($29)
|
||||
addi $29, $29, -12
|
||||
# ori _param_x_1_,$2,0
|
||||
ori $16, $2, 0
|
||||
# was: ori _tmp_3_, _param_x_1_, 0
|
||||
# ori _write_intres_2_,_tmp_3_,0
|
||||
ori $2, $16, 0
|
||||
# was: ori $2, _write_intres_2_, 0
|
||||
jal putint
|
||||
# was: jal putint, $2
|
||||
ori $2, $16, 0
|
||||
# was: ori $2, _write_intres_2_, 0
|
||||
addi $29, $29, 12
|
||||
lw $16, -8($29)
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function write_int_arr
|
||||
write_int_arr:
|
||||
sw $31, -4($29)
|
||||
sw $21, -28($29)
|
||||
sw $20, -24($29)
|
||||
sw $19, -20($29)
|
||||
sw $18, -16($29)
|
||||
sw $17, -12($29)
|
||||
sw $16, -8($29)
|
||||
addi $29, $29, -32
|
||||
addi $29, $29, -28
|
||||
# ori _param_x_4_,$2,0
|
||||
# ori _arr_reg_7_,_param_x_4_,0
|
||||
lw $16, 0($2)
|
||||
# was: lw _size_reg_6_, 0(_arr_reg_7_)
|
||||
ori $17, $28, 0
|
||||
# was: ori _write_int_arrres_5_, $28, 0
|
||||
sll $3, $16, 2
|
||||
# was: sll _tmp_16_, _size_reg_6_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_16_, _tmp_16_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_16_
|
||||
sw $16, 0($17)
|
||||
# was: sw _size_reg_6_, 0(_write_int_arrres_5_)
|
||||
addi $18, $17, 4
|
||||
# was: addi _addr_reg_10_, _write_int_arrres_5_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_11_, $0, 0
|
||||
addi $20, $2, 4
|
||||
# was: addi _elem_reg_8_, _arr_reg_7_, 4
|
||||
_loop_beg_12_:
|
||||
sub $2, $19, $16
|
||||
# was: sub _tmp_reg_14_, _i_reg_11_, _size_reg_6_
|
||||
bgez $2, _loop_end_13_
|
||||
# was: bgez _tmp_reg_14_, _loop_end_13_
|
||||
lw $2, 0($20)
|
||||
# was: lw _res_reg_9_, 0(_elem_reg_8_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_8_, _elem_reg_8_, 4
|
||||
# ori $2,_res_reg_9_,0
|
||||
jal write_int
|
||||
# was: jal write_int, $2
|
||||
# ori _tmp_reg_15_,$2,0
|
||||
# ori _res_reg_9_,_tmp_reg_15_,0
|
||||
sw $2, 0($18)
|
||||
# was: sw _res_reg_9_, 0(_addr_reg_10_)
|
||||
addi $18, $18, 4
|
||||
# was: addi _addr_reg_10_, _addr_reg_10_, 4
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_11_, _i_reg_11_, 1
|
||||
j _loop_beg_12_
|
||||
_loop_end_13_:
|
||||
ori $2, $17, 0
|
||||
# was: ori $2, _write_int_arrres_5_, 0
|
||||
addi $29, $29, 28
|
||||
lw $20, -24($29)
|
||||
lw $19, -20($29)
|
||||
lw $18, -16($29)
|
||||
lw $17, -12($29)
|
||||
lw $16, -8($29)
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function main
|
||||
main:
|
||||
sw $31, -4($29)
|
||||
sw $16, -8($29)
|
||||
addi $29, $29, -12
|
||||
jal getint
|
||||
# was: jal getint, $2
|
||||
# ori _letBind_2_,$2,0
|
||||
ori $4, $2, 0
|
||||
# was: ori _size_reg_4_, _letBind_2_, 0
|
||||
bgez $4, _safe_lab_5_
|
||||
# was: bgez _size_reg_4_, _safe_lab_5_
|
||||
# ori _letBind_18_,$2,0
|
||||
ori $5, $2, 0
|
||||
# was: ori _size_reg_20_, _letBind_18_, 0
|
||||
bgez $5, _safe_lab_21_
|
||||
# was: bgez _size_reg_20_, _safe_lab_21_
|
||||
ori $5, $0, 7
|
||||
# was: ori $5, $0, 7
|
||||
la $6, _Msg_IllegalArraySize_
|
||||
# was: la $6, _Msg_IllegalArraySize_
|
||||
j _RuntimeError_
|
||||
_safe_lab_5_:
|
||||
_safe_lab_21_:
|
||||
ori $6, $28, 0
|
||||
# was: ori _letBind_3_, $28, 0
|
||||
sll $2, $4, 2
|
||||
# was: sll _tmp_11_, _size_reg_4_, 2
|
||||
# was: ori _letBind_19_, $28, 0
|
||||
sll $2, $5, 2
|
||||
# was: sll _tmp_27_, _size_reg_20_, 2
|
||||
addi $2, $2, 4
|
||||
# was: addi _tmp_11_, _tmp_11_, 4
|
||||
# was: addi _tmp_27_, _tmp_27_, 4
|
||||
add $28, $28, $2
|
||||
# was: add $28, $28, _tmp_11_
|
||||
sw $4, 0($6)
|
||||
# was: sw _size_reg_4_, 0(_letBind_3_)
|
||||
addi $5, $6, 4
|
||||
# was: addi _addr_reg_6_, _letBind_3_, 4
|
||||
ori $2, $0, 0
|
||||
# was: ori _i_reg_7_, $0, 0
|
||||
_loop_beg_8_:
|
||||
sub $3, $2, $4
|
||||
# was: sub _tmp_reg_10_, _i_reg_7_, _size_reg_4_
|
||||
bgez $3, _loop_end_9_
|
||||
# was: bgez _tmp_reg_10_, _loop_end_9_
|
||||
sw $2, 0($5)
|
||||
# was: sw _i_reg_7_, 0(_addr_reg_6_)
|
||||
addi $5, $5, 4
|
||||
# was: addi _addr_reg_6_, _addr_reg_6_, 4
|
||||
addi $2, $2, 1
|
||||
# was: addi _i_reg_7_, _i_reg_7_, 1
|
||||
j _loop_beg_8_
|
||||
_loop_end_9_:
|
||||
# ori _arr_reg_14_,_letBind_3_,0
|
||||
# was: add $28, $28, _tmp_27_
|
||||
sw $5, 0($6)
|
||||
# was: sw _size_reg_20_, 0(_letBind_19_)
|
||||
addi $2, $6, 4
|
||||
# was: addi _addr_reg_22_, _letBind_19_, 4
|
||||
ori $4, $0, 0
|
||||
# was: ori _i_reg_23_, $0, 0
|
||||
_loop_beg_24_:
|
||||
sub $3, $4, $5
|
||||
# was: sub _tmp_reg_26_, _i_reg_23_, _size_reg_20_
|
||||
bgez $3, _loop_end_25_
|
||||
# was: bgez _tmp_reg_26_, _loop_end_25_
|
||||
sw $4, 0($2)
|
||||
# was: sw _i_reg_23_, 0(_addr_reg_22_)
|
||||
addi $2, $2, 4
|
||||
# was: addi _addr_reg_22_, _addr_reg_22_, 4
|
||||
addi $4, $4, 1
|
||||
# was: addi _i_reg_23_, _i_reg_23_, 1
|
||||
j _loop_beg_24_
|
||||
_loop_end_25_:
|
||||
# ori _arr_reg_31_,_letBind_19_,0
|
||||
lw $2, 0($6)
|
||||
# was: lw _size_reg_13_, 0(_arr_reg_14_)
|
||||
# was: lw _size_reg_30_, 0(_arr_reg_31_)
|
||||
ori $3, $28, 0
|
||||
# was: ori _letBind_12_, $28, 0
|
||||
# was: ori _arg_29_, $28, 0
|
||||
sll $4, $2, 2
|
||||
# was: sll _tmp_25_, _size_reg_13_, 2
|
||||
# was: sll _tmp_42_, _size_reg_30_, 2
|
||||
addi $4, $4, 4
|
||||
# was: addi _tmp_25_, _tmp_25_, 4
|
||||
# was: addi _tmp_42_, _tmp_42_, 4
|
||||
add $28, $28, $4
|
||||
# was: add $28, $28, _tmp_25_
|
||||
# was: add $28, $28, _tmp_42_
|
||||
sw $2, 0($3)
|
||||
# was: sw _size_reg_13_, 0(_letBind_12_)
|
||||
# was: sw _size_reg_30_, 0(_arg_29_)
|
||||
addi $4, $3, 4
|
||||
# was: addi _addr_reg_17_, _letBind_12_, 4
|
||||
# was: addi _addr_reg_34_, _arg_29_, 4
|
||||
ori $5, $0, 0
|
||||
# was: ori _i_reg_18_, $0, 0
|
||||
# was: ori _i_reg_35_, $0, 0
|
||||
addi $6, $6, 4
|
||||
# was: addi _elem_reg_15_, _arr_reg_14_, 4
|
||||
_loop_beg_19_:
|
||||
# was: addi _elem_reg_32_, _arr_reg_31_, 4
|
||||
_loop_beg_36_:
|
||||
sub $7, $5, $2
|
||||
# was: sub _tmp_reg_21_, _i_reg_18_, _size_reg_13_
|
||||
bgez $7, _loop_end_20_
|
||||
# was: bgez _tmp_reg_21_, _loop_end_20_
|
||||
# was: sub _tmp_reg_38_, _i_reg_35_, _size_reg_30_
|
||||
bgez $7, _loop_end_37_
|
||||
# was: bgez _tmp_reg_38_, _loop_end_37_
|
||||
lw $7, 0($6)
|
||||
# was: lw _res_reg_16_, 0(_elem_reg_15_)
|
||||
# was: lw _res_reg_33_, 0(_elem_reg_32_)
|
||||
addi $6, $6, 4
|
||||
# was: addi _elem_reg_15_, _elem_reg_15_, 4
|
||||
ori $8, $7, 0
|
||||
# was: ori _plus_L_23_, _res_reg_16_, 0
|
||||
ori $7, $0, 2
|
||||
# was: ori _plus_R_24_, $0, 2
|
||||
add $7, $8, $7
|
||||
# was: add _fun_arg_res_22_, _plus_L_23_, _plus_R_24_
|
||||
# ori _res_reg_16_,_fun_arg_res_22_,0
|
||||
# was: addi _elem_reg_32_, _elem_reg_32_, 4
|
||||
# ori _plus_L_40_,_res_reg_33_,0
|
||||
ori $8, $0, 2
|
||||
# was: ori _plus_R_41_, $0, 2
|
||||
add $7, $7, $8
|
||||
# was: add _fun_arg_res_39_, _plus_L_40_, _plus_R_41_
|
||||
# ori _res_reg_33_,_fun_arg_res_39_,0
|
||||
sw $7, 0($4)
|
||||
# was: sw _res_reg_16_, 0(_addr_reg_17_)
|
||||
# was: sw _res_reg_33_, 0(_addr_reg_34_)
|
||||
addi $4, $4, 4
|
||||
# was: addi _addr_reg_17_, _addr_reg_17_, 4
|
||||
# was: addi _addr_reg_34_, _addr_reg_34_, 4
|
||||
addi $5, $5, 1
|
||||
# was: addi _i_reg_18_, _i_reg_18_, 1
|
||||
j _loop_beg_19_
|
||||
_loop_end_20_:
|
||||
# ori _arr_reg_28_,_letBind_12_,0
|
||||
lw $17, 0($3)
|
||||
# was: lw _size_reg_27_, 0(_arr_reg_28_)
|
||||
ori $16, $28, 0
|
||||
# was: ori _letBind_26_, $28, 0
|
||||
sll $2, $17, 2
|
||||
# was: sll _tmp_38_, _size_reg_27_, 2
|
||||
addi $2, $2, 4
|
||||
# was: addi _tmp_38_, _tmp_38_, 4
|
||||
add $28, $28, $2
|
||||
# was: add $28, $28, _tmp_38_
|
||||
sw $17, 0($16)
|
||||
# was: sw _size_reg_27_, 0(_letBind_26_)
|
||||
addi $18, $16, 4
|
||||
# was: addi _addr_reg_31_, _letBind_26_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_32_, $0, 0
|
||||
addi $20, $3, 4
|
||||
# was: addi _elem_reg_29_, _arr_reg_28_, 4
|
||||
_loop_beg_33_:
|
||||
sub $2, $19, $17
|
||||
# was: sub _tmp_reg_35_, _i_reg_32_, _size_reg_27_
|
||||
bgez $2, _loop_end_34_
|
||||
# was: bgez _tmp_reg_35_, _loop_end_34_
|
||||
lw $21, 0($20)
|
||||
# was: lw _res_reg_30_, 0(_elem_reg_29_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_29_, _elem_reg_29_, 4
|
||||
# ori _tmp_37_,_res_reg_30_,0
|
||||
# ori _fun_arg_res_36_,_tmp_37_,0
|
||||
ori $2, $21, 0
|
||||
# was: ori $2, _fun_arg_res_36_, 0
|
||||
jal putint
|
||||
# was: jal putint, $2
|
||||
# ori _res_reg_30_,_fun_arg_res_36_,0
|
||||
sw $21, 0($18)
|
||||
# was: sw _res_reg_30_, 0(_addr_reg_31_)
|
||||
addi $18, $18, 4
|
||||
# was: addi _addr_reg_31_, _addr_reg_31_, 4
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_32_, _i_reg_32_, 1
|
||||
j _loop_beg_33_
|
||||
_loop_end_34_:
|
||||
la $2, _a__str__41_
|
||||
# was: la _tmp_40_, _a__str__41_
|
||||
# _a__str__41_: string "\n"
|
||||
# ori _letBind_39_,_tmp_40_,0
|
||||
# ori $2,_tmp_40_,0
|
||||
# was: addi _i_reg_35_, _i_reg_35_, 1
|
||||
j _loop_beg_36_
|
||||
_loop_end_37_:
|
||||
ori $2, $3, 0
|
||||
# was: ori $2, _arg_29_, 0
|
||||
jal write_int_arr
|
||||
# was: jal write_int_arr, $2
|
||||
ori $16, $2, 0
|
||||
# was: ori _letBind_28_, $2, 0
|
||||
la $2, _a__str__45_
|
||||
# was: la _tmp_44_, _a__str__45_
|
||||
# _a__str__45_: string "\n"
|
||||
# ori _letBind_43_,_tmp_44_,0
|
||||
# ori $2,_tmp_44_,0
|
||||
jal putstring
|
||||
# was: jal putstring, $2
|
||||
# ori _arr_reg_43_,_letBind_26_,0
|
||||
# ori _arr_reg_47_,_letBind_28_,0
|
||||
lw $2, 0($16)
|
||||
# was: lw _size_reg_44_, 0(_arr_reg_43_)
|
||||
ori $5, $0, 0
|
||||
# was: ori _letBind_42_, $0, 0
|
||||
# was: lw _size_reg_48_, 0(_arr_reg_47_)
|
||||
ori $4, $0, 0
|
||||
# was: ori _arg_46_, $0, 0
|
||||
addi $16, $16, 4
|
||||
# was: addi _arr_reg_43_, _arr_reg_43_, 4
|
||||
# was: addi _arr_reg_47_, _arr_reg_47_, 4
|
||||
ori $3, $0, 0
|
||||
# was: ori _ind_var_45_, $0, 0
|
||||
_loop_beg_47_:
|
||||
sub $4, $3, $2
|
||||
# was: sub _tmp_reg_46_, _ind_var_45_, _size_reg_44_
|
||||
bgez $4, _loop_end_48_
|
||||
# was: bgez _tmp_reg_46_, _loop_end_48_
|
||||
lw $4, 0($16)
|
||||
# was: lw _tmp_reg_46_, 0(_arr_reg_43_)
|
||||
# was: ori _ind_var_49_, $0, 0
|
||||
_loop_beg_51_:
|
||||
sub $5, $3, $2
|
||||
# was: sub _tmp_reg_50_, _ind_var_49_, _size_reg_48_
|
||||
bgez $5, _loop_end_52_
|
||||
# was: bgez _tmp_reg_50_, _loop_end_52_
|
||||
lw $5, 0($16)
|
||||
# was: lw _tmp_reg_50_, 0(_arr_reg_47_)
|
||||
addi $16, $16, 4
|
||||
# was: addi _arr_reg_43_, _arr_reg_43_, 4
|
||||
# ori _plus_L_50_,_letBind_42_,0
|
||||
# ori _plus_R_51_,_tmp_reg_46_,0
|
||||
add $5, $5, $4
|
||||
# was: add _fun_arg_res_49_, _plus_L_50_, _plus_R_51_
|
||||
# ori _letBind_42_,_fun_arg_res_49_,0
|
||||
# was: addi _arr_reg_47_, _arr_reg_47_, 4
|
||||
# ori _plus_L_54_,_arg_46_,0
|
||||
# ori _plus_R_55_,_tmp_reg_50_,0
|
||||
add $4, $4, $5
|
||||
# was: add _fun_arg_res_53_, _plus_L_54_, _plus_R_55_
|
||||
# ori _arg_46_,_fun_arg_res_53_,0
|
||||
addi $3, $3, 1
|
||||
# was: addi _ind_var_45_, _ind_var_45_, 1
|
||||
j _loop_beg_47_
|
||||
_loop_end_48_:
|
||||
# ori _tmp_52_,_letBind_42_,0
|
||||
ori $16, $5, 0
|
||||
# was: ori _mainres_1_, _tmp_52_, 0
|
||||
ori $2, $16, 0
|
||||
# was: ori $2, _mainres_1_, 0
|
||||
jal putint
|
||||
# was: jal putint, $2
|
||||
ori $2, $16, 0
|
||||
# was: ori $2, _mainres_1_, 0
|
||||
addi $29, $29, 32
|
||||
lw $21, -28($29)
|
||||
lw $20, -24($29)
|
||||
lw $19, -20($29)
|
||||
lw $18, -16($29)
|
||||
lw $17, -12($29)
|
||||
# was: addi _ind_var_49_, _ind_var_49_, 1
|
||||
j _loop_beg_51_
|
||||
_loop_end_52_:
|
||||
ori $2, $4, 0
|
||||
# was: ori $2, _arg_46_, 0
|
||||
jal write_int
|
||||
# was: jal write_int, $2
|
||||
# ori _mainres_17_,$2,0
|
||||
# ori $2,_mainres_17_,0
|
||||
addi $29, $29, 12
|
||||
lw $16, -8($29)
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
@ -323,7 +352,7 @@ _Msg_DivZero_:
|
||||
.asciiz "division by zero"
|
||||
# String Literals
|
||||
.align 2
|
||||
_a__str__41_:
|
||||
_a__str__45_:
|
||||
.space 4
|
||||
.asciiz "\n"
|
||||
.align 2
|
||||
|
@ -1,24 +1,24 @@
|
||||
.text 0x00400000
|
||||
.globl main
|
||||
la $28, _heap_
|
||||
la $4, _Maxacha_72_
|
||||
# was: la _Maxacha_72__addr, _Maxacha_72_
|
||||
la $4, _Maxacha_82_
|
||||
# was: la _Maxacha_82__addr, _Maxacha_82_
|
||||
ori $3, $0, 10
|
||||
# was: ori _Maxacha_72__init, $0, 10
|
||||
# was: ori _Maxacha_82__init, $0, 10
|
||||
sw $3, 0($4)
|
||||
# was: sw _Maxacha_72__init, 0(_Maxacha_72__addr)
|
||||
la $4, _a__str__69_
|
||||
# was: la _a__str__69__addr, _a__str__69_
|
||||
# was: sw _Maxacha_82__init, 0(_Maxacha_82__addr)
|
||||
la $4, _a__str__79_
|
||||
# was: la _a__str__79__addr, _a__str__79_
|
||||
ori $3, $0, 1
|
||||
# was: ori _a__str__69__init, $0, 1
|
||||
# was: ori _a__str__79__init, $0, 1
|
||||
sw $3, 0($4)
|
||||
# was: sw _a__str__69__init, 0(_a__str__69__addr)
|
||||
la $4, _Sumaa___64_
|
||||
# was: la _Sumaa___64__addr, _Sumaa___64_
|
||||
# was: sw _a__str__79__init, 0(_a__str__79__addr)
|
||||
la $4, _Sumaa___74_
|
||||
# was: la _Sumaa___74__addr, _Sumaa___74_
|
||||
ori $3, $0, 5
|
||||
# was: ori _Sumaa___64__init, $0, 5
|
||||
# was: ori _Sumaa___74__init, $0, 5
|
||||
sw $3, 0($4)
|
||||
# was: sw _Sumaa___64__init, 0(_Sumaa___64__addr)
|
||||
# was: sw _Sumaa___74__init, 0(_Sumaa___74__addr)
|
||||
la $4, _true
|
||||
# was: la _true_addr, _true
|
||||
ori $3, $0, 4
|
||||
@ -35,6 +35,70 @@
|
||||
_stop_:
|
||||
ori $2, $0, 10
|
||||
syscall
|
||||
# Function plus100
|
||||
plus100:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_x_1_,$2,0
|
||||
# ori _plus_L_3_,_param_x_1_,0
|
||||
ori $3, $0, 100
|
||||
# was: ori _plus_R_4_, $0, 100
|
||||
add $2, $2, $3
|
||||
# was: add _plus100res_2_, _plus_L_3_, _plus_R_4_
|
||||
# ori $2,_plus100res_2_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function read_chr
|
||||
read_chr:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_i_5_,$2,0
|
||||
jal getchar
|
||||
# was: jal getchar, $2
|
||||
# ori _read_chrres_6_,$2,0
|
||||
# ori $2,_read_chrres_6_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function plus
|
||||
plus:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_x_7_,$2,0
|
||||
# ori _param_y_8_,$3,0
|
||||
# ori _plus_L_10_,_param_x_7_,0
|
||||
# ori _plus_R_11_,_param_y_8_,0
|
||||
add $2, $2, $3
|
||||
# was: add _plusres_9_, _plus_L_10_, _plus_R_11_
|
||||
# ori $2,_plusres_9_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function max_chr
|
||||
max_chr:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_a_12_,$2,0
|
||||
# ori _param_b_13_,$3,0
|
||||
# ori _lt_L_19_,_param_a_12_,0
|
||||
# ori _lt_R_20_,_param_b_13_,0
|
||||
slt $4, $2, $3
|
||||
# was: slt _cond_18_, _lt_L_19_, _lt_R_20_
|
||||
bne $4, $0, _then_15_
|
||||
# was: bne _cond_18_, $0, _then_15_
|
||||
j _else_16_
|
||||
_then_15_:
|
||||
ori $2, $3, 0
|
||||
# was: ori _max_chrres_14_, _param_b_13_, 0
|
||||
j _endif_17_
|
||||
_else_16_:
|
||||
# ori _max_chrres_14_,_param_a_12_,0
|
||||
_endif_17_:
|
||||
# ori $2,_max_chrres_14_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function main
|
||||
main:
|
||||
sw $31, -4($29)
|
||||
@ -47,234 +111,227 @@ main:
|
||||
addi $29, $29, -32
|
||||
jal getint
|
||||
# was: jal getint, $2
|
||||
# ori _letBind_2_,$2,0
|
||||
ori $5, $2, 0
|
||||
# was: ori _size_reg_4_, _letBind_2_, 0
|
||||
bgez $5, _safe_lab_5_
|
||||
# was: bgez _size_reg_4_, _safe_lab_5_
|
||||
# ori _letBind_22_,$2,0
|
||||
# ori _size_reg_24_,_letBind_22_,0
|
||||
bgez $2, _safe_lab_25_
|
||||
# was: bgez _size_reg_24_, _safe_lab_25_
|
||||
ori $5, $0, 10
|
||||
# was: ori $5, $0, 10
|
||||
la $6, _Msg_IllegalArraySize_
|
||||
# was: la $6, _Msg_IllegalArraySize_
|
||||
j _RuntimeError_
|
||||
_safe_lab_5_:
|
||||
ori $3, $28, 0
|
||||
# was: ori _letBind_3_, $28, 0
|
||||
sll $4, $5, 2
|
||||
# was: sll _tmp_11_, _size_reg_4_, 2
|
||||
addi $4, $4, 4
|
||||
# was: addi _tmp_11_, _tmp_11_, 4
|
||||
add $28, $28, $4
|
||||
# was: add $28, $28, _tmp_11_
|
||||
sw $5, 0($3)
|
||||
# was: sw _size_reg_4_, 0(_letBind_3_)
|
||||
addi $7, $3, 4
|
||||
# was: addi _addr_reg_6_, _letBind_3_, 4
|
||||
ori $4, $0, 0
|
||||
# was: ori _i_reg_7_, $0, 0
|
||||
_loop_beg_8_:
|
||||
sub $6, $4, $5
|
||||
# was: sub _tmp_reg_10_, _i_reg_7_, _size_reg_4_
|
||||
bgez $6, _loop_end_9_
|
||||
# was: bgez _tmp_reg_10_, _loop_end_9_
|
||||
sw $4, 0($7)
|
||||
# was: sw _i_reg_7_, 0(_addr_reg_6_)
|
||||
addi $7, $7, 4
|
||||
# was: addi _addr_reg_6_, _addr_reg_6_, 4
|
||||
addi $4, $4, 1
|
||||
# was: addi _i_reg_7_, _i_reg_7_, 1
|
||||
j _loop_beg_8_
|
||||
_loop_end_9_:
|
||||
# ori _arr_reg_14_,_letBind_3_,0
|
||||
lw $5, 0($3)
|
||||
# was: lw _size_reg_13_, 0(_arr_reg_14_)
|
||||
ori $4, $28, 0
|
||||
# was: ori _letBind_12_, $28, 0
|
||||
sll $6, $5, 2
|
||||
# was: sll _tmp_25_, _size_reg_13_, 2
|
||||
addi $6, $6, 4
|
||||
# was: addi _tmp_25_, _tmp_25_, 4
|
||||
add $28, $28, $6
|
||||
# was: add $28, $28, _tmp_25_
|
||||
sw $5, 0($4)
|
||||
# was: sw _size_reg_13_, 0(_letBind_12_)
|
||||
addi $7, $4, 4
|
||||
# was: addi _addr_reg_17_, _letBind_12_, 4
|
||||
ori $6, $0, 0
|
||||
# was: ori _i_reg_18_, $0, 0
|
||||
addi $8, $3, 4
|
||||
# was: addi _elem_reg_15_, _arr_reg_14_, 4
|
||||
_loop_beg_19_:
|
||||
sub $9, $6, $5
|
||||
# was: sub _tmp_reg_21_, _i_reg_18_, _size_reg_13_
|
||||
bgez $9, _loop_end_20_
|
||||
# was: bgez _tmp_reg_21_, _loop_end_20_
|
||||
lw $9, 0($8)
|
||||
# was: lw _res_reg_16_, 0(_elem_reg_15_)
|
||||
addi $8, $8, 4
|
||||
# was: addi _elem_reg_15_, _elem_reg_15_, 4
|
||||
# ori _plus_L_23_,_res_reg_16_,0
|
||||
ori $10, $0, 100
|
||||
# was: ori _plus_R_24_, $0, 100
|
||||
add $9, $9, $10
|
||||
# was: add _fun_arg_res_22_, _plus_L_23_, _plus_R_24_
|
||||
# ori _res_reg_16_,_fun_arg_res_22_,0
|
||||
sw $9, 0($7)
|
||||
# was: sw _res_reg_16_, 0(_addr_reg_17_)
|
||||
addi $7, $7, 4
|
||||
# was: addi _addr_reg_17_, _addr_reg_17_, 4
|
||||
addi $6, $6, 1
|
||||
# was: addi _i_reg_18_, _i_reg_18_, 1
|
||||
j _loop_beg_19_
|
||||
_loop_end_20_:
|
||||
ori $7, $4, 0
|
||||
# was: ori _arr_reg_27_, _letBind_12_, 0
|
||||
lw $5, 0($7)
|
||||
# was: lw _size_reg_28_, 0(_arr_reg_27_)
|
||||
ori $17, $0, 0
|
||||
# was: ori _letBind_26_, $0, 0
|
||||
addi $7, $7, 4
|
||||
# was: addi _arr_reg_27_, _arr_reg_27_, 4
|
||||
ori $6, $0, 0
|
||||
# was: ori _ind_var_29_, $0, 0
|
||||
_loop_beg_31_:
|
||||
sub $4, $6, $5
|
||||
# was: sub _tmp_reg_30_, _ind_var_29_, _size_reg_28_
|
||||
bgez $4, _loop_end_32_
|
||||
# was: bgez _tmp_reg_30_, _loop_end_32_
|
||||
lw $4, 0($7)
|
||||
# was: lw _tmp_reg_30_, 0(_arr_reg_27_)
|
||||
addi $7, $7, 4
|
||||
# was: addi _arr_reg_27_, _arr_reg_27_, 4
|
||||
# ori _plus_L_34_,_letBind_26_,0
|
||||
# ori _plus_R_35_,_tmp_reg_30_,0
|
||||
add $17, $17, $4
|
||||
# was: add _fun_arg_res_33_, _plus_L_34_, _plus_R_35_
|
||||
# ori _letBind_26_,_fun_arg_res_33_,0
|
||||
addi $6, $6, 1
|
||||
# was: addi _ind_var_29_, _ind_var_29_, 1
|
||||
j _loop_beg_31_
|
||||
_loop_end_32_:
|
||||
# ori _arr_reg_38_,_letBind_3_,0
|
||||
lw $18, 0($3)
|
||||
# was: lw _size_reg_37_, 0(_arr_reg_38_)
|
||||
_safe_lab_25_:
|
||||
ori $16, $28, 0
|
||||
# was: ori _letBind_36_, $28, 0
|
||||
addi $4, $18, 3
|
||||
# was: addi _tmp_47_, _size_reg_37_, 3
|
||||
sra $4, $4, 2
|
||||
# was: sra _tmp_47_, _tmp_47_, 2
|
||||
sll $4, $4, 2
|
||||
# was: sll _tmp_47_, _tmp_47_, 2
|
||||
addi $4, $4, 4
|
||||
# was: addi _tmp_47_, _tmp_47_, 4
|
||||
add $28, $28, $4
|
||||
# was: add $28, $28, _tmp_47_
|
||||
sw $18, 0($16)
|
||||
# was: sw _size_reg_37_, 0(_letBind_36_)
|
||||
addi $20, $16, 4
|
||||
# was: addi _addr_reg_41_, _letBind_36_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_42_, $0, 0
|
||||
addi $21, $3, 4
|
||||
# was: addi _elem_reg_39_, _arr_reg_38_, 4
|
||||
_loop_beg_43_:
|
||||
sub $3, $19, $18
|
||||
# was: sub _tmp_reg_45_, _i_reg_42_, _size_reg_37_
|
||||
bgez $3, _loop_end_44_
|
||||
# was: bgez _tmp_reg_45_, _loop_end_44_
|
||||
lw $3, 0($21)
|
||||
# was: lw _res_reg_40_, 0(_elem_reg_39_)
|
||||
addi $21, $21, 4
|
||||
# was: addi _elem_reg_39_, _elem_reg_39_, 4
|
||||
jal getchar
|
||||
# was: jal getchar, $2
|
||||
# ori _fun_arg_res_46_,$2,0
|
||||
ori $3, $2, 0
|
||||
# was: ori _res_reg_40_, _fun_arg_res_46_, 0
|
||||
sb $3, 0($20)
|
||||
# was: sb _res_reg_40_, 0(_addr_reg_41_)
|
||||
addi $20, $20, 1
|
||||
# was: addi _addr_reg_41_, _addr_reg_41_, 1
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_42_, _i_reg_42_, 1
|
||||
j _loop_beg_43_
|
||||
_loop_end_44_:
|
||||
ori $2, $16, 0
|
||||
# was: ori _arr_reg_49_, _letBind_36_, 0
|
||||
lw $3, 0($2)
|
||||
# was: lw _size_reg_50_, 0(_arr_reg_49_)
|
||||
ori $18, $0, 97
|
||||
# was: ori _letBind_48_, $0, 97
|
||||
addi $2, $2, 4
|
||||
# was: addi _arr_reg_49_, _arr_reg_49_, 4
|
||||
# was: ori _letBind_23_, $28, 0
|
||||
sll $3, $2, 2
|
||||
# was: sll _tmp_31_, _size_reg_24_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_31_, _tmp_31_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_31_
|
||||
sw $2, 0($16)
|
||||
# was: sw _size_reg_24_, 0(_letBind_23_)
|
||||
addi $3, $16, 4
|
||||
# was: addi _addr_reg_26_, _letBind_23_, 4
|
||||
ori $4, $0, 0
|
||||
# was: ori _ind_var_51_, $0, 0
|
||||
_loop_beg_53_:
|
||||
sub $5, $4, $3
|
||||
# was: sub _tmp_reg_52_, _ind_var_51_, _size_reg_50_
|
||||
bgez $5, _loop_end_54_
|
||||
# was: bgez _tmp_reg_52_, _loop_end_54_
|
||||
lb $5, 0($2)
|
||||
# was: lb _tmp_reg_52_, 0(_arr_reg_49_)
|
||||
addi $2, $2, 1
|
||||
# was: addi _arr_reg_49_, _arr_reg_49_, 1
|
||||
# ori _lt_L_60_,_letBind_48_,0
|
||||
# ori _lt_R_61_,_tmp_reg_52_,0
|
||||
slt $6, $18, $5
|
||||
# was: slt _cond_59_, _lt_L_60_, _lt_R_61_
|
||||
bne $6, $0, _then_56_
|
||||
# was: bne _cond_59_, $0, _then_56_
|
||||
j _else_57_
|
||||
_then_56_:
|
||||
# ori _fun_arg_res_55_,_tmp_reg_52_,0
|
||||
j _endif_58_
|
||||
_else_57_:
|
||||
ori $5, $18, 0
|
||||
# was: ori _fun_arg_res_55_, _letBind_48_, 0
|
||||
_endif_58_:
|
||||
ori $18, $5, 0
|
||||
# was: ori _letBind_48_, _fun_arg_res_55_, 0
|
||||
# was: ori _i_reg_27_, $0, 0
|
||||
_loop_beg_28_:
|
||||
sub $5, $4, $2
|
||||
# was: sub _tmp_reg_30_, _i_reg_27_, _size_reg_24_
|
||||
bgez $5, _loop_end_29_
|
||||
# was: bgez _tmp_reg_30_, _loop_end_29_
|
||||
sw $4, 0($3)
|
||||
# was: sw _i_reg_27_, 0(_addr_reg_26_)
|
||||
addi $3, $3, 4
|
||||
# was: addi _addr_reg_26_, _addr_reg_26_, 4
|
||||
addi $4, $4, 1
|
||||
# was: addi _ind_var_51_, _ind_var_51_, 1
|
||||
j _loop_beg_53_
|
||||
_loop_end_54_:
|
||||
la $2, _Sumaa___64_
|
||||
# was: la _tmp_63_, _Sumaa___64_
|
||||
# _Sumaa___64_: string "Sum: "
|
||||
# ori _letBind_62_,_tmp_63_,0
|
||||
# ori $2,_tmp_63_,0
|
||||
# was: addi _i_reg_27_, _i_reg_27_, 1
|
||||
j _loop_beg_28_
|
||||
_loop_end_29_:
|
||||
# ori _arr_reg_34_,_letBind_23_,0
|
||||
lw $17, 0($16)
|
||||
# was: lw _size_reg_33_, 0(_arr_reg_34_)
|
||||
ori $20, $28, 0
|
||||
# was: ori _letBind_32_, $28, 0
|
||||
sll $2, $17, 2
|
||||
# was: sll _tmp_43_, _size_reg_33_, 2
|
||||
addi $2, $2, 4
|
||||
# was: addi _tmp_43_, _tmp_43_, 4
|
||||
add $28, $28, $2
|
||||
# was: add $28, $28, _tmp_43_
|
||||
sw $17, 0($20)
|
||||
# was: sw _size_reg_33_, 0(_letBind_32_)
|
||||
addi $18, $20, 4
|
||||
# was: addi _addr_reg_37_, _letBind_32_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_38_, $0, 0
|
||||
addi $21, $16, 4
|
||||
# was: addi _elem_reg_35_, _arr_reg_34_, 4
|
||||
_loop_beg_39_:
|
||||
sub $2, $19, $17
|
||||
# was: sub _tmp_reg_41_, _i_reg_38_, _size_reg_33_
|
||||
bgez $2, _loop_end_40_
|
||||
# was: bgez _tmp_reg_41_, _loop_end_40_
|
||||
lw $2, 0($21)
|
||||
# was: lw _res_reg_36_, 0(_elem_reg_35_)
|
||||
addi $21, $21, 4
|
||||
# was: addi _elem_reg_35_, _elem_reg_35_, 4
|
||||
# ori $2,_res_reg_36_,0
|
||||
jal plus100
|
||||
# was: jal plus100, $2
|
||||
# ori _tmp_reg_42_,$2,0
|
||||
# ori _res_reg_36_,_tmp_reg_42_,0
|
||||
sw $2, 0($18)
|
||||
# was: sw _res_reg_36_, 0(_addr_reg_37_)
|
||||
addi $18, $18, 4
|
||||
# was: addi _addr_reg_37_, _addr_reg_37_, 4
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_38_, _i_reg_38_, 1
|
||||
j _loop_beg_39_
|
||||
_loop_end_40_:
|
||||
# ori _arr_reg_45_,_letBind_32_,0
|
||||
lw $18, 0($20)
|
||||
# was: lw _size_reg_46_, 0(_arr_reg_45_)
|
||||
ori $17, $0, 0
|
||||
# was: ori _letBind_44_, $0, 0
|
||||
addi $20, $20, 4
|
||||
# was: addi _arr_reg_45_, _arr_reg_45_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _ind_var_47_, $0, 0
|
||||
_loop_beg_49_:
|
||||
sub $3, $19, $18
|
||||
# was: sub _tmp_reg_48_, _ind_var_47_, _size_reg_46_
|
||||
bgez $3, _loop_end_50_
|
||||
# was: bgez _tmp_reg_48_, _loop_end_50_
|
||||
lw $3, 0($20)
|
||||
# was: lw _tmp_reg_48_, 0(_arr_reg_45_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _arr_reg_45_, _arr_reg_45_, 4
|
||||
ori $2, $17, 0
|
||||
# was: ori $2, _letBind_44_, 0
|
||||
# ori $3,_tmp_reg_48_,0
|
||||
jal plus
|
||||
# was: jal plus, $2 $3
|
||||
# ori _tmp_reg_51_,$2,0
|
||||
ori $17, $2, 0
|
||||
# was: ori _letBind_44_, _tmp_reg_51_, 0
|
||||
addi $19, $19, 1
|
||||
# was: addi _ind_var_47_, _ind_var_47_, 1
|
||||
j _loop_beg_49_
|
||||
_loop_end_50_:
|
||||
ori $2, $16, 0
|
||||
# was: ori _arr_reg_54_, _letBind_23_, 0
|
||||
lw $18, 0($2)
|
||||
# was: lw _size_reg_53_, 0(_arr_reg_54_)
|
||||
ori $16, $28, 0
|
||||
# was: ori _letBind_52_, $28, 0
|
||||
addi $3, $18, 3
|
||||
# was: addi _tmp_63_, _size_reg_53_, 3
|
||||
sra $3, $3, 2
|
||||
# was: sra _tmp_63_, _tmp_63_, 2
|
||||
sll $3, $3, 2
|
||||
# was: sll _tmp_63_, _tmp_63_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_63_, _tmp_63_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_63_
|
||||
sw $18, 0($16)
|
||||
# was: sw _size_reg_53_, 0(_letBind_52_)
|
||||
addi $20, $16, 4
|
||||
# was: addi _addr_reg_57_, _letBind_52_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_58_, $0, 0
|
||||
addi $21, $2, 4
|
||||
# was: addi _elem_reg_55_, _arr_reg_54_, 4
|
||||
_loop_beg_59_:
|
||||
sub $2, $19, $18
|
||||
# was: sub _tmp_reg_61_, _i_reg_58_, _size_reg_53_
|
||||
bgez $2, _loop_end_60_
|
||||
# was: bgez _tmp_reg_61_, _loop_end_60_
|
||||
lw $2, 0($21)
|
||||
# was: lw _res_reg_56_, 0(_elem_reg_55_)
|
||||
addi $21, $21, 4
|
||||
# was: addi _elem_reg_55_, _elem_reg_55_, 4
|
||||
# ori $2,_res_reg_56_,0
|
||||
jal read_chr
|
||||
# was: jal read_chr, $2
|
||||
# ori _tmp_reg_62_,$2,0
|
||||
# ori _res_reg_56_,_tmp_reg_62_,0
|
||||
sb $2, 0($20)
|
||||
# was: sb _res_reg_56_, 0(_addr_reg_57_)
|
||||
addi $20, $20, 1
|
||||
# was: addi _addr_reg_57_, _addr_reg_57_, 1
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_58_, _i_reg_58_, 1
|
||||
j _loop_beg_59_
|
||||
_loop_end_60_:
|
||||
ori $20, $16, 0
|
||||
# was: ori _arr_reg_65_, _letBind_52_, 0
|
||||
lw $19, 0($20)
|
||||
# was: lw _size_reg_66_, 0(_arr_reg_65_)
|
||||
ori $18, $0, 97
|
||||
# was: ori _letBind_64_, $0, 97
|
||||
addi $20, $20, 4
|
||||
# was: addi _arr_reg_65_, _arr_reg_65_, 4
|
||||
ori $21, $0, 0
|
||||
# was: ori _ind_var_67_, $0, 0
|
||||
_loop_beg_69_:
|
||||
sub $3, $21, $19
|
||||
# was: sub _tmp_reg_68_, _ind_var_67_, _size_reg_66_
|
||||
bgez $3, _loop_end_70_
|
||||
# was: bgez _tmp_reg_68_, _loop_end_70_
|
||||
lb $3, 0($20)
|
||||
# was: lb _tmp_reg_68_, 0(_arr_reg_65_)
|
||||
addi $20, $20, 1
|
||||
# was: addi _arr_reg_65_, _arr_reg_65_, 1
|
||||
ori $2, $18, 0
|
||||
# was: ori $2, _letBind_64_, 0
|
||||
# ori $3,_tmp_reg_68_,0
|
||||
jal max_chr
|
||||
# was: jal max_chr, $2 $3
|
||||
# ori _tmp_reg_71_,$2,0
|
||||
ori $18, $2, 0
|
||||
# was: ori _letBind_64_, _tmp_reg_71_, 0
|
||||
addi $21, $21, 1
|
||||
# was: addi _ind_var_67_, _ind_var_67_, 1
|
||||
j _loop_beg_69_
|
||||
_loop_end_70_:
|
||||
la $2, _Sumaa___74_
|
||||
# was: la _tmp_73_, _Sumaa___74_
|
||||
# _Sumaa___74_: string "Sum: "
|
||||
# ori _letBind_72_,_tmp_73_,0
|
||||
# ori $2,_tmp_73_,0
|
||||
jal putstring
|
||||
# was: jal putstring, $2
|
||||
# ori _tmp_66_,_letBind_26_,0
|
||||
ori $2, $17, 0
|
||||
# was: ori _letBind_65_, _tmp_66_, 0
|
||||
# ori $2,_letBind_65_,0
|
||||
# was: ori _tmp_76_, _letBind_44_, 0
|
||||
# ori _letBind_75_,_tmp_76_,0
|
||||
# ori $2,_letBind_75_,0
|
||||
jal putint
|
||||
# was: jal putint, $2
|
||||
la $2, _a__str__69_
|
||||
# was: la _tmp_68_, _a__str__69_
|
||||
# _a__str__69_: string "\n"
|
||||
# ori _letBind_67_,_tmp_68_,0
|
||||
# ori $2,_tmp_68_,0
|
||||
la $2, _a__str__79_
|
||||
# was: la _tmp_78_, _a__str__79_
|
||||
# _a__str__79_: string "\n"
|
||||
# ori _letBind_77_,_tmp_78_,0
|
||||
# ori $2,_tmp_78_,0
|
||||
jal putstring
|
||||
# was: jal putstring, $2
|
||||
la $2, _Maxacha_72_
|
||||
# was: la _tmp_71_, _Maxacha_72_
|
||||
# _Maxacha_72_: string "Max char: "
|
||||
# ori _letBind_70_,_tmp_71_,0
|
||||
# ori $2,_tmp_71_,0
|
||||
la $2, _Maxacha_82_
|
||||
# was: la _tmp_81_, _Maxacha_82_
|
||||
# _Maxacha_82_: string "Max char: "
|
||||
# ori _letBind_80_,_tmp_81_,0
|
||||
# ori $2,_tmp_81_,0
|
||||
jal putstring
|
||||
# was: jal putstring, $2
|
||||
ori $2, $18, 0
|
||||
# was: ori _tmp_74_, _letBind_48_, 0
|
||||
# ori _letBind_73_,_tmp_74_,0
|
||||
# ori $2,_letBind_73_,0
|
||||
# was: ori _tmp_84_, _letBind_64_, 0
|
||||
# ori _letBind_83_,_tmp_84_,0
|
||||
# ori $2,_letBind_83_,0
|
||||
jal putchar
|
||||
# was: jal putchar, $2
|
||||
ori $2, $16, 0
|
||||
# was: ori _mainres_1_, _letBind_36_, 0
|
||||
# ori $2,_mainres_1_,0
|
||||
# was: ori _mainres_21_, _letBind_52_, 0
|
||||
# ori $2,_mainres_21_,0
|
||||
addi $29, $29, 32
|
||||
lw $21, -28($29)
|
||||
lw $20, -24($29)
|
||||
@ -396,15 +453,15 @@ _Msg_DivZero_:
|
||||
.asciiz "division by zero"
|
||||
# String Literals
|
||||
.align 2
|
||||
_Maxacha_72_:
|
||||
_Maxacha_82_:
|
||||
.space 4
|
||||
.asciiz "Max char: "
|
||||
.align 2
|
||||
_a__str__69_:
|
||||
_a__str__79_:
|
||||
.space 4
|
||||
.asciiz "\n"
|
||||
.align 2
|
||||
_Sumaa___64_:
|
||||
_Sumaa___74_:
|
||||
.space 4
|
||||
.asciiz "Sum: "
|
||||
.align 2
|
||||
|
437
tests/ordchr.asm
437
tests/ordchr.asm
@ -17,6 +17,133 @@
|
||||
_stop_:
|
||||
ori $2, $0, 10
|
||||
syscall
|
||||
# Function read_char
|
||||
read_char:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_i_1_,$2,0
|
||||
jal getchar
|
||||
# was: jal getchar, $2
|
||||
# ori _read_charres_2_,$2,0
|
||||
# ori $2,_read_charres_2_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function read_string
|
||||
read_string:
|
||||
sw $31, -4($29)
|
||||
sw $20, -24($29)
|
||||
sw $19, -20($29)
|
||||
sw $18, -16($29)
|
||||
sw $17, -12($29)
|
||||
sw $16, -8($29)
|
||||
addi $29, $29, -28
|
||||
# ori _param_n_3_,$2,0
|
||||
ori $3, $2, 0
|
||||
# was: ori _size_reg_9_, _param_n_3_, 0
|
||||
bgez $3, _safe_lab_10_
|
||||
# was: bgez _size_reg_9_, _safe_lab_10_
|
||||
ori $5, $0, 3
|
||||
# was: ori $5, $0, 3
|
||||
la $6, _Msg_IllegalArraySize_
|
||||
# was: la $6, _Msg_IllegalArraySize_
|
||||
j _RuntimeError_
|
||||
_safe_lab_10_:
|
||||
ori $2, $28, 0
|
||||
# was: ori _arr_reg_6_, $28, 0
|
||||
sll $4, $3, 2
|
||||
# was: sll _tmp_16_, _size_reg_9_, 2
|
||||
addi $4, $4, 4
|
||||
# was: addi _tmp_16_, _tmp_16_, 4
|
||||
add $28, $28, $4
|
||||
# was: add $28, $28, _tmp_16_
|
||||
sw $3, 0($2)
|
||||
# was: sw _size_reg_9_, 0(_arr_reg_6_)
|
||||
addi $6, $2, 4
|
||||
# was: addi _addr_reg_11_, _arr_reg_6_, 4
|
||||
ori $5, $0, 0
|
||||
# was: ori _i_reg_12_, $0, 0
|
||||
_loop_beg_13_:
|
||||
sub $4, $5, $3
|
||||
# was: sub _tmp_reg_15_, _i_reg_12_, _size_reg_9_
|
||||
bgez $4, _loop_end_14_
|
||||
# was: bgez _tmp_reg_15_, _loop_end_14_
|
||||
sw $5, 0($6)
|
||||
# was: sw _i_reg_12_, 0(_addr_reg_11_)
|
||||
addi $6, $6, 4
|
||||
# was: addi _addr_reg_11_, _addr_reg_11_, 4
|
||||
addi $5, $5, 1
|
||||
# was: addi _i_reg_12_, _i_reg_12_, 1
|
||||
j _loop_beg_13_
|
||||
_loop_end_14_:
|
||||
lw $16, 0($2)
|
||||
# was: lw _size_reg_5_, 0(_arr_reg_6_)
|
||||
ori $17, $28, 0
|
||||
# was: ori _read_stringres_4_, $28, 0
|
||||
addi $3, $16, 3
|
||||
# was: addi _tmp_23_, _size_reg_5_, 3
|
||||
sra $3, $3, 2
|
||||
# was: sra _tmp_23_, _tmp_23_, 2
|
||||
sll $3, $3, 2
|
||||
# was: sll _tmp_23_, _tmp_23_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_23_, _tmp_23_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_23_
|
||||
sw $16, 0($17)
|
||||
# was: sw _size_reg_5_, 0(_read_stringres_4_)
|
||||
addi $18, $17, 4
|
||||
# was: addi _addr_reg_17_, _read_stringres_4_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_18_, $0, 0
|
||||
addi $20, $2, 4
|
||||
# was: addi _elem_reg_7_, _arr_reg_6_, 4
|
||||
_loop_beg_19_:
|
||||
sub $2, $19, $16
|
||||
# was: sub _tmp_reg_21_, _i_reg_18_, _size_reg_5_
|
||||
bgez $2, _loop_end_20_
|
||||
# was: bgez _tmp_reg_21_, _loop_end_20_
|
||||
lw $2, 0($20)
|
||||
# was: lw _res_reg_8_, 0(_elem_reg_7_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_7_, _elem_reg_7_, 4
|
||||
# ori $2,_res_reg_8_,0
|
||||
jal read_char
|
||||
# was: jal read_char, $2
|
||||
# ori _tmp_reg_22_,$2,0
|
||||
# ori _res_reg_8_,_tmp_reg_22_,0
|
||||
sb $2, 0($18)
|
||||
# was: sb _res_reg_8_, 0(_addr_reg_17_)
|
||||
addi $18, $18, 1
|
||||
# was: addi _addr_reg_17_, _addr_reg_17_, 1
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_18_, _i_reg_18_, 1
|
||||
j _loop_beg_19_
|
||||
_loop_end_20_:
|
||||
ori $2, $17, 0
|
||||
# was: ori $2, _read_stringres_4_, 0
|
||||
addi $29, $29, 28
|
||||
lw $20, -24($29)
|
||||
lw $19, -20($29)
|
||||
lw $18, -16($29)
|
||||
lw $17, -12($29)
|
||||
lw $16, -8($29)
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function add_one
|
||||
add_one:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_x_24_,$2,0
|
||||
# ori _plus_L_26_,_param_x_24_,0
|
||||
ori $3, $0, 1
|
||||
# was: ori _plus_R_27_, $0, 1
|
||||
add $2, $2, $3
|
||||
# was: add _add_oneres_25_, _plus_L_26_, _plus_R_27_
|
||||
# ori $2,_add_oneres_25_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function main
|
||||
main:
|
||||
sw $31, -4($29)
|
||||
@ -28,224 +155,146 @@ main:
|
||||
addi $29, $29, -28
|
||||
jal getint
|
||||
# was: jal getint, $2
|
||||
# ori _letBind_2_,$2,0
|
||||
ori $4, $2, 0
|
||||
# was: ori _size_reg_8_, _letBind_2_, 0
|
||||
bgez $4, _safe_lab_9_
|
||||
# was: bgez _size_reg_8_, _safe_lab_9_
|
||||
ori $5, $0, 3
|
||||
# was: ori $5, $0, 3
|
||||
la $6, _Msg_IllegalArraySize_
|
||||
# was: la $6, _Msg_IllegalArraySize_
|
||||
j _RuntimeError_
|
||||
_safe_lab_9_:
|
||||
ori $3, $28, 0
|
||||
# was: ori _arr_reg_5_, $28, 0
|
||||
sll $5, $4, 2
|
||||
# was: sll _tmp_15_, _size_reg_8_, 2
|
||||
addi $5, $5, 4
|
||||
# was: addi _tmp_15_, _tmp_15_, 4
|
||||
add $28, $28, $5
|
||||
# was: add $28, $28, _tmp_15_
|
||||
sw $4, 0($3)
|
||||
# was: sw _size_reg_8_, 0(_arr_reg_5_)
|
||||
addi $5, $3, 4
|
||||
# was: addi _addr_reg_10_, _arr_reg_5_, 4
|
||||
ori $7, $0, 0
|
||||
# was: ori _i_reg_11_, $0, 0
|
||||
_loop_beg_12_:
|
||||
sub $6, $7, $4
|
||||
# was: sub _tmp_reg_14_, _i_reg_11_, _size_reg_8_
|
||||
bgez $6, _loop_end_13_
|
||||
# was: bgez _tmp_reg_14_, _loop_end_13_
|
||||
sw $7, 0($5)
|
||||
# was: sw _i_reg_11_, 0(_addr_reg_10_)
|
||||
addi $5, $5, 4
|
||||
# was: addi _addr_reg_10_, _addr_reg_10_, 4
|
||||
addi $7, $7, 1
|
||||
# was: addi _i_reg_11_, _i_reg_11_, 1
|
||||
j _loop_beg_12_
|
||||
_loop_end_13_:
|
||||
lw $17, 0($3)
|
||||
# was: lw _size_reg_4_, 0(_arr_reg_5_)
|
||||
ori $18, $28, 0
|
||||
# was: ori _letBind_3_, $28, 0
|
||||
addi $4, $17, 3
|
||||
# was: addi _tmp_22_, _size_reg_4_, 3
|
||||
sra $4, $4, 2
|
||||
# was: sra _tmp_22_, _tmp_22_, 2
|
||||
sll $4, $4, 2
|
||||
# was: sll _tmp_22_, _tmp_22_, 2
|
||||
addi $4, $4, 4
|
||||
# was: addi _tmp_22_, _tmp_22_, 4
|
||||
add $28, $28, $4
|
||||
# was: add $28, $28, _tmp_22_
|
||||
sw $17, 0($18)
|
||||
# was: sw _size_reg_4_, 0(_letBind_3_)
|
||||
addi $16, $18, 4
|
||||
# was: addi _addr_reg_16_, _letBind_3_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_17_, $0, 0
|
||||
addi $20, $3, 4
|
||||
# was: addi _elem_reg_6_, _arr_reg_5_, 4
|
||||
_loop_beg_18_:
|
||||
sub $3, $19, $17
|
||||
# was: sub _tmp_reg_20_, _i_reg_17_, _size_reg_4_
|
||||
bgez $3, _loop_end_19_
|
||||
# was: bgez _tmp_reg_20_, _loop_end_19_
|
||||
lw $3, 0($20)
|
||||
# was: lw _res_reg_7_, 0(_elem_reg_6_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_6_, _elem_reg_6_, 4
|
||||
jal getchar
|
||||
# was: jal getchar, $2
|
||||
# ori _fun_arg_res_21_,$2,0
|
||||
ori $3, $2, 0
|
||||
# was: ori _res_reg_7_, _fun_arg_res_21_, 0
|
||||
sb $3, 0($16)
|
||||
# was: sb _res_reg_7_, 0(_addr_reg_16_)
|
||||
addi $16, $16, 1
|
||||
# was: addi _addr_reg_16_, _addr_reg_16_, 1
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_17_, _i_reg_17_, 1
|
||||
j _loop_beg_18_
|
||||
_loop_end_19_:
|
||||
ori $2, $18, 0
|
||||
# was: ori _arr_reg_33_, _letBind_3_, 0
|
||||
# ori _letBind_29_,$2,0
|
||||
# ori _arg_31_,_letBind_29_,0
|
||||
# ori $2,_arg_31_,0
|
||||
jal read_string
|
||||
# was: jal read_string, $2
|
||||
# ori _letBind_30_,$2,0
|
||||
# ori _arr_reg_42_,_letBind_30_,0
|
||||
lw $18, 0($2)
|
||||
# was: lw _size_reg_32_, 0(_arr_reg_33_)
|
||||
ori $16, $28, 0
|
||||
# was: ori _arr_reg_29_, $28, 0
|
||||
# was: lw _size_reg_41_, 0(_arr_reg_42_)
|
||||
ori $20, $28, 0
|
||||
# was: ori _arr_reg_38_, $28, 0
|
||||
sll $3, $18, 2
|
||||
# was: sll _tmp_42_, _size_reg_32_, 2
|
||||
# was: sll _tmp_51_, _size_reg_41_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_42_, _tmp_42_, 4
|
||||
# was: addi _tmp_51_, _tmp_51_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_42_
|
||||
sw $18, 0($16)
|
||||
# was: sw _size_reg_32_, 0(_arr_reg_29_)
|
||||
addi $19, $16, 4
|
||||
# was: addi _addr_reg_36_, _arr_reg_29_, 4
|
||||
ori $17, $0, 0
|
||||
# was: ori _i_reg_37_, $0, 0
|
||||
addi $20, $2, 4
|
||||
# was: addi _elem_reg_34_, _arr_reg_33_, 4
|
||||
_loop_beg_38_:
|
||||
sub $2, $17, $18
|
||||
# was: sub _tmp_reg_40_, _i_reg_37_, _size_reg_32_
|
||||
bgez $2, _loop_end_39_
|
||||
# was: bgez _tmp_reg_40_, _loop_end_39_
|
||||
lb $2, 0($20)
|
||||
# was: lb _res_reg_35_, 0(_elem_reg_34_)
|
||||
addi $20, $20, 1
|
||||
# was: addi _elem_reg_34_, _elem_reg_34_, 1
|
||||
# ori $2,_res_reg_35_,0
|
||||
# was: add $28, $28, _tmp_51_
|
||||
sw $18, 0($20)
|
||||
# was: sw _size_reg_41_, 0(_arr_reg_38_)
|
||||
addi $17, $20, 4
|
||||
# was: addi _addr_reg_45_, _arr_reg_38_, 4
|
||||
ori $16, $0, 0
|
||||
# was: ori _i_reg_46_, $0, 0
|
||||
addi $19, $2, 4
|
||||
# was: addi _elem_reg_43_, _arr_reg_42_, 4
|
||||
_loop_beg_47_:
|
||||
sub $2, $16, $18
|
||||
# was: sub _tmp_reg_49_, _i_reg_46_, _size_reg_41_
|
||||
bgez $2, _loop_end_48_
|
||||
# was: bgez _tmp_reg_49_, _loop_end_48_
|
||||
lb $2, 0($19)
|
||||
# was: lb _res_reg_44_, 0(_elem_reg_43_)
|
||||
addi $19, $19, 1
|
||||
# was: addi _elem_reg_43_, _elem_reg_43_, 1
|
||||
# ori $2,_res_reg_44_,0
|
||||
jal ord
|
||||
# was: jal ord, $2
|
||||
# ori _tmp_reg_41_,$2,0
|
||||
# ori _res_reg_35_,_tmp_reg_41_,0
|
||||
sw $2, 0($19)
|
||||
# was: sw _res_reg_35_, 0(_addr_reg_36_)
|
||||
addi $19, $19, 4
|
||||
# was: addi _addr_reg_36_, _addr_reg_36_, 4
|
||||
addi $17, $17, 1
|
||||
# was: addi _i_reg_37_, _i_reg_37_, 1
|
||||
j _loop_beg_38_
|
||||
_loop_end_39_:
|
||||
lw $3, 0($16)
|
||||
# was: lw _size_reg_28_, 0(_arr_reg_29_)
|
||||
ori $2, $28, 0
|
||||
# was: ori _arr_reg_25_, $28, 0
|
||||
sll $4, $3, 2
|
||||
# was: sll _tmp_51_, _size_reg_28_, 2
|
||||
addi $4, $4, 4
|
||||
# was: addi _tmp_51_, _tmp_51_, 4
|
||||
add $28, $28, $4
|
||||
# was: add $28, $28, _tmp_51_
|
||||
sw $3, 0($2)
|
||||
# was: sw _size_reg_28_, 0(_arr_reg_25_)
|
||||
addi $5, $2, 4
|
||||
# was: addi _addr_reg_43_, _arr_reg_25_, 4
|
||||
ori $4, $0, 0
|
||||
# was: ori _i_reg_44_, $0, 0
|
||||
addi $6, $16, 4
|
||||
# was: addi _elem_reg_30_, _arr_reg_29_, 4
|
||||
_loop_beg_45_:
|
||||
sub $7, $4, $3
|
||||
# was: sub _tmp_reg_47_, _i_reg_44_, _size_reg_28_
|
||||
bgez $7, _loop_end_46_
|
||||
# was: bgez _tmp_reg_47_, _loop_end_46_
|
||||
lw $8, 0($6)
|
||||
# was: lw _res_reg_31_, 0(_elem_reg_30_)
|
||||
addi $6, $6, 4
|
||||
# was: addi _elem_reg_30_, _elem_reg_30_, 4
|
||||
# ori _plus_L_49_,_res_reg_31_,0
|
||||
ori $7, $0, 1
|
||||
# was: ori _plus_R_50_, $0, 1
|
||||
add $8, $8, $7
|
||||
# was: add _fun_arg_res_48_, _plus_L_49_, _plus_R_50_
|
||||
# ori _res_reg_31_,_fun_arg_res_48_,0
|
||||
sw $8, 0($5)
|
||||
# was: sw _res_reg_31_, 0(_addr_reg_43_)
|
||||
addi $5, $5, 4
|
||||
# was: addi _addr_reg_43_, _addr_reg_43_, 4
|
||||
addi $4, $4, 1
|
||||
# was: addi _i_reg_44_, _i_reg_44_, 1
|
||||
j _loop_beg_45_
|
||||
_loop_end_46_:
|
||||
lw $17, 0($2)
|
||||
# was: lw _size_reg_24_, 0(_arr_reg_25_)
|
||||
# ori _tmp_reg_50_,$2,0
|
||||
# ori _res_reg_44_,_tmp_reg_50_,0
|
||||
sw $2, 0($17)
|
||||
# was: sw _res_reg_44_, 0(_addr_reg_45_)
|
||||
addi $17, $17, 4
|
||||
# was: addi _addr_reg_45_, _addr_reg_45_, 4
|
||||
addi $16, $16, 1
|
||||
# was: addi _i_reg_46_, _i_reg_46_, 1
|
||||
j _loop_beg_47_
|
||||
_loop_end_48_:
|
||||
lw $19, 0($20)
|
||||
# was: lw _size_reg_37_, 0(_arr_reg_38_)
|
||||
ori $16, $28, 0
|
||||
# was: ori _letBind_23_, $28, 0
|
||||
addi $3, $17, 3
|
||||
# was: addi _tmp_58_, _size_reg_24_, 3
|
||||
sra $3, $3, 2
|
||||
# was: sra _tmp_58_, _tmp_58_, 2
|
||||
sll $3, $3, 2
|
||||
# was: sll _tmp_58_, _tmp_58_, 2
|
||||
addi $3, $3, 4
|
||||
# was: ori _arr_reg_34_, $28, 0
|
||||
sll $2, $19, 2
|
||||
# was: sll _tmp_58_, _size_reg_37_, 2
|
||||
addi $2, $2, 4
|
||||
# was: addi _tmp_58_, _tmp_58_, 4
|
||||
add $28, $28, $3
|
||||
add $28, $28, $2
|
||||
# was: add $28, $28, _tmp_58_
|
||||
sw $17, 0($16)
|
||||
# was: sw _size_reg_24_, 0(_letBind_23_)
|
||||
sw $19, 0($16)
|
||||
# was: sw _size_reg_37_, 0(_arr_reg_34_)
|
||||
addi $18, $16, 4
|
||||
# was: addi _addr_reg_52_, _letBind_23_, 4
|
||||
ori $19, $0, 0
|
||||
# was: addi _addr_reg_52_, _arr_reg_34_, 4
|
||||
ori $17, $0, 0
|
||||
# was: ori _i_reg_53_, $0, 0
|
||||
addi $20, $2, 4
|
||||
# was: addi _elem_reg_26_, _arr_reg_25_, 4
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_39_, _arr_reg_38_, 4
|
||||
_loop_beg_54_:
|
||||
sub $2, $19, $17
|
||||
# was: sub _tmp_reg_56_, _i_reg_53_, _size_reg_24_
|
||||
sub $2, $17, $19
|
||||
# was: sub _tmp_reg_56_, _i_reg_53_, _size_reg_37_
|
||||
bgez $2, _loop_end_55_
|
||||
# was: bgez _tmp_reg_56_, _loop_end_55_
|
||||
lw $2, 0($20)
|
||||
# was: lw _res_reg_27_, 0(_elem_reg_26_)
|
||||
# was: lw _res_reg_40_, 0(_elem_reg_39_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_26_, _elem_reg_26_, 4
|
||||
# ori $2,_res_reg_27_,0
|
||||
jal chr
|
||||
# was: jal chr, $2
|
||||
# was: addi _elem_reg_39_, _elem_reg_39_, 4
|
||||
# ori $2,_res_reg_40_,0
|
||||
jal add_one
|
||||
# was: jal add_one, $2
|
||||
# ori _tmp_reg_57_,$2,0
|
||||
# ori _res_reg_27_,_tmp_reg_57_,0
|
||||
sb $2, 0($18)
|
||||
# was: sb _res_reg_27_, 0(_addr_reg_52_)
|
||||
addi $18, $18, 1
|
||||
# was: addi _addr_reg_52_, _addr_reg_52_, 1
|
||||
addi $19, $19, 1
|
||||
# ori _res_reg_40_,_tmp_reg_57_,0
|
||||
sw $2, 0($18)
|
||||
# was: sw _res_reg_40_, 0(_addr_reg_52_)
|
||||
addi $18, $18, 4
|
||||
# was: addi _addr_reg_52_, _addr_reg_52_, 4
|
||||
addi $17, $17, 1
|
||||
# was: addi _i_reg_53_, _i_reg_53_, 1
|
||||
j _loop_beg_54_
|
||||
_loop_end_55_:
|
||||
ori $2, $16, 0
|
||||
# was: ori _tmp_59_, _letBind_23_, 0
|
||||
lw $18, 0($16)
|
||||
# was: lw _size_reg_33_, 0(_arr_reg_34_)
|
||||
ori $17, $28, 0
|
||||
# was: ori _letBind_32_, $28, 0
|
||||
addi $2, $18, 3
|
||||
# was: addi _tmp_65_, _size_reg_33_, 3
|
||||
sra $2, $2, 2
|
||||
# was: sra _tmp_65_, _tmp_65_, 2
|
||||
sll $2, $2, 2
|
||||
# was: sll _tmp_65_, _tmp_65_, 2
|
||||
addi $2, $2, 4
|
||||
# was: addi _tmp_65_, _tmp_65_, 4
|
||||
add $28, $28, $2
|
||||
# was: add $28, $28, _tmp_65_
|
||||
sw $18, 0($17)
|
||||
# was: sw _size_reg_33_, 0(_letBind_32_)
|
||||
addi $19, $17, 4
|
||||
# was: addi _addr_reg_59_, _letBind_32_, 4
|
||||
ori $20, $0, 0
|
||||
# was: ori _i_reg_60_, $0, 0
|
||||
addi $16, $16, 4
|
||||
# was: addi _elem_reg_35_, _arr_reg_34_, 4
|
||||
_loop_beg_61_:
|
||||
sub $2, $20, $18
|
||||
# was: sub _tmp_reg_63_, _i_reg_60_, _size_reg_33_
|
||||
bgez $2, _loop_end_62_
|
||||
# was: bgez _tmp_reg_63_, _loop_end_62_
|
||||
lw $2, 0($16)
|
||||
# was: lw _res_reg_36_, 0(_elem_reg_35_)
|
||||
addi $16, $16, 4
|
||||
# was: addi _elem_reg_35_, _elem_reg_35_, 4
|
||||
# ori $2,_res_reg_36_,0
|
||||
jal chr
|
||||
# was: jal chr, $2
|
||||
# ori _tmp_reg_64_,$2,0
|
||||
# ori _res_reg_36_,_tmp_reg_64_,0
|
||||
sb $2, 0($19)
|
||||
# was: sb _res_reg_36_, 0(_addr_reg_59_)
|
||||
addi $19, $19, 1
|
||||
# was: addi _addr_reg_59_, _addr_reg_59_, 1
|
||||
addi $20, $20, 1
|
||||
# was: addi _i_reg_60_, _i_reg_60_, 1
|
||||
j _loop_beg_61_
|
||||
_loop_end_62_:
|
||||
ori $2, $17, 0
|
||||
# was: ori _tmp_66_, _letBind_32_, 0
|
||||
ori $16, $2, 0
|
||||
# was: ori _mainres_1_, _tmp_59_, 0
|
||||
# ori $2,_tmp_59_,0
|
||||
# was: ori _mainres_28_, _tmp_66_, 0
|
||||
# ori $2,_tmp_66_,0
|
||||
jal putstring
|
||||
# was: jal putstring, $2
|
||||
ori $2, $16, 0
|
||||
# was: ori $2, _mainres_1_, 0
|
||||
# was: ori $2, _mainres_28_, 0
|
||||
addi $29, $29, 28
|
||||
lw $20, -24($29)
|
||||
lw $19, -20($29)
|
||||
|
@ -17,184 +17,240 @@
|
||||
_stop_:
|
||||
ori $2, $0, 10
|
||||
syscall
|
||||
# Function plus100
|
||||
plus100:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_x_1_,$2,0
|
||||
# ori _plus_L_3_,_param_x_1_,0
|
||||
ori $3, $0, 100
|
||||
# was: ori _plus_R_4_, $0, 100
|
||||
add $2, $2, $3
|
||||
# was: add _plus100res_2_, _plus_L_3_, _plus_R_4_
|
||||
# ori $2,_plus100res_2_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function plus
|
||||
plus:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_x_5_,$2,0
|
||||
# ori _param_y_6_,$3,0
|
||||
# ori _plus_L_8_,_param_x_5_,0
|
||||
# ori _plus_R_9_,_param_y_6_,0
|
||||
add $2, $2, $3
|
||||
# was: add _plusres_7_, _plus_L_8_, _plus_R_9_
|
||||
# ori $2,_plusres_7_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function main
|
||||
main:
|
||||
sw $31, -4($29)
|
||||
sw $21, -28($29)
|
||||
sw $20, -24($29)
|
||||
sw $19, -20($29)
|
||||
sw $18, -16($29)
|
||||
sw $17, -12($29)
|
||||
sw $16, -8($29)
|
||||
addi $29, $29, -28
|
||||
addi $29, $29, -32
|
||||
jal getint
|
||||
# was: jal getint, $2
|
||||
# ori _letBind_2_,$2,0
|
||||
ori $3, $2, 0
|
||||
# was: ori _size_reg_4_, _letBind_2_, 0
|
||||
bgez $3, _safe_lab_5_
|
||||
# was: bgez _size_reg_4_, _safe_lab_5_
|
||||
# ori _letBind_11_,$2,0
|
||||
# ori _size_reg_13_,_letBind_11_,0
|
||||
bgez $2, _safe_lab_14_
|
||||
# was: bgez _size_reg_13_, _safe_lab_14_
|
||||
ori $5, $0, 6
|
||||
# was: ori $5, $0, 6
|
||||
la $6, _Msg_IllegalArraySize_
|
||||
# was: la $6, _Msg_IllegalArraySize_
|
||||
j _RuntimeError_
|
||||
_safe_lab_5_:
|
||||
ori $6, $28, 0
|
||||
# was: ori _letBind_3_, $28, 0
|
||||
sll $2, $3, 2
|
||||
# was: sll _tmp_11_, _size_reg_4_, 2
|
||||
addi $2, $2, 4
|
||||
# was: addi _tmp_11_, _tmp_11_, 4
|
||||
add $28, $28, $2
|
||||
# was: add $28, $28, _tmp_11_
|
||||
sw $3, 0($6)
|
||||
# was: sw _size_reg_4_, 0(_letBind_3_)
|
||||
addi $5, $6, 4
|
||||
# was: addi _addr_reg_6_, _letBind_3_, 4
|
||||
ori $4, $0, 0
|
||||
# was: ori _i_reg_7_, $0, 0
|
||||
_loop_beg_8_:
|
||||
sub $2, $4, $3
|
||||
# was: sub _tmp_reg_10_, _i_reg_7_, _size_reg_4_
|
||||
bgez $2, _loop_end_9_
|
||||
# was: bgez _tmp_reg_10_, _loop_end_9_
|
||||
sw $4, 0($5)
|
||||
# was: sw _i_reg_7_, 0(_addr_reg_6_)
|
||||
addi $5, $5, 4
|
||||
# was: addi _addr_reg_6_, _addr_reg_6_, 4
|
||||
addi $4, $4, 1
|
||||
# was: addi _i_reg_7_, _i_reg_7_, 1
|
||||
j _loop_beg_8_
|
||||
_loop_end_9_:
|
||||
# ori _arr_reg_14_,_letBind_3_,0
|
||||
lw $2, 0($6)
|
||||
# was: lw _size_reg_13_, 0(_arr_reg_14_)
|
||||
ori $3, $28, 0
|
||||
_safe_lab_14_:
|
||||
ori $20, $28, 0
|
||||
# was: ori _letBind_12_, $28, 0
|
||||
sll $4, $2, 2
|
||||
# was: sll _tmp_25_, _size_reg_13_, 2
|
||||
addi $4, $4, 4
|
||||
# was: addi _tmp_25_, _tmp_25_, 4
|
||||
add $28, $28, $4
|
||||
# was: add $28, $28, _tmp_25_
|
||||
sw $2, 0($3)
|
||||
sll $3, $2, 2
|
||||
# was: sll _tmp_20_, _size_reg_13_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_20_, _tmp_20_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_20_
|
||||
sw $2, 0($20)
|
||||
# was: sw _size_reg_13_, 0(_letBind_12_)
|
||||
addi $5, $3, 4
|
||||
# was: addi _addr_reg_17_, _letBind_12_, 4
|
||||
ori $4, $0, 0
|
||||
# was: ori _i_reg_18_, $0, 0
|
||||
addi $6, $6, 4
|
||||
# was: addi _elem_reg_15_, _arr_reg_14_, 4
|
||||
_loop_beg_19_:
|
||||
sub $7, $4, $2
|
||||
# was: sub _tmp_reg_21_, _i_reg_18_, _size_reg_13_
|
||||
bgez $7, _loop_end_20_
|
||||
# was: bgez _tmp_reg_21_, _loop_end_20_
|
||||
lw $7, 0($6)
|
||||
# was: lw _res_reg_16_, 0(_elem_reg_15_)
|
||||
addi $6, $6, 4
|
||||
# was: addi _elem_reg_15_, _elem_reg_15_, 4
|
||||
ori $8, $7, 0
|
||||
# was: ori _plus_L_23_, _res_reg_16_, 0
|
||||
ori $7, $0, 100
|
||||
# was: ori _plus_R_24_, $0, 100
|
||||
add $7, $8, $7
|
||||
# was: add _fun_arg_res_22_, _plus_L_23_, _plus_R_24_
|
||||
# ori _res_reg_16_,_fun_arg_res_22_,0
|
||||
sw $7, 0($5)
|
||||
# was: sw _res_reg_16_, 0(_addr_reg_17_)
|
||||
addi $5, $20, 4
|
||||
# was: addi _addr_reg_15_, _letBind_12_, 4
|
||||
ori $3, $0, 0
|
||||
# was: ori _i_reg_16_, $0, 0
|
||||
_loop_beg_17_:
|
||||
sub $4, $3, $2
|
||||
# was: sub _tmp_reg_19_, _i_reg_16_, _size_reg_13_
|
||||
bgez $4, _loop_end_18_
|
||||
# was: bgez _tmp_reg_19_, _loop_end_18_
|
||||
sw $3, 0($5)
|
||||
# was: sw _i_reg_16_, 0(_addr_reg_15_)
|
||||
addi $5, $5, 4
|
||||
# was: addi _addr_reg_17_, _addr_reg_17_, 4
|
||||
addi $4, $4, 1
|
||||
# was: addi _i_reg_18_, _i_reg_18_, 1
|
||||
j _loop_beg_19_
|
||||
_loop_end_20_:
|
||||
# ori _arr_reg_28_,_letBind_12_,0
|
||||
lw $17, 0($3)
|
||||
# was: lw _size_reg_27_, 0(_arr_reg_28_)
|
||||
# was: addi _addr_reg_15_, _addr_reg_15_, 4
|
||||
addi $3, $3, 1
|
||||
# was: addi _i_reg_16_, _i_reg_16_, 1
|
||||
j _loop_beg_17_
|
||||
_loop_end_18_:
|
||||
# ori _arr_reg_23_,_letBind_12_,0
|
||||
lw $17, 0($20)
|
||||
# was: lw _size_reg_22_, 0(_arr_reg_23_)
|
||||
ori $16, $28, 0
|
||||
# was: ori _letBind_26_, $28, 0
|
||||
addi $2, $17, 3
|
||||
# was: addi _tmp_37_, _size_reg_27_, 3
|
||||
sra $2, $2, 2
|
||||
# was: sra _tmp_37_, _tmp_37_, 2
|
||||
sll $2, $2, 2
|
||||
# was: sll _tmp_37_, _tmp_37_, 2
|
||||
# was: ori _letBind_21_, $28, 0
|
||||
sll $2, $17, 2
|
||||
# was: sll _tmp_32_, _size_reg_22_, 2
|
||||
addi $2, $2, 4
|
||||
# was: addi _tmp_37_, _tmp_37_, 4
|
||||
# was: addi _tmp_32_, _tmp_32_, 4
|
||||
add $28, $28, $2
|
||||
# was: add $28, $28, _tmp_37_
|
||||
# was: add $28, $28, _tmp_32_
|
||||
sw $17, 0($16)
|
||||
# was: sw _size_reg_27_, 0(_letBind_26_)
|
||||
# was: sw _size_reg_22_, 0(_letBind_21_)
|
||||
addi $19, $16, 4
|
||||
# was: addi _addr_reg_31_, _letBind_26_, 4
|
||||
# was: addi _addr_reg_26_, _letBind_21_, 4
|
||||
ori $18, $0, 0
|
||||
# was: ori _i_reg_32_, $0, 0
|
||||
addi $20, $3, 4
|
||||
# was: addi _elem_reg_29_, _arr_reg_28_, 4
|
||||
_loop_beg_33_:
|
||||
# was: ori _i_reg_27_, $0, 0
|
||||
addi $21, $20, 4
|
||||
# was: addi _elem_reg_24_, _arr_reg_23_, 4
|
||||
_loop_beg_28_:
|
||||
sub $2, $18, $17
|
||||
# was: sub _tmp_reg_35_, _i_reg_32_, _size_reg_27_
|
||||
bgez $2, _loop_end_34_
|
||||
# was: bgez _tmp_reg_35_, _loop_end_34_
|
||||
lw $2, 0($20)
|
||||
# was: lw _res_reg_30_, 0(_elem_reg_29_)
|
||||
# was: sub _tmp_reg_30_, _i_reg_27_, _size_reg_22_
|
||||
bgez $2, _loop_end_29_
|
||||
# was: bgez _tmp_reg_30_, _loop_end_29_
|
||||
lw $2, 0($21)
|
||||
# was: lw _res_reg_25_, 0(_elem_reg_24_)
|
||||
addi $21, $21, 4
|
||||
# was: addi _elem_reg_24_, _elem_reg_24_, 4
|
||||
# ori $2,_res_reg_25_,0
|
||||
jal plus100
|
||||
# was: jal plus100, $2
|
||||
# ori _tmp_reg_31_,$2,0
|
||||
# ori _res_reg_25_,_tmp_reg_31_,0
|
||||
sw $2, 0($19)
|
||||
# was: sw _res_reg_25_, 0(_addr_reg_26_)
|
||||
addi $19, $19, 4
|
||||
# was: addi _addr_reg_26_, _addr_reg_26_, 4
|
||||
addi $18, $18, 1
|
||||
# was: addi _i_reg_27_, _i_reg_27_, 1
|
||||
j _loop_beg_28_
|
||||
_loop_end_29_:
|
||||
# ori _arr_reg_34_,_letBind_12_,0
|
||||
lw $17, 0($20)
|
||||
# was: lw _size_reg_35_, 0(_arr_reg_34_)
|
||||
ori $2, $0, 0
|
||||
# was: ori _letBind_33_, $0, 0
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_29_, _elem_reg_29_, 4
|
||||
# ori $2,_res_reg_30_,0
|
||||
# was: addi _arr_reg_34_, _arr_reg_34_, 4
|
||||
ori $18, $0, 0
|
||||
# was: ori _ind_var_36_, $0, 0
|
||||
_loop_beg_38_:
|
||||
sub $3, $18, $17
|
||||
# was: sub _tmp_reg_37_, _ind_var_36_, _size_reg_35_
|
||||
bgez $3, _loop_end_39_
|
||||
# was: bgez _tmp_reg_37_, _loop_end_39_
|
||||
lw $3, 0($20)
|
||||
# was: lw _tmp_reg_37_, 0(_arr_reg_34_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _arr_reg_34_, _arr_reg_34_, 4
|
||||
# ori $2,_letBind_33_,0
|
||||
# ori $3,_tmp_reg_37_,0
|
||||
jal plus
|
||||
# was: jal plus, $2 $3
|
||||
# ori _tmp_reg_40_,$2,0
|
||||
# ori _letBind_33_,_tmp_reg_40_,0
|
||||
addi $18, $18, 1
|
||||
# was: addi _ind_var_36_, _ind_var_36_, 1
|
||||
j _loop_beg_38_
|
||||
_loop_end_39_:
|
||||
ori $2, $16, 0
|
||||
# was: ori _arr_reg_43_, _letBind_21_, 0
|
||||
lw $16, 0($2)
|
||||
# was: lw _size_reg_42_, 0(_arr_reg_43_)
|
||||
ori $17, $28, 0
|
||||
# was: ori _letBind_41_, $28, 0
|
||||
addi $3, $16, 3
|
||||
# was: addi _tmp_52_, _size_reg_42_, 3
|
||||
sra $3, $3, 2
|
||||
# was: sra _tmp_52_, _tmp_52_, 2
|
||||
sll $3, $3, 2
|
||||
# was: sll _tmp_52_, _tmp_52_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_52_, _tmp_52_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_52_
|
||||
sw $16, 0($17)
|
||||
# was: sw _size_reg_42_, 0(_letBind_41_)
|
||||
addi $18, $17, 4
|
||||
# was: addi _addr_reg_46_, _letBind_41_, 4
|
||||
ori $19, $0, 0
|
||||
# was: ori _i_reg_47_, $0, 0
|
||||
addi $20, $2, 4
|
||||
# was: addi _elem_reg_44_, _arr_reg_43_, 4
|
||||
_loop_beg_48_:
|
||||
sub $2, $19, $16
|
||||
# was: sub _tmp_reg_50_, _i_reg_47_, _size_reg_42_
|
||||
bgez $2, _loop_end_49_
|
||||
# was: bgez _tmp_reg_50_, _loop_end_49_
|
||||
lw $2, 0($20)
|
||||
# was: lw _res_reg_45_, 0(_elem_reg_44_)
|
||||
addi $20, $20, 4
|
||||
# was: addi _elem_reg_44_, _elem_reg_44_, 4
|
||||
# ori $2,_res_reg_45_,0
|
||||
jal chr
|
||||
# was: jal chr, $2
|
||||
# ori _tmp_reg_36_,$2,0
|
||||
# ori _res_reg_30_,_tmp_reg_36_,0
|
||||
sb $2, 0($19)
|
||||
# was: sb _res_reg_30_, 0(_addr_reg_31_)
|
||||
addi $19, $19, 1
|
||||
# was: addi _addr_reg_31_, _addr_reg_31_, 1
|
||||
# ori _tmp_reg_51_,$2,0
|
||||
# ori _res_reg_45_,_tmp_reg_51_,0
|
||||
sb $2, 0($18)
|
||||
# was: sb _res_reg_45_, 0(_addr_reg_46_)
|
||||
addi $18, $18, 1
|
||||
# was: addi _i_reg_32_, _i_reg_32_, 1
|
||||
j _loop_beg_33_
|
||||
_loop_end_34_:
|
||||
# was: addi _addr_reg_46_, _addr_reg_46_, 1
|
||||
addi $19, $19, 1
|
||||
# was: addi _i_reg_47_, _i_reg_47_, 1
|
||||
j _loop_beg_48_
|
||||
_loop_end_49_:
|
||||
ori $2, $0, 1
|
||||
# was: ori _arr_ind_41_, $0, 1
|
||||
addi $3, $16, 4
|
||||
# was: addi _arr_reg_42_, _letBind_26_, 4
|
||||
lw $4, 0($16)
|
||||
# was: lw _size_reg_43_, 0(_letBind_26_)
|
||||
bgez $2, _safe_lab_46_
|
||||
# was: bgez _arr_ind_41_, _safe_lab_46_
|
||||
_error_lab_45_:
|
||||
# was: ori _arr_ind_56_, $0, 1
|
||||
addi $3, $17, 4
|
||||
# was: addi _arr_reg_57_, _letBind_41_, 4
|
||||
lw $4, 0($17)
|
||||
# was: lw _size_reg_58_, 0(_letBind_41_)
|
||||
bgez $2, _safe_lab_61_
|
||||
# was: bgez _arr_ind_56_, _safe_lab_61_
|
||||
_error_lab_60_:
|
||||
ori $5, $0, 10
|
||||
# was: ori $5, $0, 10
|
||||
la $6, _Msg_IllegalIndex_
|
||||
# was: la $6, _Msg_IllegalIndex_
|
||||
j _RuntimeError_
|
||||
_safe_lab_46_:
|
||||
_safe_lab_61_:
|
||||
sub $4, $2, $4
|
||||
# was: sub _tmp_reg_44_, _arr_ind_41_, _size_reg_43_
|
||||
bgez $4, _error_lab_45_
|
||||
# was: bgez _tmp_reg_44_, _error_lab_45_
|
||||
# was: sub _tmp_reg_59_, _arr_ind_56_, _size_reg_58_
|
||||
bgez $4, _error_lab_60_
|
||||
# was: bgez _tmp_reg_59_, _error_lab_60_
|
||||
add $3, $3, $2
|
||||
# was: add _arr_reg_42_, _arr_reg_42_, _arr_ind_41_
|
||||
# was: add _arr_reg_57_, _arr_reg_57_, _arr_ind_56_
|
||||
lb $2, 0($3)
|
||||
# was: lb _arg_40_, 0(_arr_reg_42_)
|
||||
# ori $2,_arg_40_,0
|
||||
# was: lb _arg_55_, 0(_arr_reg_57_)
|
||||
# ori $2,_arg_55_,0
|
||||
jal ord
|
||||
# was: jal ord, $2
|
||||
# ori _tmp_39_,$2,0
|
||||
# ori _letBind_38_,_tmp_39_,0
|
||||
# ori $2,_letBind_38_,0
|
||||
# ori _tmp_54_,$2,0
|
||||
# ori _letBind_53_,_tmp_54_,0
|
||||
# ori $2,_letBind_53_,0
|
||||
jal putint
|
||||
# was: jal putint, $2
|
||||
ori $2, $16, 0
|
||||
# was: ori _tmp_47_, _letBind_26_, 0
|
||||
ori $2, $17, 0
|
||||
# was: ori _tmp_62_, _letBind_41_, 0
|
||||
ori $16, $2, 0
|
||||
# was: ori _mainres_1_, _tmp_47_, 0
|
||||
# ori $2,_tmp_47_,0
|
||||
# was: ori _mainres_10_, _tmp_62_, 0
|
||||
# ori $2,_tmp_62_,0
|
||||
jal putstring
|
||||
# was: jal putstring, $2
|
||||
ori $2, $16, 0
|
||||
# was: ori $2, _mainres_1_, 0
|
||||
addi $29, $29, 28
|
||||
# was: ori $2, _mainres_10_, 0
|
||||
addi $29, $29, 32
|
||||
lw $21, -28($29)
|
||||
lw $20, -24($29)
|
||||
lw $19, -20($29)
|
||||
lw $18, -16($29)
|
||||
|
145
tests/reduce.asm
145
tests/reduce.asm
@ -17,79 +17,98 @@
|
||||
_stop_:
|
||||
ori $2, $0, 10
|
||||
syscall
|
||||
# Function incr
|
||||
incr:
|
||||
sw $31, -4($29)
|
||||
addi $29, $29, -8
|
||||
# ori _param_a_1_,$2,0
|
||||
# ori _param_b_2_,$3,0
|
||||
# ori _plus_L_4_,_param_a_1_,0
|
||||
# ori _plus_R_5_,_param_b_2_,0
|
||||
add $2, $2, $3
|
||||
# was: add _incrres_3_, _plus_L_4_, _plus_R_5_
|
||||
# ori $2,_incrres_3_,0
|
||||
addi $29, $29, 8
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
# Function main
|
||||
main:
|
||||
sw $31, -4($29)
|
||||
sw $18, -16($29)
|
||||
sw $17, -12($29)
|
||||
sw $16, -8($29)
|
||||
addi $29, $29, -12
|
||||
ori $4, $0, 3
|
||||
# was: ori _size_reg_9_, $0, 3
|
||||
ori $2, $28, 0
|
||||
# was: ori _arr_reg_3_, $28, 0
|
||||
sll $3, $4, 2
|
||||
# was: sll _tmp_12_, _size_reg_9_, 2
|
||||
addi $3, $3, 4
|
||||
# was: addi _tmp_12_, _tmp_12_, 4
|
||||
add $28, $28, $3
|
||||
# was: add $28, $28, _tmp_12_
|
||||
sw $4, 0($2)
|
||||
# was: sw _size_reg_9_, 0(_arr_reg_3_)
|
||||
addi $4, $2, 4
|
||||
# was: addi _addr_reg_10_, _arr_reg_3_, 4
|
||||
ori $3, $0, 1
|
||||
# was: ori _tmp_reg_11_, $0, 1
|
||||
sw $3, 0($4)
|
||||
# was: sw _tmp_reg_11_, 0(_addr_reg_10_)
|
||||
addi $4, $4, 4
|
||||
# was: addi _addr_reg_10_, _addr_reg_10_, 4
|
||||
ori $3, $0, 2
|
||||
# was: ori _tmp_reg_11_, $0, 2
|
||||
sw $3, 0($4)
|
||||
# was: sw _tmp_reg_11_, 0(_addr_reg_10_)
|
||||
addi $4, $4, 4
|
||||
# was: addi _addr_reg_10_, _addr_reg_10_, 4
|
||||
addi $29, $29, -20
|
||||
ori $3, $0, 3
|
||||
# was: ori _tmp_reg_11_, $0, 3
|
||||
sw $3, 0($4)
|
||||
# was: sw _tmp_reg_11_, 0(_addr_reg_10_)
|
||||
addi $4, $4, 4
|
||||
# was: addi _addr_reg_10_, _addr_reg_10_, 4
|
||||
lw $3, 0($2)
|
||||
# was: lw _size_reg_4_, 0(_arr_reg_3_)
|
||||
ori $6, $0, 0
|
||||
# was: ori _letBind_2_, $0, 0
|
||||
# was: ori _size_reg_14_, $0, 3
|
||||
ori $16, $28, 0
|
||||
# was: ori _arr_reg_8_, $28, 0
|
||||
sll $2, $3, 2
|
||||
# was: sll _tmp_17_, _size_reg_14_, 2
|
||||
addi $2, $2, 4
|
||||
# was: addi _arr_reg_3_, _arr_reg_3_, 4
|
||||
ori $4, $0, 0
|
||||
# was: ori _ind_var_5_, $0, 0
|
||||
_loop_beg_7_:
|
||||
sub $5, $4, $3
|
||||
# was: sub _tmp_reg_6_, _ind_var_5_, _size_reg_4_
|
||||
bgez $5, _loop_end_8_
|
||||
# was: bgez _tmp_reg_6_, _loop_end_8_
|
||||
lw $5, 0($2)
|
||||
# was: lw _tmp_reg_6_, 0(_arr_reg_3_)
|
||||
addi $2, $2, 4
|
||||
# was: addi _arr_reg_3_, _arr_reg_3_, 4
|
||||
# ori _plus_L_14_,_letBind_2_,0
|
||||
# ori _plus_R_15_,_tmp_reg_6_,0
|
||||
add $6, $6, $5
|
||||
# was: add _fun_arg_res_13_, _plus_L_14_, _plus_R_15_
|
||||
# ori _letBind_2_,_fun_arg_res_13_,0
|
||||
addi $4, $4, 1
|
||||
# was: addi _ind_var_5_, _ind_var_5_, 1
|
||||
j _loop_beg_7_
|
||||
_loop_end_8_:
|
||||
# ori _tmp_16_,_letBind_2_,0
|
||||
ori $16, $6, 0
|
||||
# was: ori _mainres_1_, _tmp_16_, 0
|
||||
# was: addi _tmp_17_, _tmp_17_, 4
|
||||
add $28, $28, $2
|
||||
# was: add $28, $28, _tmp_17_
|
||||
sw $3, 0($16)
|
||||
# was: sw _size_reg_14_, 0(_arr_reg_8_)
|
||||
addi $3, $16, 4
|
||||
# was: addi _addr_reg_15_, _arr_reg_8_, 4
|
||||
ori $2, $0, 1
|
||||
# was: ori _tmp_reg_16_, $0, 1
|
||||
sw $2, 0($3)
|
||||
# was: sw _tmp_reg_16_, 0(_addr_reg_15_)
|
||||
addi $3, $3, 4
|
||||
# was: addi _addr_reg_15_, _addr_reg_15_, 4
|
||||
ori $2, $0, 2
|
||||
# was: ori _tmp_reg_16_, $0, 2
|
||||
sw $2, 0($3)
|
||||
# was: sw _tmp_reg_16_, 0(_addr_reg_15_)
|
||||
addi $3, $3, 4
|
||||
# was: addi _addr_reg_15_, _addr_reg_15_, 4
|
||||
ori $2, $0, 3
|
||||
# was: ori _tmp_reg_16_, $0, 3
|
||||
sw $2, 0($3)
|
||||
# was: sw _tmp_reg_16_, 0(_addr_reg_15_)
|
||||
addi $3, $3, 4
|
||||
# was: addi _addr_reg_15_, _addr_reg_15_, 4
|
||||
lw $17, 0($16)
|
||||
# was: lw _size_reg_9_, 0(_arr_reg_8_)
|
||||
ori $2, $0, 0
|
||||
# was: ori _letBind_7_, $0, 0
|
||||
addi $16, $16, 4
|
||||
# was: addi _arr_reg_8_, _arr_reg_8_, 4
|
||||
ori $18, $0, 0
|
||||
# was: ori _ind_var_10_, $0, 0
|
||||
_loop_beg_12_:
|
||||
sub $3, $18, $17
|
||||
# was: sub _tmp_reg_11_, _ind_var_10_, _size_reg_9_
|
||||
bgez $3, _loop_end_13_
|
||||
# was: bgez _tmp_reg_11_, _loop_end_13_
|
||||
lw $3, 0($16)
|
||||
# was: lw _tmp_reg_11_, 0(_arr_reg_8_)
|
||||
addi $16, $16, 4
|
||||
# was: addi _arr_reg_8_, _arr_reg_8_, 4
|
||||
# ori $2,_letBind_7_,0
|
||||
# ori $3,_tmp_reg_11_,0
|
||||
jal incr
|
||||
# was: jal incr, $2 $3
|
||||
# ori _tmp_reg_18_,$2,0
|
||||
# ori _letBind_7_,_tmp_reg_18_,0
|
||||
addi $18, $18, 1
|
||||
# was: addi _ind_var_10_, _ind_var_10_, 1
|
||||
j _loop_beg_12_
|
||||
_loop_end_13_:
|
||||
# ori _tmp_19_,_letBind_7_,0
|
||||
ori $16, $2, 0
|
||||
# was: ori _mainres_6_, _tmp_19_, 0
|
||||
ori $2, $16, 0
|
||||
# was: ori $2, _mainres_1_, 0
|
||||
# was: ori $2, _mainres_6_, 0
|
||||
jal putint
|
||||
# was: jal putint, $2
|
||||
ori $2, $16, 0
|
||||
# was: ori $2, _mainres_1_, 0
|
||||
addi $29, $29, 12
|
||||
# was: ori $2, _mainres_6_, 0
|
||||
addi $29, $29, 20
|
||||
lw $18, -16($29)
|
||||
lw $17, -12($29)
|
||||
lw $16, -8($29)
|
||||
lw $31, -4($29)
|
||||
jr $31
|
||||
|
Reference in New Issue
Block a user