sourcepawn/jit/x86/opcode_switch.inc
author Borja Ferrer <faluco@alliedmods.net>
Tue May 22 15:15:51 2007 +0000 (2007-05-22)
changeset 831 1995c0dd5c04
parent 350 1e4e30f7d6ca
child 1330 ab94316bb52b
permissions -rw-r--r--
added floating point optimizations to the JIT
standarised a bit more x86_macros.h
some asm optimizations to bintools extension
dvander@157
     1
		case OP_MOVE_PRI:
dvander@157
     2
			{
dvander@157
     3
				WriteOp_Move_Pri(jit);
dvander@157
     4
				break;
dvander@157
     5
			}
dvander@157
     6
		case OP_MOVE_ALT:
dvander@157
     7
			{
dvander@157
     8
				WriteOp_Move_Alt(jit);
dvander@157
     9
				break;
dvander@157
    10
			}
dvander@157
    11
		case OP_XCHG:
dvander@157
    12
			{
dvander@157
    13
				WriteOp_Xchg(jit);
dvander@157
    14
				break;
dvander@157
    15
			}
dvander@157
    16
		case OP_PUSH:
dvander@157
    17
			{
dvander@157
    18
				WriteOp_Push(jit);
dvander@157
    19
				break;
dvander@157
    20
			}
dvander@157
    21
		case OP_PUSH_S:
dvander@157
    22
			{
dvander@157
    23
				WriteOp_Push_S(jit);
dvander@157
    24
				break;
dvander@157
    25
			}
dvander@157
    26
		case OP_PUSH2_C:
dvander@157
    27
			{
dvander@157
    28
				WriteOp_Push2_C(jit);
dvander@157
    29
				break;
dvander@157
    30
			}
dvander@157
    31
		case OP_PUSH3_C:
dvander@157
    32
			{
dvander@157
    33
				WriteOp_Push3_C(jit);
dvander@157
    34
				break;
dvander@157
    35
			}
dvander@157
    36
		case OP_PUSH4_C:
dvander@157
    37
			{
dvander@157
    38
				WriteOp_Push4_C(jit);
dvander@157
    39
				break;
dvander@157
    40
			}
dvander@157
    41
		case OP_PUSH5_C:
dvander@157
    42
			{
dvander@157
    43
				WriteOp_Push5_C(jit);
dvander@157
    44
				break;
dvander@157
    45
			}
dvander@157
    46
		case OP_PUSH2_ADR:
dvander@157
    47
			{
dvander@157
    48
				WriteOp_Push2_Adr(jit);
dvander@157
    49
				break;
dvander@157
    50
			}
dvander@157
    51
		case OP_PUSH3_ADR:
dvander@157
    52
			{
dvander@157
    53
				WriteOp_Push3_Adr(jit);
dvander@157
    54
				break;
dvander@157
    55
			}
dvander@157
    56
		case OP_PUSH4_ADR:
dvander@157
    57
			{
dvander@157
    58
				WriteOp_Push4_Adr(jit);
dvander@157
    59
				break;
dvander@157
    60
			}
dvander@157
    61
		case OP_PUSH5_ADR:
dvander@157
    62
			{
dvander@157
    63
				WriteOp_Push5_Adr(jit);
dvander@157
    64
				break;
dvander@157
    65
			}
dvander@157
    66
		case OP_PUSH2_S:
dvander@157
    67
			{
dvander@157
    68
				WriteOp_Push2_S(jit);
dvander@157
    69
				break;
dvander@157
    70
			}
dvander@157
    71
		case OP_PUSH3_S:
dvander@157
    72
			{
dvander@157
    73
				WriteOp_Push3_S(jit);
dvander@157
    74
				break;
dvander@157
    75
			}
dvander@157
    76
		case OP_PUSH4_S:
dvander@157
    77
			{
dvander@157
    78
				WriteOp_Push4_S(jit);
dvander@157
    79
				break;
dvander@157
    80
			}
dvander@157
    81
		case OP_PUSH5_S:
dvander@157
    82
			{
dvander@157
    83
				WriteOp_Push5_S(jit);
dvander@157
    84
				break;
dvander@157
    85
			}
dvander@157
    86
		case OP_PUSH5:
dvander@157
    87
			{
dvander@157
    88
				WriteOp_Push5(jit);
dvander@157
    89
				break;
dvander@157
    90
			}
dvander@157
    91
		case OP_PUSH4:
dvander@157
    92
			{
dvander@157
    93
				WriteOp_Push4(jit);
dvander@157
    94
				break;
dvander@157
    95
			}
dvander@157
    96
		case OP_PUSH3:
dvander@157
    97
			{
dvander@157
    98
				WriteOp_Push3(jit);
dvander@157
    99
				break;
dvander@157
   100
			}
dvander@157
   101
		case OP_PUSH2:
dvander@157
   102
			{
dvander@157
   103
				WriteOp_Push2(jit);
dvander@157
   104
				break;
dvander@157
   105
			}
dvander@157
   106
		case OP_ZERO_PRI:
dvander@157
   107
			{
dvander@157
   108
				WriteOp_Zero_Pri(jit);
dvander@157
   109
				break;
dvander@157
   110
			}
dvander@157
   111
		case OP_ZERO_ALT:
dvander@157
   112
			{
dvander@157
   113
				WriteOp_Zero_Alt(jit);
dvander@157
   114
				break;
dvander@157
   115
			}
dvander@157
   116
		case OP_PROC:
dvander@157
   117
			{
dvander@157
   118
				WriteOp_Proc(jit);
dvander@157
   119
				break;
dvander@157
   120
			}
dvander@157
   121
		case OP_SHL:
dvander@157
   122
			{
dvander@157
   123
				WriteOp_Shl(jit);
dvander@157
   124
				break;
dvander@157
   125
			}
dvander@157
   126
		case OP_SHR:
dvander@157
   127
			{
dvander@157
   128
				WriteOp_Shr(jit);
dvander@157
   129
				break;
dvander@157
   130
			}
dvander@157
   131
		case OP_SSHR:
dvander@157
   132
			{
dvander@157
   133
				WriteOp_Sshr(jit);
dvander@157
   134
				break;
dvander@157
   135
			}
dvander@157
   136
		case OP_SHL_C_PRI:
dvander@157
   137
			{
dvander@157
   138
				WriteOp_Shl_C_Pri(jit);
dvander@157
   139
				break;
dvander@157
   140
			}
dvander@157
   141
		case OP_SHL_C_ALT:
dvander@157
   142
			{
dvander@157
   143
				WriteOp_Shl_C_Alt(jit);
dvander@157
   144
				break;
dvander@157
   145
			}
dvander@157
   146
		case OP_SHR_C_PRI:
dvander@157
   147
			{
dvander@157
   148
				WriteOp_Shr_C_Pri(jit);
dvander@157
   149
				break;
dvander@157
   150
			}
dvander@157
   151
		case OP_SHR_C_ALT:
dvander@157
   152
			{
dvander@157
   153
				WriteOp_Shr_C_Alt(jit);
dvander@157
   154
				break;
dvander@157
   155
			}
dvander@157
   156
		case OP_SMUL:
dvander@157
   157
			{
dvander@157
   158
				WriteOp_SMul(jit);
dvander@157
   159
				break;
dvander@157
   160
			}
dvander@157
   161
		case OP_ADD:
dvander@157
   162
			{
dvander@157
   163
				WriteOp_Add(jit);
dvander@157
   164
				break;
dvander@157
   165
			}
dvander@157
   166
		case OP_SUB:
dvander@157
   167
			{
dvander@157
   168
				WriteOp_Sub(jit);
dvander@157
   169
				break;
dvander@157
   170
			}
dvander@157
   171
		case OP_SUB_ALT:
dvander@157
   172
			{
dvander@157
   173
				WriteOp_Sub_Alt(jit);
dvander@157
   174
				break;
dvander@157
   175
			}
dvander@157
   176
		case OP_NOP:
dvander@157
   177
			{
dvander@157
   178
				/* do nothing */
dvander@157
   179
				break;
dvander@157
   180
			}
dvander@157
   181
		case OP_NOT:
dvander@157
   182
			{
dvander@157
   183
				WriteOp_Not(jit);
dvander@157
   184
				break;
dvander@157
   185
			}
dvander@157
   186
		case OP_NEG:
dvander@157
   187
			{
dvander@157
   188
				WriteOp_Neg(jit);
dvander@157
   189
				break;
dvander@157
   190
			}
dvander@157
   191
		case OP_XOR:
dvander@157
   192
			{
dvander@157
   193
				WriteOp_Xor(jit);
dvander@157
   194
				break;
dvander@157
   195
			}
dvander@157
   196
		case OP_OR:
dvander@157
   197
			{
dvander@157
   198
				WriteOp_Or(jit);
dvander@157
   199
				break;
dvander@157
   200
			}
dvander@157
   201
		case OP_AND:
dvander@157
   202
			{
dvander@157
   203
				WriteOp_And(jit);
dvander@157
   204
				break;
dvander@157
   205
			}
dvander@157
   206
		case OP_INVERT:
dvander@157
   207
			{
dvander@157
   208
				WriteOp_Invert(jit);
dvander@157
   209
				break;
dvander@157
   210
			}
dvander@157
   211
		case OP_ADD_C:
dvander@157
   212
			{
dvander@157
   213
				WriteOp_Add_C(jit);
dvander@157
   214
				break;
dvander@157
   215
			}
dvander@157
   216
		case OP_SMUL_C:
dvander@157
   217
			{
dvander@157
   218
				WriteOp_SMul_C(jit);
dvander@157
   219
				break;
dvander@157
   220
			}
dvander@157
   221
		case OP_SIGN_PRI:
dvander@157
   222
			{
dvander@157
   223
				WriteOp_Sign_Pri(jit);
dvander@157
   224
				break;
dvander@157
   225
			}
dvander@157
   226
		case OP_SIGN_ALT:
dvander@157
   227
			{
dvander@157
   228
				WriteOp_Sign_Alt(jit);
dvander@157
   229
				break;
dvander@157
   230
			}
dvander@157
   231
		case OP_EQ:
dvander@157
   232
			{
dvander@157
   233
				WriteOp_Eq(jit);
dvander@157
   234
				break;
dvander@157
   235
			}
dvander@157
   236
		case OP_NEQ:
dvander@157
   237
			{
dvander@157
   238
				WriteOp_Neq(jit);
dvander@157
   239
				break;
dvander@157
   240
			}
dvander@157
   241
		case OP_SLESS:
dvander@157
   242
			{
dvander@157
   243
				WriteOp_Sless(jit);
dvander@157
   244
				break;
dvander@157
   245
			}
dvander@157
   246
		case OP_SLEQ:
dvander@157
   247
			{
dvander@157
   248
				WriteOp_Sleq(jit);
dvander@157
   249
				break;
dvander@157
   250
			}
dvander@157
   251
		case OP_SGRTR:
dvander@157
   252
			{
dvander@157
   253
				WriteOp_Sgrtr(jit);
dvander@157
   254
				break;
dvander@157
   255
			}
dvander@157
   256
		case OP_SGEQ:
dvander@157
   257
			{
dvander@157
   258
				WriteOp_Sgeq(jit);
dvander@157
   259
				break;
dvander@157
   260
			}
dvander@157
   261
		case OP_EQ_C_PRI:
dvander@157
   262
			{
dvander@157
   263
				WriteOp_Eq_C_Pri(jit);
dvander@157
   264
				break;
dvander@157
   265
			}
dvander@157
   266
		case OP_EQ_C_ALT:
dvander@157
   267
			{
dvander@157
   268
				WriteOp_Eq_C_Alt(jit);
dvander@157
   269
				break;
dvander@157
   270
			}
dvander@157
   271
		case OP_INC_PRI:
dvander@157
   272
			{
dvander@157
   273
				WriteOp_Inc_Pri(jit);
dvander@157
   274
				break;
dvander@157
   275
			}
dvander@157
   276
		case OP_INC_ALT:
dvander@157
   277
			{
dvander@157
   278
				WriteOp_Inc_Alt(jit);
dvander@157
   279
				break;
dvander@157
   280
			}
dvander@157
   281
		case OP_INC:
dvander@157
   282
			{
dvander@157
   283
				WriteOp_Inc(jit);
dvander@157
   284
				break;
dvander@157
   285
			}
dvander@157
   286
		case OP_INC_S:
dvander@157
   287
			{
dvander@157
   288
				WriteOp_Inc_S(jit);
dvander@157
   289
				break;
dvander@157
   290
			}
dvander@157
   291
		case OP_INC_I:
dvander@157
   292
			{
dvander@157
   293
				WriteOp_Inc_I(jit);
dvander@157
   294
				break;
dvander@157
   295
			}
dvander@157
   296
		case OP_DEC_PRI:
dvander@157
   297
			{
dvander@157
   298
				WriteOp_Dec_Pri(jit);
dvander@157
   299
				break;
dvander@157
   300
			}
dvander@157
   301
		case OP_DEC_ALT:
dvander@157
   302
			{
dvander@157
   303
				WriteOp_Dec_Alt(jit);
dvander@157
   304
				break;
dvander@157
   305
			}
dvander@157
   306
		case OP_DEC:
dvander@157
   307
			{
dvander@157
   308
				WriteOp_Dec(jit);
dvander@157
   309
				break;
dvander@157
   310
			}
dvander@157
   311
		case OP_DEC_S:
dvander@157
   312
			{
dvander@157
   313
				WriteOp_Dec_S(jit);
dvander@157
   314
				break;
dvander@157
   315
			}
dvander@157
   316
		case OP_DEC_I:
dvander@157
   317
			{
dvander@157
   318
				WriteOp_Dec_I(jit);
dvander@157
   319
				break;
dvander@157
   320
			}
dvander@157
   321
		case OP_LOAD_PRI:
dvander@157
   322
			{
dvander@157
   323
				WriteOp_Load_Pri(jit);
dvander@157
   324
				break;
dvander@157
   325
			}
dvander@157
   326
		case OP_LOAD_ALT:
dvander@157
   327
			{
dvander@157
   328
				WriteOp_Load_Alt(jit);
dvander@157
   329
				break;
dvander@157
   330
			}
dvander@157
   331
		case OP_LOAD_S_PRI:
dvander@157
   332
			{
dvander@157
   333
				WriteOp_Load_S_Pri(jit);
dvander@157
   334
				break;
dvander@157
   335
			}
dvander@157
   336
		case OP_LOAD_S_ALT:
dvander@157
   337
			{
dvander@157
   338
				WriteOp_Load_S_Alt(jit);
dvander@157
   339
				break;
dvander@157
   340
			}
dvander@157
   341
		case OP_LREF_PRI:
dvander@157
   342
			{
dvander@157
   343
				WriteOp_Lref_Pri(jit);
dvander@157
   344
				break;
dvander@157
   345
			}
dvander@157
   346
		case OP_LREF_ALT:
dvander@157
   347
			{
dvander@157
   348
				WriteOp_Lref_Alt(jit);
dvander@157
   349
				break;
dvander@157
   350
			}
dvander@157
   351
		case OP_LREF_S_PRI:
dvander@157
   352
			{
dvander@157
   353
				WriteOp_Lref_S_Pri(jit);
dvander@157
   354
				break;
dvander@157
   355
			}
dvander@157
   356
		case OP_LREF_S_ALT:
dvander@157
   357
			{
dvander@157
   358
				WriteOp_Lref_S_Alt(jit);
dvander@157
   359
				break;
dvander@157
   360
			}
dvander@157
   361
		case OP_CONST_PRI:
dvander@157
   362
			{
dvander@157
   363
				WriteOp_Const_Pri(jit);
dvander@157
   364
				break;
dvander@157
   365
			}
dvander@157
   366
		case OP_CONST_ALT:
dvander@157
   367
			{
dvander@157
   368
				WriteOp_Const_Alt(jit);
dvander@157
   369
				break;
dvander@157
   370
			}
dvander@157
   371
		case OP_ADDR_PRI:
dvander@157
   372
			{
dvander@157
   373
				WriteOp_Addr_Pri(jit);
dvander@157
   374
				break;
dvander@157
   375
			}
dvander@157
   376
		case OP_ADDR_ALT:
dvander@157
   377
			{
dvander@157
   378
				WriteOp_Addr_Alt(jit);
dvander@157
   379
				break;
dvander@157
   380
			}
dvander@157
   381
		case OP_STOR_PRI:
dvander@157
   382
			{
dvander@157
   383
				WriteOp_Stor_Pri(jit);
dvander@157
   384
				break;
dvander@157
   385
			}
dvander@157
   386
		case OP_STOR_ALT:
dvander@157
   387
			{
dvander@157
   388
				WriteOp_Stor_Alt(jit);
dvander@157
   389
				break;
dvander@157
   390
			}
dvander@157
   391
		case OP_STOR_S_PRI:
dvander@157
   392
			{
dvander@157
   393
				WriteOp_Stor_S_Pri(jit);
dvander@157
   394
				break;
dvander@157
   395
			}
dvander@157
   396
		case OP_STOR_S_ALT:
dvander@157
   397
			{
dvander@157
   398
				WriteOp_Stor_S_Alt(jit);
dvander@157
   399
				break;
dvander@157
   400
			}
dvander@157
   401
		case OP_IDXADDR:
dvander@157
   402
			{
dvander@157
   403
				WriteOp_Idxaddr(jit);
dvander@157
   404
				break;
dvander@157
   405
			}
dvander@157
   406
		case OP_SREF_PRI:
dvander@157
   407
			{
dvander@157
   408
				WriteOp_Sref_Pri(jit);
dvander@157
   409
				break;
dvander@157
   410
			}
dvander@157
   411
		case OP_SREF_ALT:
dvander@157
   412
			{
dvander@157
   413
				WriteOp_Sref_Alt(jit);
dvander@157
   414
				break;
dvander@157
   415
			}
dvander@157
   416
		case OP_SREF_S_PRI:
dvander@157
   417
			{
dvander@157
   418
				WriteOp_Sref_S_Pri(jit);
dvander@157
   419
				break;
dvander@157
   420
			}
dvander@157
   421
		case OP_SREF_S_ALT:
dvander@157
   422
			{
dvander@157
   423
				WriteOp_Sref_S_Alt(jit);
dvander@157
   424
				break;
dvander@157
   425
			}
dvander@157
   426
		case OP_POP_PRI:
dvander@157
   427
			{
dvander@157
   428
				WriteOp_Pop_Pri(jit);
dvander@157
   429
				break;
dvander@157
   430
			}
dvander@157
   431
		case OP_POP_ALT:
dvander@157
   432
			{
dvander@157
   433
				WriteOp_Pop_Alt(jit);
dvander@157
   434
				break;
dvander@157
   435
			}
dvander@157
   436
		case OP_SWAP_PRI:
dvander@157
   437
			{
dvander@157
   438
				WriteOp_Swap_Pri(jit);
dvander@157
   439
				break;
dvander@157
   440
			}
dvander@157
   441
		case OP_SWAP_ALT:
dvander@157
   442
			{
dvander@157
   443
				WriteOp_Swap_Alt(jit);
dvander@157
   444
				break;
dvander@157
   445
			}
dvander@157
   446
		case OP_PUSH_ADR:
dvander@157
   447
			{
dvander@157
   448
				WriteOp_PushAddr(jit);
dvander@157
   449
				break;
dvander@157
   450
			}
dvander@157
   451
		case OP_MOVS:
dvander@157
   452
			{
dvander@157
   453
				WriteOp_Movs(jit);
dvander@157
   454
				break;
dvander@157
   455
			}
dvander@157
   456
		case OP_FILL:
dvander@157
   457
			{
dvander@157
   458
				WriteOp_Fill(jit);
dvander@157
   459
				break;
dvander@157
   460
			}
dvander@157
   461
		case OP_PUSH_C:
dvander@157
   462
			{
dvander@157
   463
				WriteOp_Push_C(jit);
dvander@157
   464
				break;
dvander@157
   465
			}
dvander@157
   466
		case OP_ZERO:
dvander@157
   467
			{
dvander@157
   468
				WriteOp_Zero(jit);
dvander@157
   469
				break;
dvander@157
   470
			}
dvander@157
   471
		case OP_ZERO_S:
dvander@157
   472
			{
dvander@157
   473
				WriteOp_Zero_S(jit);
dvander@157
   474
				break;
dvander@157
   475
			}
dvander@157
   476
		case OP_PUSH_PRI:
dvander@157
   477
			{
dvander@157
   478
				WriteOp_Push_Pri(jit);
dvander@157
   479
				break;
dvander@157
   480
			}
dvander@157
   481
		case OP_PUSH_ALT:
dvander@157
   482
			{
dvander@157
   483
				WriteOp_Push_Alt(jit);
dvander@157
   484
				break;
dvander@157
   485
			}
dvander@157
   486
		case OP_LOAD_BOTH:
dvander@157
   487
			{
dvander@157
   488
				WriteOp_Load_Both(jit);
dvander@157
   489
				break;
dvander@157
   490
			}
dvander@157
   491
		case OP_LOAD_S_BOTH:
dvander@157
   492
			{
dvander@157
   493
				WriteOp_Load_S_Both(jit);
dvander@157
   494
				break;
dvander@157
   495
			}
dvander@157
   496
		case OP_CONST:
dvander@157
   497
			{
dvander@157
   498
				WriteOp_Const(jit);
dvander@157
   499
				break;
dvander@157
   500
			}
dvander@157
   501
		case OP_CONST_S:
dvander@157
   502
			{
dvander@157
   503
				WriteOp_Const_S(jit);
dvander@157
   504
				break;
dvander@157
   505
			}
dvander@157
   506
		case OP_LOAD_I:
dvander@157
   507
			{
dvander@157
   508
				WriteOp_Load_I(jit);
dvander@157
   509
				break;
dvander@157
   510
			}
dvander@157
   511
		case OP_LODB_I:
dvander@157
   512
			{
dvander@157
   513
				WriteOp_Lodb_I(jit);
dvander@157
   514
				break;
dvander@157
   515
			}
dvander@157
   516
		case OP_STOR_I:
dvander@157
   517
			{
dvander@157
   518
				WriteOp_Stor_I(jit);
dvander@157
   519
				break;
dvander@157
   520
			}
dvander@157
   521
		case OP_STRB_I:
dvander@157
   522
			{
dvander@157
   523
				WriteOp_Strb_I(jit);
dvander@157
   524
				break;
dvander@157
   525
			}
dvander@157
   526
		case OP_LIDX:
dvander@157
   527
			{
dvander@157
   528
				WriteOp_Lidx(jit);
dvander@157
   529
				break;
dvander@157
   530
			}
dvander@157
   531
		case OP_LIDX_B:
dvander@157
   532
			{
dvander@157
   533
				WriteOp_Lidx_B(jit);
dvander@157
   534
				break;
dvander@157
   535
			}
dvander@157
   536
		case OP_IDXADDR_B:
dvander@157
   537
			{
dvander@157
   538
				WriteOp_Idxaddr_B(jit);
dvander@157
   539
				break;
dvander@157
   540
			}
dvander@157
   541
		case OP_STACK:
dvander@157
   542
			{
dvander@157
   543
				WriteOp_Stack(jit);
dvander@157
   544
				break;
dvander@157
   545
			}
dvander@157
   546
		case OP_HEAP:
dvander@157
   547
			{
dvander@157
   548
				WriteOp_Heap(jit);
dvander@157
   549
				break;
dvander@157
   550
			}
dvander@157
   551
		case OP_SDIV:
dvander@157
   552
			{
dvander@157
   553
				WriteOp_SDiv(jit);
dvander@157
   554
				break;
dvander@157
   555
			}
dvander@157
   556
		case OP_SDIV_ALT:
dvander@157
   557
			{
dvander@157
   558
				WriteOp_SDiv_Alt(jit);
dvander@157
   559
				break;
dvander@157
   560
			}
dvander@157
   561
		case OP_RETN:
dvander@157
   562
			{
dvander@157
   563
				WriteOp_Retn(jit);
dvander@157
   564
				break;
dvander@157
   565
			}
dvander@157
   566
		case OP_BOUNDS:
dvander@157
   567
			{
dvander@157
   568
				WriteOp_Bounds(jit);
dvander@157
   569
				break;
dvander@157
   570
			}
dvander@157
   571
		case OP_HALT:
dvander@157
   572
			{
dvander@157
   573
				WriteOp_Halt(jit);
dvander@157
   574
				break;
dvander@157
   575
			}
dvander@157
   576
		case OP_BREAK:
dvander@157
   577
			{
dvander@157
   578
				WriteOp_Break(jit);
dvander@157
   579
				break;
dvander@157
   580
			}
dvander@157
   581
		case OP_JUMP:
dvander@157
   582
			{
dvander@157
   583
				WriteOp_Jump(jit);
dvander@157
   584
				break;
dvander@157
   585
			}
dvander@157
   586
		case OP_JZER:
dvander@157
   587
			{
dvander@157
   588
				WriteOp_Jzer(jit);
dvander@157
   589
				break;
dvander@157
   590
			}
dvander@157
   591
		case OP_JNZ:
dvander@157
   592
			{
dvander@157
   593
				WriteOp_Jnz(jit);
dvander@157
   594
				break;
dvander@157
   595
			}
dvander@157
   596
		case OP_JEQ:
dvander@157
   597
			{
dvander@157
   598
				WriteOp_Jeq(jit);
dvander@157
   599
				break;
dvander@157
   600
			}
dvander@157
   601
		case OP_JNEQ:
dvander@157
   602
			{
dvander@157
   603
				WriteOp_Jneq(jit);
dvander@157
   604
				break;
dvander@157
   605
			}
dvander@157
   606
		case OP_JSLESS:
dvander@157
   607
			{
dvander@157
   608
				WriteOp_Jsless(jit);
dvander@157
   609
				break;
dvander@157
   610
			}
dvander@157
   611
		case OP_JSGRTR:
dvander@157
   612
			{
dvander@157
   613
				WriteOp_JsGrtr(jit);
dvander@157
   614
				break;
dvander@157
   615
			}
dvander@157
   616
		case OP_JSGEQ:
dvander@157
   617
			{
dvander@157
   618
				WriteOp_JsGeq(jit);
dvander@157
   619
				break;
dvander@157
   620
			}
dvander@157
   621
		case OP_JSLEQ:
dvander@157
   622
			{
dvander@157
   623
				WriteOp_Jsleq(jit);
dvander@157
   624
				break;
dvander@157
   625
			}
dvander@157
   626
		case OP_SWITCH:
dvander@157
   627
			{
dvander@157
   628
				WriteOp_Switch(jit);
dvander@157
   629
				break;
dvander@157
   630
			}
dvander@157
   631
		case OP_CASETBL:
dvander@157
   632
			{
dvander@157
   633
				WriteOp_Casetbl(jit);
dvander@157
   634
				break;
dvander@157
   635
			}
dvander@157
   636
		case OP_CALL:
dvander@157
   637
			{
dvander@157
   638
				WriteOp_Call(jit);
dvander@157
   639
				break;
dvander@157
   640
			}
dvander@157
   641
		case OP_SYSREQ_C:
dvander@157
   642
			{
dvander@157
   643
				WriteOp_Sysreq_C(jit);
dvander@157
   644
				break;
dvander@157
   645
			}
dvander@157
   646
		case OP_SYSREQ_N:
dvander@157
   647
			{
dvander@157
   648
				if (data->inline_level & JIT_INLINE_NATIVES)
dvander@157
   649
				{
dvander@157
   650
					WriteOp_Sysreq_N(jit);
dvander@157
   651
				} else {
dvander@157
   652
					WriteOp_Sysreq_N_NoInline(jit);
dvander@157
   653
				}
dvander@157
   654
				break;
dvander@157
   655
			}
dvander@157
   656
		case OP_TRACKER_PUSH_C:
dvander@157
   657
			{
dvander@157
   658
				WriteOp_Tracker_Push_C(jit);
dvander@157
   659
				break;
dvander@157
   660
			}
dvander@157
   661
		case OP_TRACKER_POP_SETHEAP:
dvander@157
   662
			{
dvander@157
   663
				WriteOp_Tracker_Pop_SetHeap(jit);
dvander@157
   664
				break;
dvander@157
   665
			}
dvander@157
   666
		case OP_GENARRAY:
dvander@157
   667
			{
dvander@157
   668
				WriteOp_GenArray(jit, false);
dvander@157
   669
				break;
dvander@157
   670
			}
dvander@157
   671
		case OP_GENARRAY_Z:
dvander@157
   672
			{
dvander@157
   673
				WriteOp_GenArray(jit, true);
dvander@157
   674
				break;
dvander@157
   675
			}
faluco@201
   676
		case OP_STRADJUST_PRI:
faluco@201
   677
			{
faluco@201
   678
				WriteOp_Stradjust_Pri(jit);
faluco@201
   679
				break;
faluco@201
   680
			}
faluco@831
   681
		case OP_FABS:
faluco@831
   682
			{
faluco@831
   683
				WriteOp_FloatAbs(jit);
faluco@831
   684
				break;
faluco@831
   685
			}
faluco@831
   686
		case OP_FLOAT:
faluco@831
   687
			{
faluco@831
   688
				WriteOp_Float(jit);
faluco@831
   689
				break;
faluco@831
   690
			}
faluco@831
   691
		case OP_FLOATADD:
faluco@831
   692
			{
faluco@831
   693
				WriteOp_FloatAdd(jit);
faluco@831
   694
				break;
faluco@831
   695
			}
faluco@831
   696
		case OP_FLOATSUB:
faluco@831
   697
			{
faluco@831
   698
				WriteOp_FloatSub(jit);
faluco@831
   699
				break;
faluco@831
   700
			}
faluco@831
   701
		case OP_FLOATMUL:
faluco@831
   702
			{
faluco@831
   703
				WriteOp_FloatMul(jit);
faluco@831
   704
				break;
faluco@831
   705
			}
faluco@831
   706
		case OP_FLOATDIV:
faluco@831
   707
			{
faluco@831
   708
				WriteOp_FloatDiv(jit);
faluco@831
   709
				break;
faluco@831
   710
			}
faluco@831
   711
		case OP_RND_TO_NEAREST:
faluco@831
   712
			{
faluco@831
   713
				WriteOp_RountToNearest(jit);
faluco@831
   714
				break;
faluco@831
   715
			}
faluco@831
   716
		case OP_RND_TO_FLOOR:
faluco@831
   717
			{
faluco@831
   718
				WriteOp_RoundToFloor(jit);
faluco@831
   719
				break;
faluco@831
   720
			}
faluco@831
   721
		case OP_RND_TO_ZERO:
faluco@831
   722
			{
faluco@831
   723
				WriteOp_RoundToZero(jit);
faluco@831
   724
				break;
faluco@831
   725
			}
faluco@831
   726
		case OP_RND_TO_CEIL:
faluco@831
   727
			{
faluco@831
   728
				WriteOp_RoundToCeil(jit);
faluco@831
   729
				break;
faluco@831
   730
			}
faluco@831
   731
		case OP_FLOATCMP:
faluco@831
   732
			{
faluco@831
   733
				WriteOp_FloatCompare(jit);
faluco@831
   734
				break;
faluco@831
   735
			}
dvander@157
   736
#if defined USE_UNGEN_OPCODES
dvander@157
   737
		#include "ungen_opcode_switch.inc"
dvander@157
   738
#endif
dvander@157
   739
		default:
dvander@157
   740
			{
dvander@157
   741
				data->error_set = SP_ERROR_INVALID_INSTRUCTION;
dvander@157
   742
				break;
dvander@157
   743
			}