annotate Paper/src/dispatch.c @ 46:b2d28fb0b7a3

tweak anatofuz.tex
author Takahiro SHIMIZU <anatofuz@cr.ie.u-ryukyu.ac.jp>
date Fri, 09 Nov 2018 16:11:54 +0900
parents de0f0fa18b71
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 }