Guest User

Untitled

a guest
Oct 12th, 2018
2,545
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.93 KB | None | 0 0
  1. /* Generated by Nim Compiler v0.19.0 */
  2. /* (c) 2018 Andreas Rumpf */
  3. /* The generated code is subject to the original license. */
  4. /* Compiled for: Windows, amd64, gcc */
  5. /* Command for C compiler:
  6. gcc.exe -c -w -mno-ms-bitfields -IC:\Users\lukeP\Nim\lib -o C:\Users\lukeP\Desktop\Ember\build\nimcache\test.c.o C:\Users\lukeP\Desktop\Ember\build\nimcache\test.c */
  7. #define NIM_NEW_MANGLING_RULES
  8. #define NIM_INTBITS 64
  9.  
  10. #include "nimbase.h"
  11. #include <windows.h>
  12. #undef LANGUAGE_C
  13. #undef MIPSEB
  14. #undef MIPSEL
  15. #undef PPC
  16. #undef R3000
  17. #undef R4000
  18. #undef i386
  19. #undef linux
  20. #undef mips
  21. #undef near
  22. #undef far
  23. #undef powerpc
  24. #undef unix
  25. typedef struct NimStringDesc NimStringDesc;
  26. typedef struct TGenericSeq TGenericSeq;
  27. typedef struct tyObject_Channel_ue40Uq6h8bju5uDpfFIWKQ tyObject_Channel_ue40Uq6h8bju5uDpfFIWKQ;
  28. typedef struct TNimType TNimType;
  29. typedef struct tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg;
  30. typedef struct tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ;
  31. typedef struct tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg;
  32. typedef struct tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw;
  33. typedef struct tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA;
  34. typedef struct tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw;
  35. typedef struct tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw;
  36. typedef struct tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg;
  37. typedef struct tyTuple_ujsjpB2O9cjj3uDHsXbnSzg tyTuple_ujsjpB2O9cjj3uDHsXbnSzg;
  38. typedef struct tyObject_GcThread_hgJQSlfXDOK3SwSHjeZBXg tyObject_GcThread_hgJQSlfXDOK3SwSHjeZBXg;
  39. typedef struct Exception Exception;
  40. typedef struct tySequence_WF89a8QyKeDCh4DYWTmSiBg tySequence_WF89a8QyKeDCh4DYWTmSiBg;
  41. typedef struct TSafePoint TSafePoint;
  42. typedef struct GcFrameHeader GcFrameHeader;
  43. typedef struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ;
  44. typedef struct tyObject_GcStack_7fytPA5bBsob6See21YMRA tyObject_GcStack_7fytPA5bBsob6See21YMRA;
  45. typedef struct tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w;
  46. typedef struct tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g;
  47. typedef struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg;
  48. typedef struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ;
  49. typedef struct tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg;
  50. typedef struct tyObject_SharedList_JI9cx34TL8n3aOKF6tSMBUw tyObject_SharedList_JI9cx34TL8n3aOKF6tSMBUw;
  51. typedef struct tyObject_SharedListNodecolonObjectType__KGw0YAw6W9aSz3Sr9aXGu7zg tyObject_SharedListNodecolonObjectType__KGw0YAw6W9aSz3Sr9aXGu7zg;
  52. struct TGenericSeq {
  53. NI len;
  54. NI reserved;
  55. };
  56. struct NimStringDesc {
  57. TGenericSeq Sup;
  58. NIM_CHAR data[SEQ_DECL_SIZE];
  59. };
  60. typedef NimStringDesc* tyArray_nHXaesL0DJZHyVS07ARPRA[1];
  61. typedef tyObject_SmallChunk_tXn60W2f8h3jgAYdEmy5NQ* tyArray_SiRwrEKZdLgxqz9a9aoVBglg[512];
  62. typedef NU32 tyArray_BHbOSqU1t9b3Gt7K2c6fQig[24];
  63. typedef tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* tyArray_N1u1nqOgmuJN9cSZrnMHgOQ[32];
  64. typedef tyArray_N1u1nqOgmuJN9cSZrnMHgOQ tyArray_B6durA4ZCi1xjJvRtyYxMg[24];
  65. typedef tyObject_Trunk_W0r8S0Y3UGke6T9bIUWnnuw* tyArray_lh2A89ahMmYg9bCmpVaplLbA[256];
  66. struct tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA {
  67. tyArray_lh2A89ahMmYg9bCmpVaplLbA data;
  68. };
  69. typedef tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* tyArray_0aOLqZchNi8nWtMTi8ND8w[2];
  70. struct tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw {
  71. tyArray_0aOLqZchNi8nWtMTi8ND8w link;
  72. NI key;
  73. NI upperBound;
  74. NI level;
  75. };
  76. struct tyTuple_ujsjpB2O9cjj3uDHsXbnSzg {
  77. tyObject_BigChunk_Rv9c70Uhp2TytkX7eH78qEg* Field0;
  78. NI Field1;
  79. };
  80. typedef tyTuple_ujsjpB2O9cjj3uDHsXbnSzg tyArray_LzOv2eCDGiceMKQstCLmhw[30];
  81. struct tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg {
  82. NI len;
  83. tyArray_LzOv2eCDGiceMKQstCLmhw chunks;
  84. tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg* next;
  85. };
  86. struct tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg {
  87. NI minLargeObj;
  88. NI maxLargeObj;
  89. tyArray_SiRwrEKZdLgxqz9a9aoVBglg freeSmallChunks;
  90. NU32 flBitmap;
  91. tyArray_BHbOSqU1t9b3Gt7K2c6fQig slBitmap;
  92. tyArray_B6durA4ZCi1xjJvRtyYxMg matrix;
  93. tyObject_LLChunk_XsENErzHIZV9bhvyJx56wGw* llmem;
  94. NI currMem;
  95. NI maxMem;
  96. NI freeMem;
  97. NI occ;
  98. NI lastSize;
  99. tyObject_IntSet_EZObFrE3NC9bIb3YMkY9crZA chunkStarts;
  100. tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* root;
  101. tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* deleted;
  102. tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* last;
  103. tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw* freeAvlNodes;
  104. NIM_BOOL locked;
  105. NIM_BOOL blockChunkSizeIncrease;
  106. NI nextChunkSize;
  107. tyObject_AvlNode_IaqjtwKhxLEpvDS9bct9blEw bottomData;
  108. tyObject_HeapLinks_PDV1HBZ8CQSQJC9aOBFNRSg heapLinks;
  109. };
  110. struct tyObject_Channel_ue40Uq6h8bju5uDpfFIWKQ {
  111. NI rd;
  112. NI wr;
  113. NI count;
  114. NI mask;
  115. NI maxItems;
  116. NU8* data;
  117. CRITICAL_SECTION lock;
  118. NI cond;
  119. TNimType* elemType;
  120. NIM_BOOL ready;
  121. tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg region;
  122. };
  123. typedef NF tyArray_iV2wVpdhi9coq9cstlcqapXg[2001];
  124. struct tyObject_GcThread_hgJQSlfXDOK3SwSHjeZBXg {
  125. tyArray_iV2wVpdhi9coq9cstlcqapXg tls;
  126. };
  127. typedef N_NIMCALL_PTR(NIM_BOOL, tyProc_9axCnCRMUx32AHzFgBrzSMg) (Exception* e);
  128. typedef struct {
  129. N_NIMCALL_PTR(void, ClP_0) (void* ClE_0);
  130. void* ClE_0;
  131. } tyProc_IIomJ6ptE6vfJ5zRbATgkQ;
  132. struct tyObject_GcStack_7fytPA5bBsob6See21YMRA {
  133. void* bottom;
  134. };
  135. struct tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w {
  136. NI len;
  137. NI cap;
  138. tyObject_Cell_1zcF9cV8XIAtbN8h5HRUB8g** d;
  139. };
  140. struct tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg {
  141. NI stackScans;
  142. NI cycleCollections;
  143. NI maxThreshold;
  144. NI maxStackSize;
  145. NI maxStackCells;
  146. NI cycleTableSize;
  147. NI64 maxPause;
  148. };
  149. struct tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ {
  150. NI counter;
  151. NI max;
  152. tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg* head;
  153. tyObject_PageDesc_fublkgIY4LG3mT51LU2WHg** data;
  154. };
  155. struct tyObject_SharedList_JI9cx34TL8n3aOKF6tSMBUw {
  156. tyObject_SharedListNodecolonObjectType__KGw0YAw6W9aSz3Sr9aXGu7zg* head;
  157. tyObject_SharedListNodecolonObjectType__KGw0YAw6W9aSz3Sr9aXGu7zg* tail;
  158. CRITICAL_SECTION lock;
  159. };
  160. struct tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ {
  161. tyObject_GcStack_7fytPA5bBsob6See21YMRA stack;
  162. NI cycleThreshold;
  163. tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w zct;
  164. tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w decStack;
  165. tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w tempStack;
  166. NI recGcLock;
  167. tyObject_MemRegion_x81NhDv59b8ercDZ9bi85jyg region;
  168. tyObject_GcStat_0RwLoVBHZPfUAcLczmfQAg stat;
  169. tyObject_CellSet_jG87P0AI9aZtss9ccTYBIISQ marked;
  170. tyObject_CellSeq_Axo1XVm9aaQueTOldv8le5w additionalRoots;
  171. tyObject_SharedList_JI9cx34TL8n3aOKF6tSMBUw toDispose;
  172. NI gcThreadId;
  173. };
  174. struct tySequence_WF89a8QyKeDCh4DYWTmSiBg {
  175. TGenericSeq Sup;
  176. tyProc_IIomJ6ptE6vfJ5zRbATgkQ data[SEQ_DECL_SIZE];
  177. };
  178. typedef struct {tyProc_9axCnCRMUx32AHzFgBrzSMg localRaiseHook_EIvMhANBvB9cp2Ezvt29cADg;
  179. tySequence_WF89a8QyKeDCh4DYWTmSiBg* threadDestructionHandlers_8OmU3x0fNdA0DLtOmU3kWw;
  180. NI threadId_wzrdPYhtL9czkCWS4o9an9cRw;
  181. TFrame* framePtr_HRfVMH3jYeBJz6Q6X9b6Ptw;
  182. TSafePoint* excHandler_rqLlY5bs9atDw2OXYqJEn5g;
  183. Exception* currException_9bVPeDJlYTi9bQApZpfH8wjg;
  184. NU raise_counter_f3bDNr19aSiOhd9b8qXLIR7Q;
  185. GcFrameHeader* gcFramePtr_ot48iojqko9aFxGhyjjjVaA;
  186. tyObject_GcHeap_1TRH1TZMaVZTnLNcIHuNFQ gch_IcYaEuuWivYAS86vFMTS3Q;
  187. tyObject_Channel_ue40Uq6h8bju5uDpfFIWKQ channel_qbN0fFhCJAyjjFkT1uVufg;
  188. } NimThreadVars;
  189. N_NIMCALL(void, echoBinSafe)(NimStringDesc** args, NI argsLen_0);
  190. N_LIB_PRIVATE N_NIMCALL(void, a_Ak9bvQf5hr5bnkcYq9cDinOw)(void);
  191. static N_INLINE(void*, GetThreadLocalVars)(void);
  192. N_LIB_PRIVATE N_NIMCALL(void*, threadVarGetValue_RA7AnSIB7ATZq3Th1d9czYg)(NI32 dwTlsIndex);
  193. static N_INLINE(void, nimFrame)(TFrame* s);
  194. N_LIB_PRIVATE N_NOINLINE(void, stackOverflow_II46IjNZztN9bmbxUD8dt8g)(void);
  195. static N_INLINE(void, popFrame)(void);
  196. static N_INLINE(void, initStackBottomWith)(void* locals);
  197. N_NOINLINE(void, nimGC_setStackBottom)(void* theStackBottom);
  198. static N_INLINE(void, initThreadVarsEmulation)(void);
  199. N_LIB_PRIVATE N_NIMCALL(void, stdlib_locksInit000)(void);
  200. N_LIB_PRIVATE N_NIMCALL(void, stdlib_locksDatInit000)(void);
  201. N_LIB_PRIVATE N_NIMCALL(void, stdlib_sharedlistInit000)(void);
  202. N_LIB_PRIVATE N_NIMCALL(void, stdlib_sharedlistDatInit000)(void);
  203. N_LIB_PRIVATE N_NIMCALL(void, systemInit000)(void);
  204. N_LIB_PRIVATE N_NIMCALL(void, systemDatInit000)(void);
  205. N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void);
  206. N_LIB_PRIVATE N_NIMCALL(void, testDatInit000)(void);
  207. extern NI32 globalsSlot_ciXDZu9c27pHpCRMoz4RIgw;
  208. extern tyObject_GcThread_hgJQSlfXDOK3SwSHjeZBXg mainThread_6r3APOnKvB9aL9atazGvT52A;
  209. STRING_LITERAL(TM_ipcYmBC9bj9a1BW35ABoB1Kw_3, "1", 1);
  210. NIM_CONST tyArray_nHXaesL0DJZHyVS07ARPRA TM_ipcYmBC9bj9a1BW35ABoB1Kw_2 = {((NimStringDesc*) &TM_ipcYmBC9bj9a1BW35ABoB1Kw_3)}
  211. ;
  212. STRING_LITERAL(TM_ipcYmBC9bj9a1BW35ABoB1Kw_5, "2", 1);
  213. NIM_CONST tyArray_nHXaesL0DJZHyVS07ARPRA TM_ipcYmBC9bj9a1BW35ABoB1Kw_4 = {((NimStringDesc*) &TM_ipcYmBC9bj9a1BW35ABoB1Kw_5)}
  214. ;
  215.  
  216. static N_INLINE(void*, GetThreadLocalVars)(void) {
  217. void* result;
  218. void* T1_;
  219. result = (void*)0;
  220. T1_ = (void*)0;
  221. T1_ = threadVarGetValue_RA7AnSIB7ATZq3Th1d9czYg(globalsSlot_ciXDZu9c27pHpCRMoz4RIgw);
  222. result = ((void*) ((*((tyObject_GcThread_hgJQSlfXDOK3SwSHjeZBXg*) (T1_))).tls));
  223. return result;
  224. }
  225.  
  226. static N_INLINE(void, nimFrame)(TFrame* s) {
  227. NI T1_;
  228. NimThreadVars* NimTV_;
  229. NimTV_ = (NimThreadVars*) GetThreadLocalVars();
  230. T1_ = (NI)0;
  231. {
  232. if (!(NimTV_->framePtr_HRfVMH3jYeBJz6Q6X9b6Ptw == NIM_NIL)) goto LA4_;
  233. T1_ = ((NI) 0);
  234. }
  235. goto LA2_;
  236. LA4_: ;
  237. {
  238. T1_ = ((NI) ((NI16)((*NimTV_->framePtr_HRfVMH3jYeBJz6Q6X9b6Ptw).calldepth + ((NI16) 1))));
  239. }
  240. LA2_: ;
  241. (*s).calldepth = ((NI16) (T1_));
  242. (*s).prev = NimTV_->framePtr_HRfVMH3jYeBJz6Q6X9b6Ptw;
  243. NimTV_->framePtr_HRfVMH3jYeBJz6Q6X9b6Ptw = s;
  244. {
  245. if (!((*s).calldepth == ((NI16) 2000))) goto LA9_;
  246. stackOverflow_II46IjNZztN9bmbxUD8dt8g();
  247. }
  248. LA9_: ;
  249. }
  250.  
  251. static N_INLINE(void, popFrame)(void) {
  252. NimThreadVars* NimTV_;
  253. NimTV_ = (NimThreadVars*) GetThreadLocalVars();
  254. NimTV_->framePtr_HRfVMH3jYeBJz6Q6X9b6Ptw = (*NimTV_->framePtr_HRfVMH3jYeBJz6Q6X9b6Ptw).prev;
  255. }
  256.  
  257. N_LIB_PRIVATE N_NIMCALL(void, a_Ak9bvQf5hr5bnkcYq9cDinOw)(void) {
  258. nimfr_("a", "test.nim");
  259. popFrame();
  260. }
  261.  
  262. static N_INLINE(void, initStackBottomWith)(void* locals) {
  263. nimGC_setStackBottom(locals);
  264. }
  265.  
  266. static N_INLINE(void, initThreadVarsEmulation)(void) {
  267. globalsSlot_ciXDZu9c27pHpCRMoz4RIgw = TlsAlloc();
  268. TlsSetValue(globalsSlot_ciXDZu9c27pHpCRMoz4RIgw, ((void*) ((&mainThread_6r3APOnKvB9aL9atazGvT52A))));
  269. }
  270. void PreMainInner(void) {
  271. systemInit000();
  272. stdlib_locksDatInit000();
  273. stdlib_sharedlistDatInit000();
  274. testDatInit000();
  275. stdlib_locksInit000();
  276. stdlib_sharedlistInit000();
  277. }
  278.  
  279. void PreMain(void) {
  280. void (*volatile inner)(void);
  281. systemDatInit000();
  282. inner = PreMainInner;
  283. initThreadVarsEmulation();
  284. initStackBottomWith((void *)&inner);
  285. (*inner)();
  286. }
  287.  
  288. int cmdCount;
  289. char** cmdLine;
  290. char** gEnv;
  291. N_CDECL(void, NimMainInner)(void) {
  292. NimMainModule();
  293. }
  294.  
  295. N_CDECL(void, NimMain)(void) {
  296. void (*volatile inner)(void);
  297. PreMain();
  298. inner = NimMainInner;
  299. initStackBottomWith((void *)&inner);
  300. (*inner)();
  301. }
  302.  
  303. int main(int argc, char** args, char** env) {
  304. cmdLine = args;
  305. cmdCount = argc;
  306. gEnv = env;
  307. NimMain();
  308. return nim_program_result;
  309. }
  310.  
  311. NI NimThreadVarsSize(){return (NI)sizeof(NimThreadVars);}
  312. N_LIB_PRIVATE N_NIMCALL(void, NimMainModule)(void) {
  313. {
  314. TFrame FR_; FR_.len = 0;
  315. NimThreadVars* NimTV_;
  316. NimTV_ = (NimThreadVars*) GetThreadLocalVars();
  317. }
  318. nimfr_("test", "test.nim");
  319. nimln_(1, "test.nim");
  320. echoBinSafe(TM_ipcYmBC9bj9a1BW35ABoB1Kw_2, 1);
  321. nimln_(4, "test.nim");
  322. a_Ak9bvQf5hr5bnkcYq9cDinOw();
  323. nimln_(5, "test.nim");
  324. echoBinSafe(TM_ipcYmBC9bj9a1BW35ABoB1Kw_4, 1);
  325. popFrame();
  326. }
  327.  
  328. N_LIB_PRIVATE N_NIMCALL(void, testDatInit000)(void) {
  329. }
Advertisement
Add Comment
Please, Sign In to add comment