mirror of https://git.wuffs.org/MWCC
332 lines
6.4 KiB
C
332 lines
6.4 KiB
C
#ifndef COMPILER_INTRINSICS_H
|
|
#define COMPILER_INTRINSICS_H
|
|
|
|
#include "compiler/common.h"
|
|
|
|
typedef enum Intrinsics {
|
|
Intrinsic_000,
|
|
Intrinsic_001,
|
|
Intrinsic_002,
|
|
Intrinsic_003,
|
|
Intrinsic_004,
|
|
Intrinsic_005,
|
|
Intrinsic_006,
|
|
Intrinsic_007,
|
|
Intrinsic_008,
|
|
Intrinsic_009,
|
|
Intrinsic_010,
|
|
Intrinsic_011,
|
|
Intrinsic_012,
|
|
Intrinsic_013,
|
|
Intrinsic_014,
|
|
Intrinsic_015,
|
|
Intrinsic_016,
|
|
Intrinsic_017,
|
|
Intrinsic_018,
|
|
Intrinsic_019,
|
|
Intrinsic_020,
|
|
Intrinsic_021,
|
|
Intrinsic_022,
|
|
Intrinsic_023,
|
|
Intrinsic_024,
|
|
Intrinsic_025,
|
|
Intrinsic_026,
|
|
Intrinsic_027,
|
|
Intrinsic_028,
|
|
Intrinsic_029,
|
|
Intrinsic_030,
|
|
Intrinsic_031,
|
|
Intrinsic_032,
|
|
Intrinsic_033,
|
|
Intrinsic_034,
|
|
Intrinsic_035,
|
|
Intrinsic_036,
|
|
Intrinsic_037,
|
|
Intrinsic_038,
|
|
Intrinsic_039,
|
|
Intrinsic_040,
|
|
Intrinsic_041,
|
|
Intrinsic_042,
|
|
Intrinsic_043,
|
|
Intrinsic_044,
|
|
Intrinsic_045,
|
|
Intrinsic_046,
|
|
Intrinsic_047,
|
|
Intrinsic_048,
|
|
Intrinsic_049,
|
|
Intrinsic_050,
|
|
Intrinsic_051,
|
|
Intrinsic_052,
|
|
Intrinsic_053,
|
|
Intrinsic_054,
|
|
Intrinsic_055,
|
|
Intrinsic_056,
|
|
Intrinsic_057,
|
|
Intrinsic_058,
|
|
Intrinsic_059,
|
|
Intrinsic_060,
|
|
Intrinsic_061,
|
|
Intrinsic_062,
|
|
Intrinsic_063,
|
|
Intrinsic_064,
|
|
Intrinsic_065,
|
|
Intrinsic_066,
|
|
Intrinsic_067,
|
|
Intrinsic_068,
|
|
Intrinsic_069,
|
|
Intrinsic_070,
|
|
Intrinsic_071,
|
|
Intrinsic_072,
|
|
Intrinsic_073,
|
|
Intrinsic_074,
|
|
Intrinsic_075,
|
|
Intrinsic_076,
|
|
Intrinsic_077,
|
|
Intrinsic_078,
|
|
Intrinsic_079,
|
|
Intrinsic_080,
|
|
Intrinsic_081,
|
|
Intrinsic_082,
|
|
Intrinsic_083,
|
|
Intrinsic_084,
|
|
Intrinsic_085,
|
|
Intrinsic_086,
|
|
Intrinsic_087,
|
|
Intrinsic_088,
|
|
Intrinsic_089,
|
|
Intrinsic_090,
|
|
Intrinsic_091,
|
|
Intrinsic_092,
|
|
Intrinsic_093,
|
|
Intrinsic_094,
|
|
Intrinsic_095,
|
|
Intrinsic_096,
|
|
Intrinsic_097,
|
|
Intrinsic_098,
|
|
Intrinsic_099,
|
|
Intrinsic_100,
|
|
Intrinsic_101,
|
|
Intrinsic_102,
|
|
Intrinsic_103,
|
|
Intrinsic_104,
|
|
Intrinsic_105,
|
|
Intrinsic_106,
|
|
Intrinsic_107,
|
|
Intrinsic_108,
|
|
Intrinsic_109,
|
|
Intrinsic_110,
|
|
Intrinsic_111,
|
|
Intrinsic_112,
|
|
Intrinsic_113,
|
|
Intrinsic_114,
|
|
Intrinsic_115,
|
|
Intrinsic_116,
|
|
Intrinsic_117,
|
|
Intrinsic_118,
|
|
Intrinsic_119,
|
|
Intrinsic_120,
|
|
Intrinsic_121,
|
|
Intrinsic_122,
|
|
Intrinsic_123,
|
|
Intrinsic_124,
|
|
Intrinsic_125,
|
|
Intrinsic_126,
|
|
Intrinsic_127,
|
|
Intrinsic_128,
|
|
Intrinsic_129,
|
|
Intrinsic_130,
|
|
Intrinsic_131,
|
|
Intrinsic_132,
|
|
Intrinsic_133,
|
|
Intrinsic_134,
|
|
Intrinsic_135,
|
|
Intrinsic_136,
|
|
Intrinsic_137,
|
|
Intrinsic_138,
|
|
Intrinsic_139,
|
|
Intrinsic_140,
|
|
Intrinsic_141,
|
|
Intrinsic_142,
|
|
Intrinsic_143,
|
|
Intrinsic_144,
|
|
Intrinsic_145,
|
|
Intrinsic_146,
|
|
Intrinsic_147,
|
|
Intrinsic_148,
|
|
Intrinsic_149,
|
|
Intrinsic_150,
|
|
Intrinsic_151,
|
|
Intrinsic_152,
|
|
Intrinsic_153,
|
|
Intrinsic_154,
|
|
Intrinsic_155,
|
|
Intrinsic_156,
|
|
Intrinsic_157,
|
|
Intrinsic_158,
|
|
Intrinsic_159,
|
|
Intrinsic_160,
|
|
Intrinsic_161,
|
|
Intrinsic_162,
|
|
Intrinsic_163,
|
|
Intrinsic_164,
|
|
Intrinsic_165,
|
|
Intrinsic_166,
|
|
Intrinsic_167,
|
|
Intrinsic_168,
|
|
Intrinsic_169,
|
|
Intrinsic_170,
|
|
Intrinsic_171,
|
|
Intrinsic_172,
|
|
Intrinsic_173,
|
|
Intrinsic_174,
|
|
Intrinsic_175,
|
|
Intrinsic_176,
|
|
Intrinsic_177,
|
|
Intrinsic_178,
|
|
Intrinsic_179,
|
|
Intrinsic_180,
|
|
Intrinsic_181,
|
|
Intrinsic_182,
|
|
Intrinsic_183,
|
|
Intrinsic_184,
|
|
Intrinsic_185,
|
|
Intrinsic_186,
|
|
Intrinsic_187,
|
|
Intrinsic_188,
|
|
Intrinsic_189,
|
|
Intrinsic_190,
|
|
Intrinsic_191,
|
|
Intrinsic_192,
|
|
Intrinsic_193,
|
|
Intrinsic_194,
|
|
Intrinsic_195,
|
|
Intrinsic_196,
|
|
Intrinsic_197,
|
|
Intrinsic_198,
|
|
Intrinsic_199,
|
|
Intrinsic_200,
|
|
Intrinsic_201,
|
|
Intrinsic_202,
|
|
Intrinsic_203,
|
|
Intrinsic_204,
|
|
Intrinsic_205,
|
|
Intrinsic_206,
|
|
Intrinsic_207,
|
|
Intrinsic_208,
|
|
Intrinsic_209,
|
|
Intrinsic_210,
|
|
Intrinsic_211,
|
|
Intrinsic_212,
|
|
Intrinsic_213,
|
|
Intrinsic_214,
|
|
Intrinsic_215,
|
|
Intrinsic_216,
|
|
Intrinsic_217,
|
|
Intrinsic_218,
|
|
Intrinsic_219,
|
|
Intrinsic_220,
|
|
Intrinsic_221,
|
|
Intrinsic_222,
|
|
Intrinsic_223,
|
|
Intrinsic_224,
|
|
Intrinsic_225,
|
|
Intrinsic_226,
|
|
Intrinsic_227,
|
|
Intrinsic_228,
|
|
Intrinsic_229,
|
|
Intrinsic_230,
|
|
Intrinsic_231,
|
|
Intrinsic_232,
|
|
Intrinsic_233,
|
|
Intrinsic_234,
|
|
Intrinsic_235,
|
|
Intrinsic_236,
|
|
Intrinsic_237,
|
|
Intrinsic_238,
|
|
Intrinsic_239,
|
|
Intrinsic_240,
|
|
Intrinsic_241,
|
|
Intrinsic_242,
|
|
Intrinsic_243,
|
|
Intrinsic_244,
|
|
Intrinsic_245,
|
|
Intrinsic_246,
|
|
Intrinsic_247,
|
|
Intrinsic_248,
|
|
Intrinsic_249,
|
|
Intrinsic_250,
|
|
Intrinsic_251,
|
|
Intrinsic_252,
|
|
Intrinsic_253,
|
|
Intrinsic_254,
|
|
Intrinsic_255,
|
|
Intrinsic_256,
|
|
Intrinsic_257,
|
|
Intrinsic_258,
|
|
Intrinsic_259,
|
|
Intrinsic_260,
|
|
Intrinsic_261,
|
|
Intrinsic_262,
|
|
Intrinsic_263,
|
|
Intrinsic_264,
|
|
Intrinsic_265,
|
|
Intrinsic_266,
|
|
Intrinsic_267,
|
|
Intrinsic_268,
|
|
Intrinsic_269,
|
|
Intrinsic_270,
|
|
Intrinsic_271,
|
|
Intrinsic_272,
|
|
Intrinsic_273,
|
|
Intrinsic_274,
|
|
Intrinsic_275,
|
|
Intrinsic_276,
|
|
Intrinsic_277,
|
|
Intrinsic_278,
|
|
Intrinsic_279,
|
|
Intrinsic_280,
|
|
Intrinsic_281,
|
|
Intrinsic_282,
|
|
Intrinsic_283,
|
|
Intrinsic_284,
|
|
Intrinsic_285,
|
|
Intrinsic_286,
|
|
Intrinsic_287,
|
|
Intrinsic_288,
|
|
Intrinsic_289,
|
|
Intrinsic_290,
|
|
Intrinsic_291,
|
|
Intrinsic_292,
|
|
Intrinsic_293,
|
|
Intrinsic_294,
|
|
Intrinsic_295,
|
|
Intrinsic_296,
|
|
Intrinsic_297,
|
|
Intrinsic_298,
|
|
Intrinsic_299,
|
|
Intrinsic_300,
|
|
Intrinsic_301,
|
|
Intrinsic_302,
|
|
Intrinsic_303,
|
|
Intrinsic_304,
|
|
Intrinsic_305,
|
|
Intrinsic_306,
|
|
Intrinsic_307,
|
|
Intrinsic_308,
|
|
Intrinsic_309,
|
|
Intrinsic_310,
|
|
MaxIntrinsics
|
|
} Intrinsics;
|
|
|
|
extern Object *__memcpy_object;
|
|
extern int VectorConditions; // unused?
|
|
|
|
extern int is_intrinsic_function_call(ENode *funccall);
|
|
extern ENode *Intrinsics_HandleIntrinsicCall(Object *func, ENodeList *args);
|
|
extern void call_intrinsic_function(ENode *funccall, short outputReg, Operand *output);
|
|
extern void Intrinsics_SetupRuntimeObjects(void);
|
|
extern Boolean Intrinsics_ReInitRuntimeObjects(Boolean flag);
|
|
extern Boolean Intrinsics_IsPublicRuntimeObject(Object *object);
|
|
|
|
#endif
|