summary refs log tree commit diff stats
path: root/compiler/seminst.nim
Commit message (Expand)AuthorAgeFilesLines
* fix tgenericshardcasesZahary Karadjov2017-03-241-1/+2
* Fix generic forward declarations; fixes #4104; fixes #4908 (#5566)zah2017-03-231-3/+11
* fixes #5430Araq2017-02-261-1/+1
* big compiler refactoring; avoid globals for multi method dispatcher generationAndreas Rumpf2017-02-221-3/+3
* make tests green againAraq2017-02-161-1/+3
* fixes #5383Araq2017-02-161-3/+4
* fixes #5285Andreas Rumpf2017-02-041-2/+9
* remove remnants of tyIterJacek Sieka2016-10-241-1/+1
* fixes #4856Andreas Rumpf2016-10-201-1/+2
* fixes #4673Andreas Rumpf2016-09-011-1/+1
* Merge pull request #4592 from arnetheduck/compiler-cleanupAndreas Rumpf2016-08-251-30/+0
|\
| * remove unused stuffJacek Sieka2016-08-091-30/+0
* | side-effect computation now done in the proper pass; fixes #4254Andreas Rumpf2016-08-251-3/+4
|/
* fixes #3055Andreas Rumpf2016-07-081-1/+1
* fixes #4177Andreas Rumpf2016-05-281-2/+4
* fixes #4097Andreas Rumpf2016-04-191-7/+7
* added experimental .this pragmaAndreas Rumpf2016-02-281-1/+43
* fixes #3476Araq2015-10-271-2/+2
* fixes #3338Araq2015-10-221-1/+7
* renamed inCompilesContext to compilesContextId; added test case for #3313Araq2015-09-181-3/+3
* fixes #3313Araq2015-09-181-4/+7
* fixes #3329Araq2015-09-181-1/+1
* usage of NimNode triggers .compileTime context; fixes #1679Araq2015-09-141-0/+2
* fixes generic instantations in conceptsAraq2015-09-121-0/+3
* Merge pull request #3177 from zah/generic-types-in-macrosAndreas Rumpf2015-08-141-12/+13
|\
| * fix #1858 again; restores the support for static macro paramsZahary Karadjov2015-08-021-12/+13
* | fixes #2752Araq2015-08-091-3/+4
|/
* fixes #2470, fixes #1354Araq2015-04-281-1/+3
* fixes #2509Araq2015-04-111-1/+4
* fixes #794Araq2015-03-071-16/+16
* fixes #2215Araq2015-02-251-10/+11
* fixes #2125Araq2015-02-181-8/+18
* Fix typosFederico Ceratto2015-02-151-1/+1
* fixes #2004Araq2015-02-081-4/+9
* Revert 5e4ae8dDustin Lacewell2015-01-071-13/+12
* fix #1858; Add support for generic templates and macrosZahary Karadjov2015-01-051-12/+13
* fix #1789 (binding to static params during generic proc sigmatch)Zahary Karadjov2014-12-311-1/+3
* fixes #1055Araq2014-11-161-3/+6
* Nimrod renamed to NimAraq2014-08-281-1/+1
* fixes #669Araq2014-08-141-1/+2
* Fixed #1172 (for real)Clay Sweetser2014-06-011-3/+5
* removed flawed thread analysis passAraq2014-04-201-3/+0
* make some tests greenZahary Karadjov2014-03-161-7/+9
* more robust handling of proc signatures containing inter-param type referencesZahary Karadjov2014-03-161-11/+58
* first phase of tyGenericParam reforms needed for static paramsZahary Karadjov2014-03-161-6/+3
* implements higher-order inline iterators and return type inference for iteratorsZahary Karadjov2014-03-081-1/+1
* progress towards fixing tgenericshardcasesZahary Karadjov2014-01-061-2/+1
* clean-up some obsolete code; close #602Zahary Karadjov2013-12-311-146/+8
* handle recursive types during the instantiation of meta types; propagate tfHa...Zahary Karadjov2013-12-301-0/+1
* Merge branch 'upstream' into develZahary Karadjov2013-12-291-9/+32
|\
="p">(LDLOC_S, "ldloc.s", 0x11) OP(LDLOCA_S, "ldloca.s", 0x12) OP(STLOC_S, "stloc.s", 0x13) OP(LDNULL, "ldnull", 0x14) OP(LDC_I4_M1, "ldc.i4.m1", 0x15) OP(LDC_I4_0, "ldc.i4.0", 0x16) OP(LDC_I4_1, "ldc.i4.1", 0x17) OP(LDC_I4_2, "ldc.i4.2", 0x18) OP(LDC_I4_3, "ldc.i4.3", 0x19) OP(LDC_I4_4, "ldc.i4.4", 0x1a) OP(LDC_I4_5, "ldc.i4.5", 0x1b) OP(LDC_I4_6, "ldc.i4.6", 0x1c) OP(LDC_I4_7, "ldc.i4.7", 0x1d) OP(LDC_I4_8, "ldc.i4.8", 0x1e) OP(LDC_I4_S, "ldc.i4.s", 0x1f) OP(LDC_I4, "ldc.i4", 0x20) OP(LDC_I8, "ldc.i8", 0x21) OP(LDC_R4, "ldc.r4", 0x22) OP(LDC_R8, "ldc.r8", 0x23) OP(LDPTR, "ldptr", 0x24) OP(DUP, "dup", 0x25) OP(POP, "pop", 0x26) OP(JMP, "jmp", 0x27) OP(CALL, "call", 0x28) OP(CALLI, "calli", 0x29) OP(RET, "ret", 0x2a) OP(BR_S, "br.s", 0x2b) OP(BRFALSE_S, "brfalse.s", 0x2c) OP(BRTRUE_S, "brtrue.s", 0x2d) OP(BEQ_S, "beq.s", 0x2e) OP(BGE_S, "bge.s", 0x2f) OP(BGT_S, "bgt.s", 0x30) OP(BLE_S, "ble.s", 0x31) OP(BLT_S, "blt.s", 0x32) OP(BNE_UN_S, "bne.un.s", 0x33) OP(BGE_UN_S, "bge.un.s", 0x34) OP(BGT_UN_S, "bgt.un.s", 0x35) OP(BLE_UN_S, "ble.un.s", 0x36) OP(BLT_UN_S, "blt.un.s", 0x37) OP(BR, "br", 0x38) OP(BRFALSE, "brfalse", 0x39) OP(BRTRUE, "brtrue", 0x3a) OP(BEQ, "beq", 0x3b) OP(BGE, "bge", 0x3c) OP(BGT, "bgt", 0x3d) OP(BLE, "ble", 0x3e) OP(BLT, "blt", 0x3f) OP(BNE_UN, "bne.un", 0x40) OP(BGE_UN, "bge.un", 0x41) OP(BGT_UN, "bgt.un", 0x42) OP(BLE_UN, "ble.un", 0x43) OP(BLT_UN, "blt.un", 0x44) OP(SWITCH, "switch", 0x45) OP(LDIND_I1, "ldind.i1", 0x46) OP(LDIND_U1, "ldind.u1", 0x47) OP(LDIND_I2, "ldind.i2", 0x48) OP(LDIND_U2, "ldind.u2", 0x49) OP(LDIND_I4, "ldind.i4", 0x4a) OP(LDIND_U4, "ldind.u4", 0x4b) OP(LDIND_I8, "ldind.i8", 0x4c) OP(LDIND_I, "ldind.i", 0x4d) OP(LDIND_R4, "ldind.r4", 0x4e) OP(LDIND_R8, "ldind.r8", 0x4f) OP(LDIND_REF, "ldind.ref", 0x50) OP(STIND_REF, "stind.ref", 0x51) OP(STIND_I1, "stind.i1", 0x52) OP(STIND_I2, "stind.i2", 0x53) OP(STIND_I4, "stind.i4", 0x54) OP(STIND_I8, "stind.i8", 0x55) OP(STIND_R4, "stind.r4", 0x56) OP(STIND_R8, "stind.r8", 0x57) OP(ADD, "add", 0x58) OP(SUB, "sub", 0x59) OP(MUL, "mul", 0x5a) OP(DIV, "div", 0x5b) OP(DIV_UN, "div.un", 0x5c) OP(REM, "rem", 0x5d) OP(REM_UN, "rem.un", 0x5e) OP(AND, "and", 0x5f) OP(OR, "or", 0x60) OP(XOR, "xor", 0x61) OP(SHL, "shl", 0x62) OP(SHR, "shr", 0x63) OP(SHR_UN, "shr.un", 0x64) OP(NEG, "neg", 0x65) OP(NOT, "not", 0x66) OP(CONV_I1, "conv.i1", 0x67) OP(CONV_I2, "conv.i2", 0x68) OP(CONV_I4, "conv.i4", 0x69) OP(CONV_I8, "conv.i8", 0x6a) OP(CONV_R4, "conv.r4", 0x6b) OP(CONV_R8, "conv.r8", 0x6c) OP(CONV_U4, "conv.u4", 0x6d) OP(CONV_U8, "conv.u8", 0x6e) OP(CALLVIRT, "callvirt", 0x6f) OP(CPOBJ, "cpobj", 0x70) OP(LDOBJ, "ldobj", 0x71) OP(LDSTR, "ldstr", 0x72) OP(NEWOBJ, "newobj", 0x73) OP(CASTCLASS, "castclass", 0x74) OP(ISINST, "isinst", 0x75) OP(CONV_R_UN, "conv.r.un", 0x76) OP(ANN_DATA_S, "ann.data.s", 0x77) OP(UNBOX, "unbox", 0x79) OP(THROW, "throw", 0x7a) OP(LDFLD, "ldfld", 0x7b) OP(LDFLDA, "ldflda", 0x7c) OP(STFLD, "stfld", 0x7d) OP(LDSFLD, "ldsfld", 0x7e) OP(LDSFLDA, "ldsflda", 0x7f) OP(STSFLD, "stsfld", 0x80) OP(STOBJ, "stobj", 0x81) OP(CONV_OVF_I1_UN, "conv.ovf.i1.un", 0x82) OP(CONV_OVF_I2_UN, "conv.ovf.i2.un", 0x83) OP(CONV_OVF_I4_UN, "conv.ovf.i4.un", 0x84) OP(CONV_OVF_I8_UN, "conv.ovf.i8.un", 0x85) OP(CONV_OVF_U1_UN, "conv.ovf.u1.un", 0x86) OP(CONV_OVF_U2_UN, "conv.ovf.u2.un", 0x87) OP(CONV_OVF_U4_UN, "conv.ovf.u4.un", 0x88) OP(CONV_OVF_U8_UN, "conv.ovf.u8.un", 0x89) OP(CONV_OVF_I_UN, "conv.ovf.i.un", 0x8a) OP(CONV_OVF_U_UN, "conv.ovf.u.un", 0x8b) OP(BOX, "box", 0x8c) OP(NEWARR, "newarr", 0x8d) OP(LDLEN, "ldlen", 0x8e) OP(LDELEMA, "ldelema", 0x8f) OP(LDELEM_I1, "ldelem.i1", 0x90) OP(LDELEM_U1, "ldelem.u1", 0x91) OP(LDELEM_I2, "ldelem.i2", 0x92) OP(LDELEM_U2, "ldelem.u2", 0x93) OP(LDELEM_I4, "ldelem.i4", 0x94) OP(LDELEM_U4, "ldelem.u4", 0x95) OP(LDELEM_I8, "ldelem.i8", 0x96) OP(LDELEM_I, "ldelem.i", 0x97) OP(LDELEM_R4, "ldelem.r4", 0x98) OP(LDELEM_R8, "ldelem.r8", 0x99) OP(LDELEM_REF, "ldelem.ref", 0x9a) OP(STELEM_I, "stelem.i", 0x9b) OP(STELEM_I1, "stelem.i1", 0x9c) OP(STELEM_I2, "stelem.i2", 0x9d) OP(STELEM_I4, "stelem.i4", 0x9e) OP(STELEM_I8, "stelem.i8", 0x9f) OP(STELEM_R4, "stelem.r4", 0xa0) OP(STELEM_R8, "stelem.r8", 0xa1) OP(STELEM_REF, "stelem.ref", 0xa2) OP(CONV_OVF_I1, "conv.ovf.i1", 0xb3) OP(CONV_OVF_U1, "conv.ovf.u1", 0xb4) OP(CONV_OVF_I2, "conv.ovf.i2", 0xb5) OP(CONV_OVF_U2, "conv.ovf.u2", 0xb6) OP(CONV_OVF_I4, "conv.ovf.i4", 0xb7) OP(CONV_OVF_U4, "conv.ovf.u4", 0xb8) OP(CONV_OVF_I8, "conv.ovf.i8", 0xb9) OP(CONV_OVF_U8, "conv.ovf.u8", 0xba) OP(REFANYVAL, "refanyval", 0xc2) OP(CKFINITE, "ckfinite", 0xc3) OP(MKREFANY, "mkrefany", 0xc6) OP(ANN_CALL, "ann.call", 0xc7) OP(ANN_CATCH, "ann.catch", 0xc8) OP(ANN_DEAD, "ann.dead", 0xc9) OP(ANN_HOISTED, "ann.hoisted", 0xca) OP(ANN_HOISTED_CALL, "ann.hoisted.call", 0xcb) OP(ANN_LAB, "ann.lab", 0xcc) OP(ANN_DEF, "ann.def", 0xcd) OP(ANN_REF_S, "ann.ref.s", 0xce) OP(ANN_PHI, "ann.phi", 0xcf) OP(LDTOKEN, "ldtoken", 0xd0) OP(CONV_U2, "conv.u2", 0xd1) OP(CONV_U1, "conv.u1", 0xd2) OP(CONV_I, "conv.i", 0xd3) OP(CONV_OVF_I, "conv.ovf.i", 0xd4) OP(CONV_OVF_U, "conv.ovf.u", 0xd5) OP(ADD_OVF, "add.ovf", 0xd6) OP(ADD_OVF_UN, "add.ovf.un", 0xd7) OP(MUL_OVF, "mul.ovf", 0xd8) OP(MUL_OVF_UN, "mul.ovf.un", 0xd9) OP(SUB_OVF, "sub.ovf", 0xda) OP(SUB_OVF_UN, "sub.ovf.un", 0xdb) OP(ENDFINALLY, "endfinally", 0xdc) OP(LEAVE, "leave", 0xdd) OP(LEAVE_S, "leave.s", 0xde) OP(STIND_I, "stind.i", 0xdf) OP(CONV_U, "conv.u", 0xe0) /* prefix instructions. we use an opcode >= 256 to ease coding */ OP(ARGLIST, "arglist", 0x100) OP(CEQ, "ceq", 0x101) OP(CGT, "cgt", 0x102) OP(CGT_UN, "cgt.un", 0x103) OP(CLT, "clt", 0x104) OP(CLT_UN, "clt.un", 0x105) OP(LDFTN, "ldftn", 0x106) OP(LDVIRTFTN, "ldvirtftn", 0x107) OP(JMPI, "jmpi", 0x108) OP(LDARG, "ldarg", 0x109) OP(LDARGA, "ldarga", 0x10a) OP(STARG, "starg", 0x10b) OP(LDLOC, "ldloc", 0x10c) OP(LDLOCA, "ldloca", 0x10d) OP(STLOC, "stloc", 0x10e) OP(LOCALLOC, "localloc", 0x10f) OP(ENDFILTER, "endfilter", 0x111) OP(UNALIGNED, "unaligned", 0x112) OP(VOLATILE, "volatile", 0x113) OP(TAIL, "tail", 0x114) OP(INITOBJ, "initobj", 0x115) OP(ANN_LIVE, "ann.live", 0x116) OP(CPBLK, "cpblk", 0x117) OP(INITBLK, "initblk", 0x118) OP(ANN_REF, "ann.ref", 0x119) OP(RETHROW, "rethrow", 0x11a) OP(SIZEOF, "sizeof", 0x11c) OP(REFANYTYPE, "refanytype", 0x11d) OP(ANN_DATA, "ann.data", 0x122) OP(ANN_ARG, "ann.arg", 0x123)