Mercurial > hg > Papers > 2019 > anatofuz-prosym
annotate Paper/src/dispatch.c @ 41:de0f0fa18b71
fix c source
author | Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp> |
---|---|
date | Fri, 09 Nov 2018 13:49:33 +0900 |
parents | fb4c1b408c9f |
children |
rev | line source |
---|---|
22
fb4c1b408c9f
add sample codes and tweak tex
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 DISPATCH(NEXT_OP) { |
fb4c1b408c9f
add sample codes and tweak tex
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 OP(no_op): |
fb4c1b408c9f
add sample codes and tweak tex
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 goto NEXT; |
fb4c1b408c9f
add sample codes and tweak tex
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4 OP(const_i8): |
fb4c1b408c9f
add sample codes and tweak tex
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5 OP(const_i16): |
fb4c1b408c9f
add sample codes and tweak tex
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 OP(const_i32): |
fb4c1b408c9f
add sample codes and tweak tex
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 MVM_exception_throw_adhoc(tc, "const_iX NYI"); |
fb4c1b408c9f
add sample codes and tweak tex
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
8 OP(const_i64): |
fb4c1b408c9f
add sample codes and tweak tex
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
9 GET_REG(cur_op, 0).i64 = MVM_BC_get_I64(cur_op, 2); |
fb4c1b408c9f
add sample codes and tweak tex
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
10 cur_op += 10; |
fb4c1b408c9f
add sample codes and tweak tex
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
11 goto NEXT; |
41
de0f0fa18b71
fix c source
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
12 OP(pushcompsc): { |
de0f0fa18b71
fix c source
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
13 MVMObject * const sc = GET_REG(cur_op, 0).o; |
de0f0fa18b71
fix c source
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
14 if (REPR(sc)->ID != MVM_REPR_ID_SCRef) |
de0f0fa18b71
fix c source
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
15 MVM_exception_throw_adhoc(tc, "Can only push an SCRef with pushcompsc"); |
de0f0fa18b71
fix c source
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
16 if (MVM_is_null(tc, tc->compiling_scs)) { |
de0f0fa18b71
fix c source
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
17 MVMROOT(tc, sc, { |
de0f0fa18b71
fix c source
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
18 tc->compiling_scs = MVM_repr_alloc_init(tc, tc->instance->boot_types.BOOTArray); |
de0f0fa18b71
fix c source
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
19 }); |
de0f0fa18b71
fix c source
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
20 } |
de0f0fa18b71
fix c source
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
21 MVM_repr_unshift_o(tc, tc->compiling_scs, sc); |
de0f0fa18b71
fix c source
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
22 cur_op += 2; |
de0f0fa18b71
fix c source
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
23 goto NEXT; |
de0f0fa18b71
fix c source
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
22
diff
changeset
|
24 } |
22
fb4c1b408c9f
add sample codes and tweak tex
Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
25 } |