Created
May 28, 2020 14:52
-
-
Save BrzVlad/1b5a6bdb20205db1c970edae709d337e to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <stdio.h> | |
#include <stdlib.h> | |
#include <string.h> | |
#include <stdint.h> | |
typedef int gint; | |
typedef unsigned int guint; | |
typedef short gint16; | |
typedef unsigned short guint16; | |
typedef long glong; | |
typedef unsigned long gulong; | |
typedef void * gpointer; | |
typedef const void * gconstpointer; | |
typedef char gchar; | |
typedef unsigned char guchar; | |
/* Types defined in terms of the stdint.h */ | |
typedef int8_t gint8; | |
typedef uint8_t guint8; | |
typedef int16_t gint16; | |
typedef uint16_t guint16; | |
typedef int32_t gint32; | |
typedef uint32_t guint32; | |
typedef int64_t gint64; | |
typedef uint64_t guint64; | |
typedef float gfloat; | |
typedef double gdouble; | |
typedef int32_t gboolean; | |
typedef struct { | |
union { | |
gint32 i; | |
gint64 l; | |
gpointer p; | |
} data; | |
} stackval; | |
typedef struct { | |
short *code; | |
guint32 stack_size; | |
guint32 alloca_size; | |
} InterpMethod; | |
typedef struct { | |
InterpMethod *imethod; | |
stackval *stack; | |
stackval *stack_args; | |
} InterpFrame; | |
typedef struct { | |
gpointer vtable; | |
gpointer sync; | |
gint64 field1; | |
gint64 field2; | |
} TestObject; | |
#define READ64(x) (*(guint64 *)(x)) | |
#define MINT_LDARGFLD_I8 0x4a | |
#define MINT_LDC_I8 0x19 | |
#define MINT_REM_I8 0x1a8 | |
#define MINT_BNE_UN_I8_S 0x130 | |
#define MINT_LDARG_O 0x26 | |
#define MINT_DUP 0x5 | |
#define MINT_LDFLD_I8 0x3a | |
#define MINT_ADD_I8 0x184 | |
#define MINT_STFLD_I8 0x5c | |
#define MINT_BR_S 0xda | |
#define MINT_LDARG_O 0x26 | |
#define MINT_RET_VOID 0xa | |
#define MINT_MAX 0x200 | |
short method_code [] = { | |
// ldargfld.i8 0,16 | |
0x004a, 0x0000, 0x0010, | |
// ldc.i8 2 | |
0x0019, 0x0002, 0x0000, 0x0000, 0x0000, | |
// rem.i8 | |
0x01a8, | |
// ldc.i8 1 | |
0x0019, 0x0001, 0x0000, 0x0000, 0x0000, | |
// bne.un.i8.s IR_001d | |
0x0130, 0x000f, | |
// ldarg.o 0 | |
0x0026, 0x0000, | |
// dup | |
0x0005, | |
// ldfld.i8 16 | |
0x003a, 0x0010, | |
// ldargfld.i8 0,24 | |
0x004a, 0x0000, 0x0018, | |
// add.i8 | |
0x0184, | |
// stfld.i8 16 | |
0x005c, 0x0010, | |
// br.s IR_002a | |
0x00da, 0x000f, | |
// ldarg.o 0 | |
0x0026, 0x0000, | |
// dup | |
0x0005, | |
// ldfld.i8 16 | |
0x003a, 0x0010, | |
// ldc.i8 1 | |
0x0019, 0x0001, 0x0000, 0x0000, 0x0000, | |
// add.i8 | |
0x0184, | |
// stfld.i8 16 | |
0x005c, 0x0010, | |
// ret.void | |
0x000a }; | |
static void interp_exec_method_switch (InterpFrame *iframe); | |
static void Bench (InterpFrame *iframe, int iterations) | |
{ | |
for (int i = 0; i < iterations; i++) | |
interp_exec_method_switch (iframe); | |
} | |
int | |
main (int argc, char *argv[]) | |
{ | |
TestObject *object = malloc (sizeof (TestObject)); | |
memset (object, 0, sizeof (TestObject)); | |
object->field2 = 1; | |
InterpMethod *imethod = malloc (sizeof (InterpMethod)); | |
imethod->code = method_code; | |
imethod->stack_size = 40; | |
imethod->alloca_size = 40; | |
stackval args; | |
args.data.p = object; | |
InterpFrame *iframe = malloc (sizeof (InterpFrame)); | |
iframe->imethod = imethod; | |
iframe->stack_args = &args; | |
Bench (iframe, 10000); | |
Bench (iframe, 100000000); | |
} | |
// ------------------------ SWITCH ---------------------------------- | |
static void unreachable_method (const char *string) | |
{ | |
printf ("You didn't reach me because I'm unreachable %s\n", string); | |
} | |
#define SWITCH_CASE(index) case index: unreachable_method (#index); break; | |
//#define SWITCH_CASE(index) | |
static void | |
interp_exec_method_switch (InterpFrame *frame) | |
{ | |
short *ip = frame->imethod->code; | |
frame->stack = alloca (frame->imethod->alloca_size); | |
stackval *sp = frame->stack; | |
while (1) { | |
switch (*ip) { | |
SWITCH_CASE(1) | |
SWITCH_CASE(2) | |
SWITCH_CASE(3) | |
SWITCH_CASE(4) | |
case MINT_DUP: | |
sp [0] = sp[-1]; | |
++sp; | |
++ip; | |
break; | |
SWITCH_CASE(6) | |
SWITCH_CASE(7) | |
SWITCH_CASE(8) | |
SWITCH_CASE(9) | |
case MINT_RET_VOID: | |
return; | |
SWITCH_CASE(11) | |
SWITCH_CASE(12) | |
SWITCH_CASE(13) | |
SWITCH_CASE(14) | |
SWITCH_CASE(15) | |
SWITCH_CASE(16) | |
SWITCH_CASE(20) | |
SWITCH_CASE(21) | |
SWITCH_CASE(22) | |
SWITCH_CASE(23) | |
SWITCH_CASE(24) | |
case MINT_LDC_I8: | |
++ip; | |
sp->data.l = READ64 (ip); | |
ip += 4; | |
++sp; | |
break; | |
SWITCH_CASE(26) | |
SWITCH_CASE(27) | |
SWITCH_CASE(28) | |
SWITCH_CASE(29) | |
SWITCH_CASE(30) | |
SWITCH_CASE(31) | |
SWITCH_CASE(32) | |
SWITCH_CASE(33) | |
SWITCH_CASE(34) | |
SWITCH_CASE(35) | |
SWITCH_CASE(36) | |
SWITCH_CASE(37) | |
case MINT_LDARG_O: | |
sp->data.p = frame->stack_args [ip [1]].data.p; | |
ip += 2; | |
++sp; | |
break; | |
SWITCH_CASE(39) | |
SWITCH_CASE(40) | |
SWITCH_CASE(41) | |
SWITCH_CASE(42) | |
SWITCH_CASE(43) | |
SWITCH_CASE(44) | |
SWITCH_CASE(45) | |
SWITCH_CASE(46) | |
SWITCH_CASE(47) | |
SWITCH_CASE(48) | |
SWITCH_CASE(49) | |
SWITCH_CASE(50) | |
SWITCH_CASE(51) | |
SWITCH_CASE(52) | |
SWITCH_CASE(53) | |
SWITCH_CASE(54) | |
SWITCH_CASE(55) | |
SWITCH_CASE(56) | |
SWITCH_CASE(57) | |
case MINT_LDFLD_I8: { | |
gpointer *o = sp [-1].data.p; | |
if (!o) | |
return; | |
sp[-1].data.l = * (gint64*)((char *)o + ip [1]); | |
ip += 2; | |
break; | |
} | |
SWITCH_CASE(59) | |
SWITCH_CASE(60) | |
SWITCH_CASE(61) | |
SWITCH_CASE(62) | |
SWITCH_CASE(63) | |
SWITCH_CASE(64) | |
SWITCH_CASE(65) | |
SWITCH_CASE(89) | |
SWITCH_CASE(90) | |
SWITCH_CASE(91) | |
case MINT_STFLD_I8: { | |
gpointer *o = sp [-2].data.p; | |
if (!o) | |
return; | |
sp -= 2; | |
*(gint64*)((char *)o + ip [1]) = sp[1].data.l; | |
ip += 2; | |
break; | |
} | |
SWITCH_CASE(93) | |
SWITCH_CASE(94) | |
SWITCH_CASE(95) | |
SWITCH_CASE(96) | |
SWITCH_CASE(97) | |
SWITCH_CASE(98) | |
SWITCH_CASE(99) | |
SWITCH_CASE(100) | |
SWITCH_CASE(101) | |
SWITCH_CASE(102) | |
SWITCH_CASE(103) | |
SWITCH_CASE(104) | |
SWITCH_CASE(105) | |
SWITCH_CASE(106) | |
SWITCH_CASE(107) | |
SWITCH_CASE(108) | |
SWITCH_CASE(109) | |
SWITCH_CASE(110) | |
SWITCH_CASE(111) | |
SWITCH_CASE(112) | |
SWITCH_CASE(113) | |
SWITCH_CASE(114) | |
SWITCH_CASE(115) | |
SWITCH_CASE(116) | |
SWITCH_CASE(117) | |
SWITCH_CASE(118) | |
SWITCH_CASE(119) | |
SWITCH_CASE(120) | |
SWITCH_CASE(121) | |
SWITCH_CASE(122) | |
SWITCH_CASE(123) | |
SWITCH_CASE(124) | |
SWITCH_CASE(125) | |
SWITCH_CASE(126) | |
SWITCH_CASE(127) | |
SWITCH_CASE(128) | |
SWITCH_CASE(129) | |
SWITCH_CASE(130) | |
SWITCH_CASE(131) | |
SWITCH_CASE(132) | |
SWITCH_CASE(133) | |
SWITCH_CASE(134) | |
SWITCH_CASE(135) | |
SWITCH_CASE(136) | |
SWITCH_CASE(137) | |
SWITCH_CASE(138) | |
SWITCH_CASE(139) | |
SWITCH_CASE(140) | |
SWITCH_CASE(141) | |
SWITCH_CASE(142) | |
SWITCH_CASE(143) | |
SWITCH_CASE(144) | |
SWITCH_CASE(145) | |
SWITCH_CASE(146) | |
SWITCH_CASE(147) | |
SWITCH_CASE(148) | |
SWITCH_CASE(149) | |
SWITCH_CASE(150) | |
SWITCH_CASE(151) | |
SWITCH_CASE(152) | |
SWITCH_CASE(153) | |
SWITCH_CASE(154) | |
SWITCH_CASE(155) | |
SWITCH_CASE(156) | |
SWITCH_CASE(157) | |
SWITCH_CASE(158) | |
SWITCH_CASE(159) | |
SWITCH_CASE(160) | |
SWITCH_CASE(161) | |
SWITCH_CASE(162) | |
SWITCH_CASE(163) | |
SWITCH_CASE(164) | |
SWITCH_CASE(165) | |
SWITCH_CASE(166) | |
SWITCH_CASE(167) | |
SWITCH_CASE(168) | |
SWITCH_CASE(169) | |
SWITCH_CASE(170) | |
SWITCH_CASE(171) | |
SWITCH_CASE(172) | |
SWITCH_CASE(173) | |
SWITCH_CASE(174) | |
SWITCH_CASE(175) | |
SWITCH_CASE(176) | |
SWITCH_CASE(177) | |
SWITCH_CASE(178) | |
SWITCH_CASE(179) | |
SWITCH_CASE(180) | |
SWITCH_CASE(181) | |
SWITCH_CASE(182) | |
SWITCH_CASE(183) | |
SWITCH_CASE(184) | |
SWITCH_CASE(185) | |
SWITCH_CASE(186) | |
SWITCH_CASE(187) | |
SWITCH_CASE(188) | |
SWITCH_CASE(189) | |
SWITCH_CASE(190) | |
SWITCH_CASE(191) | |
SWITCH_CASE(192) | |
SWITCH_CASE(193) | |
SWITCH_CASE(194) | |
SWITCH_CASE(195) | |
SWITCH_CASE(196) | |
SWITCH_CASE(197) | |
SWITCH_CASE(198) | |
SWITCH_CASE(199) | |
SWITCH_CASE(200) | |
SWITCH_CASE(201) | |
SWITCH_CASE(202) | |
SWITCH_CASE(203) | |
SWITCH_CASE(204) | |
SWITCH_CASE(205) | |
SWITCH_CASE(206) | |
SWITCH_CASE(207) | |
SWITCH_CASE(208) | |
SWITCH_CASE(209) | |
SWITCH_CASE(210) | |
SWITCH_CASE(211) | |
SWITCH_CASE(212) | |
SWITCH_CASE(213) | |
SWITCH_CASE(214) | |
SWITCH_CASE(215) | |
SWITCH_CASE(216) | |
SWITCH_CASE(217) | |
case MINT_BR_S: { | |
short br_offset = (short) *(ip + 1); | |
ip += br_offset; | |
break; | |
} | |
SWITCH_CASE(219) | |
SWITCH_CASE(220) | |
SWITCH_CASE(221) | |
SWITCH_CASE(222) | |
SWITCH_CASE(223) | |
SWITCH_CASE(224) | |
SWITCH_CASE(225) | |
SWITCH_CASE(226) | |
SWITCH_CASE(227) | |
SWITCH_CASE(228) | |
SWITCH_CASE(229) | |
SWITCH_CASE(230) | |
SWITCH_CASE(231) | |
SWITCH_CASE(232) | |
SWITCH_CASE(233) | |
SWITCH_CASE(234) | |
SWITCH_CASE(235) | |
SWITCH_CASE(236) | |
SWITCH_CASE(237) | |
SWITCH_CASE(247) | |
SWITCH_CASE(248) | |
SWITCH_CASE(249) | |
SWITCH_CASE(250) | |
SWITCH_CASE(251) | |
SWITCH_CASE(252) | |
SWITCH_CASE(253) | |
SWITCH_CASE(254) | |
SWITCH_CASE(255) | |
SWITCH_CASE(256) | |
SWITCH_CASE(257) | |
SWITCH_CASE(258) | |
SWITCH_CASE(259) | |
SWITCH_CASE(260) | |
SWITCH_CASE(261) | |
SWITCH_CASE(262) | |
SWITCH_CASE(263) | |
SWITCH_CASE(264) | |
SWITCH_CASE(265) | |
SWITCH_CASE(266) | |
SWITCH_CASE(267) | |
SWITCH_CASE(268) | |
SWITCH_CASE(269) | |
SWITCH_CASE(270) | |
SWITCH_CASE(271) | |
SWITCH_CASE(272) | |
SWITCH_CASE(273) | |
SWITCH_CASE(274) | |
SWITCH_CASE(275) | |
SWITCH_CASE(276) | |
SWITCH_CASE(277) | |
SWITCH_CASE(278) | |
SWITCH_CASE(279) | |
SWITCH_CASE(280) | |
SWITCH_CASE(281) | |
SWITCH_CASE(282) | |
SWITCH_CASE(283) | |
SWITCH_CASE(284) | |
SWITCH_CASE(285) | |
SWITCH_CASE(286) | |
SWITCH_CASE(287) | |
SWITCH_CASE(288) | |
SWITCH_CASE(289) | |
SWITCH_CASE(290) | |
SWITCH_CASE(291) | |
SWITCH_CASE(292) | |
SWITCH_CASE(293) | |
SWITCH_CASE(294) | |
SWITCH_CASE(295) | |
SWITCH_CASE(296) | |
SWITCH_CASE(297) | |
SWITCH_CASE(298) | |
SWITCH_CASE(299) | |
SWITCH_CASE(300) | |
SWITCH_CASE(301) | |
SWITCH_CASE(302) | |
SWITCH_CASE(303) | |
case MINT_BNE_UN_I8_S: | |
sp -= 2; | |
if (sp [0].data.l != sp [1].data.l) { | |
gint16 br_offset = (gint16) ip [1]; | |
ip += br_offset; | |
} else { | |
ip += 2; | |
} | |
break; | |
SWITCH_CASE(305) | |
SWITCH_CASE(306) | |
SWITCH_CASE(307) | |
SWITCH_CASE(308) | |
SWITCH_CASE(309) | |
SWITCH_CASE(310) | |
SWITCH_CASE(311) | |
SWITCH_CASE(312) | |
SWITCH_CASE(313) | |
SWITCH_CASE(314) | |
SWITCH_CASE(315) | |
SWITCH_CASE(316) | |
SWITCH_CASE(317) | |
SWITCH_CASE(318) | |
SWITCH_CASE(319) | |
SWITCH_CASE(320) | |
SWITCH_CASE(321) | |
SWITCH_CASE(322) | |
SWITCH_CASE(323) | |
SWITCH_CASE(324) | |
SWITCH_CASE(325) | |
SWITCH_CASE(326) | |
SWITCH_CASE(327) | |
SWITCH_CASE(328) | |
SWITCH_CASE(329) | |
SWITCH_CASE(330) | |
SWITCH_CASE(331) | |
SWITCH_CASE(332) | |
SWITCH_CASE(333) | |
SWITCH_CASE(334) | |
SWITCH_CASE(335) | |
SWITCH_CASE(336) | |
SWITCH_CASE(337) | |
SWITCH_CASE(338) | |
SWITCH_CASE(339) | |
SWITCH_CASE(340) | |
SWITCH_CASE(341) | |
SWITCH_CASE(342) | |
SWITCH_CASE(343) | |
SWITCH_CASE(344) | |
SWITCH_CASE(345) | |
SWITCH_CASE(346) | |
SWITCH_CASE(347) | |
SWITCH_CASE(348) | |
SWITCH_CASE(349) | |
SWITCH_CASE(350) | |
SWITCH_CASE(351) | |
SWITCH_CASE(352) | |
SWITCH_CASE(353) | |
SWITCH_CASE(354) | |
SWITCH_CASE(355) | |
SWITCH_CASE(356) | |
SWITCH_CASE(357) | |
SWITCH_CASE(358) | |
SWITCH_CASE(359) | |
SWITCH_CASE(360) | |
SWITCH_CASE(361) | |
SWITCH_CASE(362) | |
SWITCH_CASE(363) | |
SWITCH_CASE(364) | |
SWITCH_CASE(365) | |
SWITCH_CASE(366) | |
SWITCH_CASE(367) | |
SWITCH_CASE(368) | |
SWITCH_CASE(369) | |
SWITCH_CASE(370) | |
SWITCH_CASE(371) | |
SWITCH_CASE(372) | |
SWITCH_CASE(373) | |
SWITCH_CASE(374) | |
SWITCH_CASE(375) | |
SWITCH_CASE(376) | |
SWITCH_CASE(377) | |
SWITCH_CASE(378) | |
SWITCH_CASE(379) | |
SWITCH_CASE(380) | |
SWITCH_CASE(381) | |
SWITCH_CASE(382) | |
SWITCH_CASE(383) | |
SWITCH_CASE(384) | |
SWITCH_CASE(385) | |
SWITCH_CASE(386) | |
SWITCH_CASE(387) | |
case MINT_ADD_I8: | |
--sp; | |
sp [-1].data.l += sp [0].data.l; | |
++ip; | |
break; | |
SWITCH_CASE(389) | |
SWITCH_CASE(390) | |
SWITCH_CASE(391) | |
SWITCH_CASE(392) | |
SWITCH_CASE(393) | |
SWITCH_CASE(394) | |
SWITCH_CASE(395) | |
SWITCH_CASE(396) | |
SWITCH_CASE(397) | |
SWITCH_CASE(398) | |
SWITCH_CASE(399) | |
SWITCH_CASE(400) | |
SWITCH_CASE(401) | |
SWITCH_CASE(402) | |
SWITCH_CASE(403) | |
SWITCH_CASE(404) | |
SWITCH_CASE(405) | |
SWITCH_CASE(406) | |
SWITCH_CASE(407) | |
SWITCH_CASE(408) | |
SWITCH_CASE(409) | |
SWITCH_CASE(410) | |
SWITCH_CASE(411) | |
SWITCH_CASE(412) | |
SWITCH_CASE(413) | |
SWITCH_CASE(414) | |
SWITCH_CASE(415) | |
SWITCH_CASE(416) | |
SWITCH_CASE(417) | |
SWITCH_CASE(418) | |
SWITCH_CASE(419) | |
SWITCH_CASE(420) | |
SWITCH_CASE(421) | |
SWITCH_CASE(422) | |
SWITCH_CASE(423) | |
case MINT_REM_I8: | |
if (sp [-1].data.l == 0) | |
return; | |
if (sp [-1].data.l == -1) | |
return; | |
--sp; | |
sp [-1].data.l %= sp [0].data.l; | |
++ip; | |
break; | |
SWITCH_CASE(425) | |
SWITCH_CASE(426) | |
SWITCH_CASE(427) | |
SWITCH_CASE(428) | |
SWITCH_CASE(429) | |
SWITCH_CASE(430) | |
SWITCH_CASE(431) | |
SWITCH_CASE(432) | |
SWITCH_CASE(433) | |
SWITCH_CASE(434) | |
SWITCH_CASE(435) | |
SWITCH_CASE(436) | |
SWITCH_CASE(437) | |
SWITCH_CASE(438) | |
SWITCH_CASE(439) | |
SWITCH_CASE(440) | |
SWITCH_CASE(441) | |
SWITCH_CASE(442) | |
SWITCH_CASE(443) | |
SWITCH_CASE(444) | |
SWITCH_CASE(445) | |
SWITCH_CASE(446) | |
SWITCH_CASE(447) | |
SWITCH_CASE(448) | |
SWITCH_CASE(449) | |
SWITCH_CASE(450) | |
SWITCH_CASE(451) | |
SWITCH_CASE(452) | |
SWITCH_CASE(453) | |
SWITCH_CASE(454) | |
SWITCH_CASE(455) | |
SWITCH_CASE(456) | |
SWITCH_CASE(457) | |
SWITCH_CASE(458) | |
SWITCH_CASE(459) | |
SWITCH_CASE(460) | |
SWITCH_CASE(461) | |
SWITCH_CASE(462) | |
SWITCH_CASE(463) | |
SWITCH_CASE(464) | |
SWITCH_CASE(465) | |
SWITCH_CASE(466) | |
SWITCH_CASE(467) | |
SWITCH_CASE(468) | |
SWITCH_CASE(469) | |
SWITCH_CASE(470) | |
SWITCH_CASE(471) | |
SWITCH_CASE(472) | |
SWITCH_CASE(473) | |
SWITCH_CASE(474) | |
SWITCH_CASE(475) | |
SWITCH_CASE(476) | |
SWITCH_CASE(477) | |
SWITCH_CASE(478) | |
SWITCH_CASE(479) | |
SWITCH_CASE(480) | |
SWITCH_CASE(481) | |
SWITCH_CASE(482) | |
SWITCH_CASE(483) | |
SWITCH_CASE(484) | |
SWITCH_CASE(485) | |
SWITCH_CASE(486) | |
SWITCH_CASE(487) | |
SWITCH_CASE(488) | |
SWITCH_CASE(489) | |
SWITCH_CASE(490) | |
SWITCH_CASE(491) | |
SWITCH_CASE(492) | |
SWITCH_CASE(493) | |
SWITCH_CASE(494) | |
SWITCH_CASE(495) | |
SWITCH_CASE(496) | |
SWITCH_CASE(497) | |
SWITCH_CASE(498) | |
SWITCH_CASE(499) | |
SWITCH_CASE(500) | |
SWITCH_CASE(501) | |
SWITCH_CASE(502) | |
SWITCH_CASE(503) | |
SWITCH_CASE(504) | |
SWITCH_CASE(505) | |
SWITCH_CASE(506) | |
SWITCH_CASE(507) | |
SWITCH_CASE(508) | |
SWITCH_CASE(509) | |
SWITCH_CASE(510) | |
SWITCH_CASE(511) | |
SWITCH_CASE(512) | |
SWITCH_CASE(513) | |
SWITCH_CASE(514) | |
SWITCH_CASE(515) | |
SWITCH_CASE(516) | |
SWITCH_CASE(517) | |
SWITCH_CASE(518) | |
SWITCH_CASE(519) | |
SWITCH_CASE(520) | |
SWITCH_CASE(521) | |
SWITCH_CASE(522) | |
SWITCH_CASE(523) | |
SWITCH_CASE(524) | |
SWITCH_CASE(525) | |
SWITCH_CASE(526) | |
SWITCH_CASE(527) | |
SWITCH_CASE(528) | |
SWITCH_CASE(529) | |
SWITCH_CASE(530) | |
SWITCH_CASE(531) | |
SWITCH_CASE(532) | |
SWITCH_CASE(533) | |
SWITCH_CASE(534) | |
SWITCH_CASE(535) | |
SWITCH_CASE(536) | |
SWITCH_CASE(537) | |
SWITCH_CASE(538) | |
SWITCH_CASE(539) | |
SWITCH_CASE(540) | |
SWITCH_CASE(541) | |
SWITCH_CASE(542) | |
SWITCH_CASE(543) | |
SWITCH_CASE(544) | |
SWITCH_CASE(545) | |
SWITCH_CASE(546) | |
SWITCH_CASE(547) | |
SWITCH_CASE(548) | |
SWITCH_CASE(549) | |
SWITCH_CASE(550) | |
SWITCH_CASE(551) | |
SWITCH_CASE(552) | |
SWITCH_CASE(553) | |
SWITCH_CASE(554) | |
SWITCH_CASE(555) | |
SWITCH_CASE(556) | |
SWITCH_CASE(557) | |
SWITCH_CASE(558) | |
SWITCH_CASE(559) | |
SWITCH_CASE(560) | |
SWITCH_CASE(561) | |
SWITCH_CASE(562) | |
SWITCH_CASE(563) | |
SWITCH_CASE(564) | |
SWITCH_CASE(565) | |
SWITCH_CASE(566) | |
SWITCH_CASE(567) | |
SWITCH_CASE(568) | |
SWITCH_CASE(569) | |
SWITCH_CASE(570) | |
SWITCH_CASE(571) | |
SWITCH_CASE(572) | |
SWITCH_CASE(573) | |
SWITCH_CASE(574) | |
SWITCH_CASE(575) | |
SWITCH_CASE(576) | |
SWITCH_CASE(66) | |
SWITCH_CASE(67) | |
SWITCH_CASE(68) | |
SWITCH_CASE(69) | |
SWITCH_CASE(70) | |
SWITCH_CASE(71) | |
SWITCH_CASE(72) | |
SWITCH_CASE(73) | |
case MINT_LDARGFLD_I8: { | |
gpointer *o = frame->stack_args [ip [1]].data.p; | |
if (!o) | |
return; | |
sp [0].data.l = *(gint64*)((char *)o + ip [2]); | |
sp++; | |
ip += 3; | |
break; | |
} | |
SWITCH_CASE(75) | |
SWITCH_CASE(76) | |
SWITCH_CASE(77) | |
SWITCH_CASE(78) | |
SWITCH_CASE(79) | |
SWITCH_CASE(80) | |
SWITCH_CASE(81) | |
SWITCH_CASE(82) | |
SWITCH_CASE(83) | |
SWITCH_CASE(84) | |
SWITCH_CASE(85) | |
SWITCH_CASE(86) | |
SWITCH_CASE(87) | |
SWITCH_CASE(88) | |
SWITCH_CASE(577) | |
SWITCH_CASE(578) | |
SWITCH_CASE(579) | |
SWITCH_CASE(580) | |
SWITCH_CASE(581) | |
SWITCH_CASE(582) | |
SWITCH_CASE(583) | |
SWITCH_CASE(584) | |
SWITCH_CASE(585) | |
SWITCH_CASE(586) | |
SWITCH_CASE(587) | |
SWITCH_CASE(588) | |
SWITCH_CASE(589) | |
SWITCH_CASE(590) | |
SWITCH_CASE(591) | |
SWITCH_CASE(592) | |
SWITCH_CASE(593) | |
SWITCH_CASE(594) | |
SWITCH_CASE(595) | |
SWITCH_CASE(596) | |
SWITCH_CASE(597) | |
SWITCH_CASE(598) | |
SWITCH_CASE(599) | |
SWITCH_CASE(600) | |
SWITCH_CASE(601) | |
SWITCH_CASE(602) | |
SWITCH_CASE(603) | |
SWITCH_CASE(604) | |
SWITCH_CASE(605) | |
SWITCH_CASE(606) | |
SWITCH_CASE(607) | |
SWITCH_CASE(608) | |
SWITCH_CASE(609) | |
SWITCH_CASE(610) | |
SWITCH_CASE(611) | |
SWITCH_CASE(612) | |
SWITCH_CASE(613) | |
SWITCH_CASE(614) | |
SWITCH_CASE(615) | |
SWITCH_CASE(616) | |
SWITCH_CASE(617) | |
SWITCH_CASE(618) | |
SWITCH_CASE(619) | |
SWITCH_CASE(620) | |
SWITCH_CASE(621) | |
SWITCH_CASE(622) | |
SWITCH_CASE(623) | |
SWITCH_CASE(624) | |
SWITCH_CASE(625) | |
SWITCH_CASE(626) | |
SWITCH_CASE(627) | |
SWITCH_CASE(628) | |
SWITCH_CASE(629) | |
SWITCH_CASE(630) | |
SWITCH_CASE(631) | |
SWITCH_CASE(632) | |
SWITCH_CASE(633) | |
SWITCH_CASE(634) | |
SWITCH_CASE(635) | |
SWITCH_CASE(636) | |
SWITCH_CASE(637) | |
SWITCH_CASE(638) | |
SWITCH_CASE(639) | |
SWITCH_CASE(640) | |
SWITCH_CASE(641) | |
SWITCH_CASE(642) | |
SWITCH_CASE(643) | |
SWITCH_CASE(644) | |
SWITCH_CASE(645) | |
SWITCH_CASE(646) | |
SWITCH_CASE(647) | |
SWITCH_CASE(648) | |
SWITCH_CASE(649) | |
SWITCH_CASE(650) | |
SWITCH_CASE(651) | |
SWITCH_CASE(652) | |
SWITCH_CASE(653) | |
SWITCH_CASE(654) | |
SWITCH_CASE(655) | |
SWITCH_CASE(656) | |
SWITCH_CASE(657) | |
SWITCH_CASE(658) | |
SWITCH_CASE(659) | |
SWITCH_CASE(660) | |
SWITCH_CASE(661) | |
SWITCH_CASE(662) | |
SWITCH_CASE(663) | |
SWITCH_CASE(664) | |
SWITCH_CASE(682) | |
SWITCH_CASE(683) | |
SWITCH_CASE(684) | |
SWITCH_CASE(685) | |
SWITCH_CASE(686) | |
SWITCH_CASE(687) | |
SWITCH_CASE(688) | |
SWITCH_CASE(689) | |
SWITCH_CASE(690) | |
SWITCH_CASE(691) | |
SWITCH_CASE(692) | |
SWITCH_CASE(693) | |
SWITCH_CASE(694) | |
SWITCH_CASE(695) | |
SWITCH_CASE(696) | |
SWITCH_CASE(697) | |
SWITCH_CASE(698) | |
SWITCH_CASE(699) | |
SWITCH_CASE(700) | |
SWITCH_CASE(701) | |
SWITCH_CASE(702) | |
SWITCH_CASE(703) | |
SWITCH_CASE(704) | |
SWITCH_CASE(705) | |
SWITCH_CASE(706) | |
SWITCH_CASE(707) | |
SWITCH_CASE(708) | |
SWITCH_CASE(709) | |
SWITCH_CASE(710) | |
SWITCH_CASE(711) | |
SWITCH_CASE(712) | |
SWITCH_CASE(713) | |
SWITCH_CASE(714) | |
SWITCH_CASE(715) | |
SWITCH_CASE(716) | |
SWITCH_CASE(717) | |
SWITCH_CASE(718) | |
SWITCH_CASE(719) | |
SWITCH_CASE(720) | |
SWITCH_CASE(721) | |
SWITCH_CASE(722) | |
SWITCH_CASE(723) | |
SWITCH_CASE(724) | |
SWITCH_CASE(725) | |
SWITCH_CASE(726) | |
SWITCH_CASE(727) | |
SWITCH_CASE(728) | |
SWITCH_CASE(729) | |
SWITCH_CASE(730) | |
SWITCH_CASE(731) | |
SWITCH_CASE(732) | |
SWITCH_CASE(733) | |
SWITCH_CASE(734) | |
SWITCH_CASE(735) | |
SWITCH_CASE(736) | |
SWITCH_CASE(737) | |
SWITCH_CASE(738) | |
SWITCH_CASE(739) | |
SWITCH_CASE(740) | |
SWITCH_CASE(741) | |
SWITCH_CASE(742) | |
SWITCH_CASE(743) | |
SWITCH_CASE(744) | |
SWITCH_CASE(745) | |
SWITCH_CASE(746) | |
SWITCH_CASE(747) | |
SWITCH_CASE(748) | |
SWITCH_CASE(749) | |
SWITCH_CASE(750) | |
SWITCH_CASE(751) | |
SWITCH_CASE(752) | |
SWITCH_CASE(753) | |
SWITCH_CASE(754) | |
SWITCH_CASE(755) | |
SWITCH_CASE(756) | |
SWITCH_CASE(757) | |
SWITCH_CASE(758) | |
SWITCH_CASE(759) | |
SWITCH_CASE(760) | |
SWITCH_CASE(761) | |
SWITCH_CASE(762) | |
SWITCH_CASE(763) | |
SWITCH_CASE(764) | |
SWITCH_CASE(765) | |
SWITCH_CASE(766) | |
SWITCH_CASE(767) | |
SWITCH_CASE(768) | |
SWITCH_CASE(769) | |
SWITCH_CASE(770) | |
SWITCH_CASE(771) | |
SWITCH_CASE(772) | |
SWITCH_CASE(773) | |
SWITCH_CASE(774) | |
SWITCH_CASE(775) | |
SWITCH_CASE(776) | |
SWITCH_CASE(777) | |
SWITCH_CASE(778) | |
SWITCH_CASE(779) | |
SWITCH_CASE(780) | |
SWITCH_CASE(781) | |
SWITCH_CASE(782) | |
SWITCH_CASE(783) | |
SWITCH_CASE(784) | |
SWITCH_CASE(785) | |
SWITCH_CASE(786) | |
SWITCH_CASE(787) | |
SWITCH_CASE(788) | |
SWITCH_CASE(789) | |
SWITCH_CASE(790) | |
SWITCH_CASE(791) | |
SWITCH_CASE(792) | |
SWITCH_CASE(793) | |
SWITCH_CASE(794) | |
SWITCH_CASE(795) | |
SWITCH_CASE(796) | |
SWITCH_CASE(797) | |
SWITCH_CASE(798) | |
SWITCH_CASE(799) | |
SWITCH_CASE(800) | |
SWITCH_CASE(801) | |
SWITCH_CASE(802) | |
SWITCH_CASE(803) | |
SWITCH_CASE(804) | |
SWITCH_CASE(805) | |
SWITCH_CASE(806) | |
SWITCH_CASE(807) | |
SWITCH_CASE(808) | |
SWITCH_CASE(809) | |
SWITCH_CASE(810) | |
SWITCH_CASE(811) | |
SWITCH_CASE(812) | |
SWITCH_CASE(813) | |
SWITCH_CASE(814) | |
SWITCH_CASE(815) | |
SWITCH_CASE(816) | |
SWITCH_CASE(817) | |
SWITCH_CASE(818) | |
SWITCH_CASE(819) | |
SWITCH_CASE(820) | |
SWITCH_CASE(821) | |
SWITCH_CASE(822) | |
SWITCH_CASE(823) | |
SWITCH_CASE(824) | |
SWITCH_CASE(825) | |
SWITCH_CASE(826) | |
SWITCH_CASE(827) | |
SWITCH_CASE(828) | |
SWITCH_CASE(829) | |
SWITCH_CASE(830) | |
SWITCH_CASE(831) | |
SWITCH_CASE(832) | |
SWITCH_CASE(833) | |
SWITCH_CASE(834) | |
SWITCH_CASE(835) | |
SWITCH_CASE(836) | |
SWITCH_CASE(837) | |
SWITCH_CASE(838) | |
SWITCH_CASE(839) | |
SWITCH_CASE(840) | |
SWITCH_CASE(841) | |
SWITCH_CASE(842) | |
SWITCH_CASE(843) | |
SWITCH_CASE(844) | |
SWITCH_CASE(845) | |
SWITCH_CASE(846) | |
SWITCH_CASE(847) | |
SWITCH_CASE(848) | |
SWITCH_CASE(849) | |
SWITCH_CASE(850) | |
SWITCH_CASE(851) | |
SWITCH_CASE(852) | |
SWITCH_CASE(853) | |
SWITCH_CASE(854) | |
SWITCH_CASE(855) | |
SWITCH_CASE(856) | |
SWITCH_CASE(857) | |
SWITCH_CASE(858) | |
SWITCH_CASE(859) | |
SWITCH_CASE(860) | |
SWITCH_CASE(861) | |
SWITCH_CASE(862) | |
SWITCH_CASE(863) | |
SWITCH_CASE(864) | |
SWITCH_CASE(865) | |
SWITCH_CASE(866) | |
SWITCH_CASE(867) | |
SWITCH_CASE(868) | |
SWITCH_CASE(869) | |
SWITCH_CASE(870) | |
SWITCH_CASE(871) | |
SWITCH_CASE(872) | |
SWITCH_CASE(873) | |
SWITCH_CASE(874) | |
SWITCH_CASE(875) | |
SWITCH_CASE(876) | |
SWITCH_CASE(877) | |
SWITCH_CASE(878) | |
SWITCH_CASE(879) | |
SWITCH_CASE(880) | |
SWITCH_CASE(881) | |
SWITCH_CASE(882) | |
SWITCH_CASE(883) | |
SWITCH_CASE(884) | |
SWITCH_CASE(885) | |
SWITCH_CASE(886) | |
SWITCH_CASE(887) | |
SWITCH_CASE(888) | |
SWITCH_CASE(889) | |
SWITCH_CASE(890) | |
SWITCH_CASE(891) | |
SWITCH_CASE(892) | |
SWITCH_CASE(893) | |
SWITCH_CASE(894) | |
SWITCH_CASE(895) | |
SWITCH_CASE(896) | |
SWITCH_CASE(897) | |
SWITCH_CASE(898) | |
SWITCH_CASE(899) | |
SWITCH_CASE(900) | |
SWITCH_CASE(901) | |
SWITCH_CASE(902) | |
SWITCH_CASE(903) | |
SWITCH_CASE(904) | |
SWITCH_CASE(905) | |
SWITCH_CASE(906) | |
SWITCH_CASE(907) | |
SWITCH_CASE(908) | |
SWITCH_CASE(909) | |
SWITCH_CASE(910) | |
SWITCH_CASE(911) | |
SWITCH_CASE(912) | |
SWITCH_CASE(913) | |
SWITCH_CASE(914) | |
SWITCH_CASE(915) | |
SWITCH_CASE(916) | |
SWITCH_CASE(917) | |
SWITCH_CASE(918) | |
SWITCH_CASE(919) | |
SWITCH_CASE(920) | |
SWITCH_CASE(921) | |
SWITCH_CASE(922) | |
SWITCH_CASE(923) | |
SWITCH_CASE(924) | |
SWITCH_CASE(925) | |
SWITCH_CASE(926) | |
SWITCH_CASE(927) | |
SWITCH_CASE(928) | |
SWITCH_CASE(929) | |
SWITCH_CASE(930) | |
SWITCH_CASE(931) | |
SWITCH_CASE(932) | |
SWITCH_CASE(933) | |
SWITCH_CASE(934) | |
SWITCH_CASE(935) | |
SWITCH_CASE(936) | |
SWITCH_CASE(937) | |
SWITCH_CASE(938) | |
SWITCH_CASE(939) | |
SWITCH_CASE(940) | |
SWITCH_CASE(941) | |
SWITCH_CASE(942) | |
SWITCH_CASE(943) | |
SWITCH_CASE(944) | |
SWITCH_CASE(945) | |
SWITCH_CASE(946) | |
SWITCH_CASE(947) | |
SWITCH_CASE(948) | |
SWITCH_CASE(949) | |
SWITCH_CASE(950) | |
SWITCH_CASE(951) | |
SWITCH_CASE(952) | |
SWITCH_CASE(953) | |
SWITCH_CASE(954) | |
SWITCH_CASE(955) | |
SWITCH_CASE(956) | |
SWITCH_CASE(957) | |
SWITCH_CASE(958) | |
SWITCH_CASE(959) | |
SWITCH_CASE(960) | |
SWITCH_CASE(961) | |
SWITCH_CASE(962) | |
SWITCH_CASE(963) | |
SWITCH_CASE(964) | |
SWITCH_CASE(965) | |
SWITCH_CASE(966) | |
SWITCH_CASE(967) | |
SWITCH_CASE(968) | |
SWITCH_CASE(969) | |
SWITCH_CASE(970) | |
SWITCH_CASE(971) | |
SWITCH_CASE(972) | |
SWITCH_CASE(973) | |
SWITCH_CASE(974) | |
SWITCH_CASE(975) | |
SWITCH_CASE(976) | |
SWITCH_CASE(977) | |
SWITCH_CASE(978) | |
SWITCH_CASE(979) | |
SWITCH_CASE(980) | |
SWITCH_CASE(981) | |
SWITCH_CASE(982) | |
SWITCH_CASE(983) | |
SWITCH_CASE(984) | |
SWITCH_CASE(985) | |
SWITCH_CASE(986) | |
SWITCH_CASE(987) | |
SWITCH_CASE(988) | |
SWITCH_CASE(989) | |
SWITCH_CASE(990) | |
SWITCH_CASE(991) | |
SWITCH_CASE(992) | |
SWITCH_CASE(993) | |
SWITCH_CASE(994) | |
SWITCH_CASE(995) | |
SWITCH_CASE(996) | |
SWITCH_CASE(997) | |
SWITCH_CASE(998) | |
SWITCH_CASE(999) | |
SWITCH_CASE(1000) | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment