sync the repo
[hiphop-php.git] / hphp / test / quick / asm_sswitch.hhas
blob94f1219439c483cb0fc27da2a7c46923bfe29c2a
2 # SSwitch statement
5 # array(0,1,2,3,4)
6 .adata my_array = """D:6:{i:0;s:7:"label_0";i:1;s:7:"label_1";i:2;s:7:"label_2";i:3;s:7:"label_3";i:4;s:7:"label_4";i:5;s:7:"default";}""";
8 .function ["__EntryPoint"("""y:0:{}""")] N main() {
9          .numiters 1;
10          .declvars $arr $foo;
12          Dict @my_array
13          SetL $arr
14          PopC
16          # Loop over array and jump to each label.
17          IterInit <> 0 NK V:$foo $arr endfor
18          .try {
19 loop:      CGetL $foo
20            SSwitch <"label_0":label_0
21                     "label_1":label_1
22                     "label_2":label_2
23                     "label_3":label_3
24                     "label_4":label_4
25                             -:default>
27 label_0:   String "label_0\n"
28            Jmp printer
29 label_1:   String "label_1\n"
30            Jmp printer
31 label_2:   String "label_2\n"
32            Jmp printer
33 label_3:   String "label_3\n"
34            Jmp printer
35 label_4:   String "label_4\n"
36            Jmp printer
37 default:   String "default\n"
39 printer:   Print
40            PopC
41            IterNext <> 0 NK V:$foo $arr loop
42            Jmp endfor
43          } .catch {
44            IterFree 0
45            Throw
46          }
47 endfor:  Int 1
48          RetC