@@ -111,6 +111,7 @@ static void destroy_extended_registers(Context *ctx, unsigned int live)
111111
112112static void jit_trim_live_regs (Context * ctx , uint32_t live )
113113{
114+ TRACE ("jit_trim_live_regs: ctx->process_id = %d, live = %d\n" , ctx -> process_id , live );
114115 if (UNLIKELY (!list_is_empty (& ctx -> extended_x_regs ))) {
115116 destroy_extended_registers (ctx , live );
116117 }
@@ -126,6 +127,7 @@ static void jit_trim_live_regs(Context *ctx, uint32_t live)
126127static Context * jit_return (Context * ctx , JITState * jit_state )
127128{
128129 int module_index = ctx -> cp >> 24 ;
130+ TRACE ("jit_return: ctx->cp = %d, module_index = %d, offset = %d\n" , (int ) ctx -> cp , module_index , (int ) (ctx -> cp & 0xFFFFFF ) >> 2 );
129131 Module * mod = globalcontext_get_module_by_index (ctx -> global , module_index );
130132
131133 // Native case
@@ -145,6 +147,7 @@ static Context *jit_return(Context *ctx, JITState *jit_state)
145147
146148static Context * jit_terminate_context (Context * ctx , JITState * jit_state )
147149{
150+ TRACE ("jit_terminate_context: ctx->process_id = %d\n" , ctx -> process_id );
148151 TRACE ("-- Code execution finished for %i--\n" , ctx -> process_id );
149152 GlobalContext * global = ctx -> global ;
150153 if (ctx -> leader ) {
@@ -157,6 +160,7 @@ static Context *jit_terminate_context(Context *ctx, JITState *jit_state)
157160
158161static Context * jit_handle_error (Context * ctx , JITState * jit_state , int offset )
159162{
163+ TRACE ("jit_terminate_context: ctx->process_id = %d, offset = %d\n" , ctx -> process_id , offset );
160164 if (offset || term_is_invalid_term (ctx -> x [2 ])) {
161165 ctx -> x [2 ] = stacktrace_create_raw (ctx , jit_state -> module , offset , ctx -> x [0 ]);
162166 }
@@ -223,12 +227,14 @@ static void set_error(Context *ctx, JITState *jit_state, int offset, term error_
223227
224228static Context * jit_raise_error (Context * ctx , JITState * jit_state , int offset , term error_type_atom )
225229{
230+ TRACE ("jit_raise_error: ctx->process_id = %d, offset = %d\n" , ctx -> process_id , offset );
226231 set_error (ctx , jit_state , offset , error_type_atom );
227232 return jit_handle_error (ctx , jit_state , 0 );
228233}
229234
230235static Context * jit_raise_error_tuple (Context * ctx , JITState * jit_state , int offset , term error_atom , term arg1 )
231236{
237+ TRACE ("jit_raise_error_tuple: ctx->process_id = %d, offset = %d\n" , ctx -> process_id , offset );
232238 // We can gc as we are raising
233239 if (UNLIKELY (memory_ensure_free_with_roots (ctx , TUPLE_SIZE (2 ), 1 , & arg1 , MEMORY_CAN_SHRINK ) != MEMORY_GC_OK )) {
234240 set_error (ctx , jit_state , offset , OUT_OF_MEMORY_ATOM );
@@ -245,6 +251,7 @@ static Context *jit_raise_error_tuple(Context *ctx, JITState *jit_state, int off
245251
246252static Context * jit_raise (Context * ctx , JITState * jit_state , int offset , term stacktrace , term exc_value )
247253{
254+ TRACE ("jit_raise: ctx->process_id = %d, offset = %d\n" , ctx -> process_id , offset );
248255 ctx -> x [0 ] = stacktrace_exception_class (stacktrace );
249256 ctx -> x [1 ] = exc_value ;
250257 ctx -> x [2 ] = stacktrace_create_raw (ctx , jit_state -> module , offset , stacktrace );
@@ -253,6 +260,7 @@ static Context *jit_raise(Context *ctx, JITState *jit_state, int offset, term st
253260
254261static Context * jit_schedule_next_cp (Context * ctx , JITState * jit_state )
255262{
263+ TRACE ("jit_schedule_next_cp: ctx->process_id = %d\n" , ctx -> process_id );
256264 ctx -> saved_ip = jit_state -> continuation ;
257265 ctx -> saved_module = jit_state -> module ;
258266 jit_state -> remaining_reductions = 0 ;
@@ -261,6 +269,7 @@ static Context *jit_schedule_next_cp(Context *ctx, JITState *jit_state)
261269
262270static Context * jit_schedule_wait_cp (Context * ctx , JITState * jit_state )
263271{
272+ TRACE ("jit_schedule_wait_cp: ctx->process_id = %d\n" , ctx -> process_id );
264273 ctx -> saved_ip = jit_state -> continuation ;
265274 ctx -> saved_module = jit_state -> module ;
266275 jit_state -> remaining_reductions = 0 ;
@@ -291,6 +300,7 @@ enum TrapAndLoadResult jit_trap_and_load(Context *ctx, Module *mod, uint32_t lab
291300
292301static Context * jit_call_ext (Context * ctx , JITState * jit_state , int offset , int arity , int index , int n_words )
293302{
303+ TRACE ("jit_call_ext: arity=%d index=%d n_words=%d\n" , arity , index , n_words );
294304 const struct ExportedFunction * func = module_resolve_function (jit_state -> module , index , ctx -> global );
295305 if (IS_NULL_PTR (func )) {
296306 return jit_raise_error (ctx , jit_state , 0 , UNDEF_ATOM );
@@ -440,11 +450,13 @@ static Context *jit_call_ext(Context *ctx, JITState *jit_state, int offset, int
440450
441451static term jit_module_get_atom_term_by_id (JITState * jit_state , int atom_index )
442452{
453+ TRACE ("jit_module_get_atom_term_by_id: atom_index=%d\n" , atom_index );
443454 return module_get_atom_term_by_id (jit_state -> module , atom_index );
444455}
445456
446457static bool jit_allocate (Context * ctx , JITState * jit_state , uint32_t stack_need , uint32_t heap_need , uint32_t live )
447458{
459+ TRACE ("jit_allocate: stack_need=%u heap_need=%u live=%u\n" , stack_need , heap_need , live );
448460 if (ctx -> heap .root -> next || ((ctx -> heap .heap_ptr + heap_need > ctx -> e - (stack_need + 1 )))) {
449461 TRIM_LIVE_REGS (live );
450462 if (UNLIKELY (memory_ensure_free_with_roots (ctx , heap_need + stack_need + 1 , live , ctx -> x , MEMORY_CAN_SHRINK ) != MEMORY_GC_OK )) {
@@ -459,13 +471,15 @@ static bool jit_allocate(Context *ctx, JITState *jit_state, uint32_t stack_need,
459471
460472static void * jit_get_imported_bif (JITState * jit_state , uint32_t bif )
461473{
474+ TRACE ("jit_get_imported_bif: bif=%u\n" , bif );
462475 const struct ExportedFunction * exported_bif = jit_state -> module -> imported_funcs [bif ];
463476 void * result = EXPORTED_FUNCTION_TO_BIF (exported_bif )-> bif0_ptr ;
464477 return result ;
465478}
466479
467480static bool jit_deallocate (Context * ctx , JITState * jit_state , uint32_t n_words )
468481{
482+ TRACE ("jit_deallocate: n_words=%u\n" , n_words );
469483 ctx -> cp = ctx -> e [n_words ];
470484 ctx -> e += n_words + 1 ;
471485 // Hopefully, we only need x[0]
@@ -484,11 +498,13 @@ static TermCompareResult jit_term_compare(Context *ctx, JITState *jit_state, ter
484498 if (UNLIKELY (result == 0 )) {
485499 set_error (ctx , jit_state , 0 , OUT_OF_MEMORY_ATOM );
486500 }
501+ TRACE ("jit_term_compare: t=%p other=%p opts=%d, result=%d\n" , (void * ) t , (void * ) other , opts , result );
487502 return result ;
488503}
489504
490505static bool jit_test_heap (Context * ctx , JITState * jit_state , uint32_t heap_need , uint32_t live_registers )
491506{
507+ TRACE ("jit_test_heap: heap_need=%u live_registers=%u\n" , heap_need , live_registers );
492508 size_t heap_free = context_avail_free_memory (ctx );
493509 // if we need more heap space than is currently free, then try to GC the needed space
494510 if (heap_free < heap_need ) {
@@ -512,18 +528,21 @@ static bool jit_test_heap(Context *ctx, JITState *jit_state, uint32_t heap_need,
512528
513529static term jit_put_list (Context * ctx , term head , term tail )
514530{
531+ TRACE ("jit_put_list: head=%p tail=%p\n" , (void * ) head , (void * ) tail );
515532 term * list_elem = term_list_alloc (& ctx -> heap );
516533 term t = term_list_init_prepend (list_elem , head , tail );
517534 return t ;
518535}
519536
520537static term jit_module_load_literal (Context * ctx , JITState * jit_state , int index )
521538{
539+ TRACE ("jit_module_load_literal: index=%d\n" , index );
522540 return module_load_literal (jit_state -> module , index , ctx );
523541}
524542
525543static term jit_alloc_boxed_integer_fragment (Context * ctx , avm_int64_t value )
526544{
545+ TRACE ("jit_alloc_boxed_integer_fragment: value=%lld\n" , (long long ) value );
527546#if BOXED_TERMS_REQUIRED_FOR_INT64 > 1
528547 if ((value < AVM_INT_MIN ) || (value > AVM_INT_MAX )) {
529548 Heap heap ;
@@ -580,11 +599,13 @@ static term maybe_alloc_boxed_integer_fragment(Context *ctx, avm_int64_t value)
580599
581600static term jit_term_alloc_tuple (Context * ctx , uint32_t size )
582601{
602+ TRACE ("jit_term_alloc_tuple: size=%u\n" , size );
583603 return term_alloc_tuple (size , & ctx -> heap );
584604}
585605
586606static term jit_term_alloc_fun (Context * ctx , JITState * jit_state , uint32_t fun_index , uint32_t numfree )
587607{
608+ TRACE ("jit_term_alloc_fun: fun_index=%u numfree=%u\n" , fun_index , numfree );
588609 size_t size = numfree + BOXED_FUN_SIZE ;
589610 term * boxed_func = memory_heap_alloc (& ctx -> heap , size );
590611
@@ -596,6 +617,7 @@ static term jit_term_alloc_fun(Context *ctx, JITState *jit_state, uint32_t fun_i
596617
597618static bool jit_send (Context * ctx , JITState * jit_state )
598619{
620+ TRACE ("jit_send: recipient=%p message=%p\n" , (void * ) ctx -> x [0 ], (void * ) ctx -> x [1 ]);
599621 term recipient_term = ctx -> x [0 ];
600622 if (UNLIKELY (term_is_external_pid (recipient_term ) || term_is_tuple (recipient_term ))) {
601623 term return_value = dist_send_message (recipient_term , ctx -> x [1 ], ctx );
@@ -627,6 +649,7 @@ static bool jit_send(Context *ctx, JITState *jit_state)
627649
628650static term * jit_extended_register_ptr (Context * ctx , unsigned int index )
629651{
652+ TRACE ("jit_extended_register_ptr: index=%u\n" , index );
630653 struct ListHead * item ;
631654 LIST_FOR_EACH (item , & ctx -> extended_x_regs ) {
632655 struct ExtendedRegister * ext_reg = GET_LIST_ENTRY (item , struct ExtendedRegister , head );
@@ -644,6 +667,7 @@ static term *jit_extended_register_ptr(Context *ctx, unsigned int index)
644667
645668static Context * jit_process_signal_messages (Context * ctx , JITState * jit_state )
646669{
670+ TRACE ("jit_process_signal_messages\n" );
647671 MailboxMessage * signal_message = mailbox_process_outer_list (& ctx -> mailbox );
648672 bool handle_error = false;
649673 bool reprocess_outer = false;
@@ -787,41 +811,48 @@ static Context *jit_process_signal_messages(Context *ctx, JITState *jit_state)
787811
788812static term jit_mailbox_peek (Context * ctx )
789813{
814+ TRACE ("jit_mailbox_peek: ctx->process_id=%d\n" , ctx -> process_id );
790815 term out = term_invalid_term ();
791816 mailbox_peek (ctx , & out );
792817 return out ;
793818}
794819
795820static void jit_mailbox_remove_message (Context * ctx )
796821{
822+ TRACE ("jit_mailbox_remove_message: ctx->process_id=%d\n" , ctx -> process_id );
797823 mailbox_remove_message (& ctx -> mailbox , & ctx -> heap );
798824}
799825
800826static void jit_timeout (Context * ctx )
801827{
828+ TRACE ("jit_timeout: ctx->process_id=%d\n" , ctx -> process_id );
802829 context_update_flags (ctx , ~WaitingTimeoutExpired , NoFlags );
803830 mailbox_reset (& ctx -> mailbox );
804831}
805832
806833static void jit_mailbox_next (Context * ctx )
807834{
835+ TRACE ("jit_mailbox_next: ctx->process_id=%d\n" , ctx -> process_id );
808836 mailbox_next (& ctx -> mailbox );
809837}
810838
811839static void jit_cancel_timeout (Context * ctx )
812840{
841+ TRACE ("jit_cancel_timeout: ctx->process_id=%d\n" , ctx -> process_id );
813842 if (context_get_flags (ctx , WaitingTimeout | WaitingTimeoutExpired )) {
814843 scheduler_cancel_timeout (ctx );
815844 }
816845}
817846
818847static void jit_clear_timeout_flag (Context * ctx )
819848{
849+ TRACE ("jit_clear_timeout_flag: ctx->process_id=%d\n" , ctx -> process_id );
820850 context_update_flags (ctx , ~WaitingTimeoutExpired , NoFlags );
821851}
822852
823853static Context * jit_wait_timeout (Context * ctx , JITState * jit_state , term timeout , int label )
824854{
855+ TRACE ("jit_wait_timeout: timeout=%p label=%d\n" , (void * ) timeout , label );
825856 avm_int64_t t = 0 ;
826857 if (term_is_any_integer (timeout )) {
827858 t = term_maybe_unbox_int64 (timeout );
@@ -861,6 +892,7 @@ static Context *jit_wait_timeout(Context *ctx, JITState *jit_state, term timeout
861892
862893static Context * jit_wait_timeout_trap_handler (Context * ctx , JITState * jit_state , int label )
863894{
895+ TRACE ("jit_wait_timeout_trap_handler: label=%d\n" , label );
864896 if (UNLIKELY (!mailbox_has_next (& ctx -> mailbox ))) {
865897 // No message is here.
866898 // We were signaled for another reason.
@@ -928,6 +960,7 @@ static bool maybe_call_native(Context *ctx, atom_index_t module_name, atom_index
928960
929961static Context * jit_call_fun (Context * ctx , JITState * jit_state , int offset , term fun , unsigned int args_count )
930962{
963+ TRACE ("jit_call_fun: fun=%p args_count=%u\n" , (void * ) fun , args_count );
931964 Module * fun_module ;
932965 unsigned int fun_arity ;
933966 uint32_t n_freeze = 0 ;
@@ -1005,16 +1038,19 @@ static Context *jit_call_fun(Context *ctx, JITState *jit_state, int offset, term
10051038
10061039static term jit_term_from_float (Context * ctx , int freg )
10071040{
1041+ TRACE ("jit_term_from_float: freg=%d -- float = %f\n" , freg , ctx -> fr [freg ]);
10081042 return term_from_float (ctx -> fr [freg ], & ctx -> heap );
10091043}
10101044
10111045static void jit_term_conv_to_float (Context * ctx , term t , int freg )
10121046{
1047+ TRACE ("jit_term_conv_to_float: t=%p freg=%d\n" , (void * ) t , freg );
10131048 ctx -> fr [freg ] = term_conv_to_float (t );
10141049}
10151050
10161051static bool jit_fadd (Context * ctx , int freg1 , int freg2 , int freg3 )
10171052{
1053+ TRACE ("jit_fadd: freg1=%d [%f] freg2=%d [%f] freg3=%d\n" , freg1 , ctx -> fr [freg1 ], freg2 , ctx -> fr [freg2 ], freg3 );
10181054#ifdef HAVE_PRAGMA_STDC_FENV_ACCESS
10191055#pragma STDC FENV_ACCESS ON
10201056 feclearexcept (FE_OVERFLOW );
@@ -1034,6 +1070,7 @@ static bool jit_fadd(Context *ctx, int freg1, int freg2, int freg3)
10341070
10351071static bool jit_fsub (Context * ctx , int freg1 , int freg2 , int freg3 )
10361072{
1073+ TRACE ("jit_fsub: freg1=%d freg2=%d freg3=%d\n" , freg1 , freg2 , freg3 );
10371074#ifdef HAVE_PRAGMA_STDC_FENV_ACCESS
10381075#pragma STDC FENV_ACCESS ON
10391076 feclearexcept (FE_OVERFLOW );
@@ -1053,6 +1090,7 @@ static bool jit_fsub(Context *ctx, int freg1, int freg2, int freg3)
10531090
10541091static bool jit_fmul (Context * ctx , int freg1 , int freg2 , int freg3 )
10551092{
1093+ TRACE ("jit_fmul: freg1=%d freg2=%d freg3=%d\n" , freg1 , freg2 , freg3 );
10561094#ifdef HAVE_PRAGMA_STDC_FENV_ACCESS
10571095#pragma STDC FENV_ACCESS ON
10581096 feclearexcept (FE_OVERFLOW );
@@ -1072,6 +1110,7 @@ static bool jit_fmul(Context *ctx, int freg1, int freg2, int freg3)
10721110
10731111static bool jit_fdiv (Context * ctx , int freg1 , int freg2 , int freg3 )
10741112{
1113+ TRACE ("jit_fdiv: freg1=%d freg2=%d freg3=%d\n" , freg1 , freg2 , freg3 );
10751114#ifdef HAVE_PRAGMA_STDC_FENV_ACCESS
10761115#pragma STDC FENV_ACCESS ON
10771116 feclearexcept (FE_OVERFLOW | FE_DIVBYZERO );
@@ -1091,11 +1130,13 @@ static bool jit_fdiv(Context *ctx, int freg1, int freg2, int freg3)
10911130
10921131static void jit_fnegate (Context * ctx , int freg1 , int freg2 )
10931132{
1133+ TRACE ("jit_fnegate: freg1=%d freg2=%d\n" , freg1 , freg2 );
10941134 ctx -> fr [freg2 ] = - ctx -> fr [freg1 ];
10951135}
10961136
10971137static bool jit_catch_end (Context * ctx , JITState * jit_state )
10981138{
1139+ TRACE ("jit_catch_end\n" );
10991140 // C.f. https://www.erlang.org/doc/reference_manual/expressions.html#catch-and-throw
11001141 switch (term_to_atom_index (ctx -> x [0 ])) {
11011142 case THROW_ATOM_INDEX :
@@ -1138,6 +1179,7 @@ static bool jit_catch_end(Context *ctx, JITState *jit_state)
11381179
11391180static bool jit_memory_ensure_free_with_roots (Context * ctx , JITState * jit_state , int sz , int live , int flags )
11401181{
1182+ TRACE ("jit_memory_ensure_free_with_roots: sz=%d live=%d flags=%d\n" , sz , live , flags );
11411183 if (UNLIKELY (memory_ensure_free_with_roots (ctx , sz , live , ctx -> x , flags ) != MEMORY_GC_OK )) {
11421184 set_error (ctx , jit_state , 0 , OUT_OF_MEMORY_ATOM );
11431185 return false;
@@ -1147,11 +1189,13 @@ static bool jit_memory_ensure_free_with_roots(Context *ctx, JITState *jit_state,
11471189
11481190static term jit_term_alloc_bin_match_state (Context * ctx , term src , int slots )
11491191{
1192+ TRACE ("jit_term_alloc_bin_match_state: src=%p slots=%d\n" , (void * ) src , slots );
11501193 return term_alloc_bin_match_state (src , slots , & ctx -> heap );
11511194}
11521195
11531196static term jit_bitstring_extract_integer (Context * ctx , JITState * jit_state , term * bin_ptr , size_t offset , int n , int bs_flags )
11541197{
1198+ TRACE ("jit_bitstring_extract_integer: bin_ptr=%p offset=%d n=%d bs_flags=%d\n" , (void * ) bin_ptr , (int ) offset , n , bs_flags );
11551199 union maybe_unsigned_int64 value ;
11561200 bool status = bitstring_extract_integer (((term ) bin_ptr ) | TERM_PRIMARY_BOXED , offset , n , bs_flags , & value );
11571201 if (UNLIKELY (!status )) {
@@ -1166,6 +1210,7 @@ static term jit_bitstring_extract_integer(Context *ctx, JITState *jit_state, ter
11661210
11671211static term jit_bitstring_extract_float (Context * ctx , term * bin_ptr , size_t offset , int n , int bs_flags )
11681212{
1213+ TRACE ("jit_bitstring_extract_float: bin_ptr=%p offset=%d n=%d bs_flags=%d\n" , (void * ) bin_ptr , (int ) offset , n , bs_flags );
11691214 avm_float_t value ;
11701215 bool status ;
11711216 switch (n ) {
@@ -1187,11 +1232,13 @@ static term jit_bitstring_extract_float(Context *ctx, term *bin_ptr, size_t offs
11871232static size_t jit_term_sub_binary_heap_size (term * bin_ptr , size_t size )
11881233{
11891234 term binary = ((term ) bin_ptr ) | TERM_PRIMARY_BOXED ;
1235+ TRACE ("jit_term_sub_binary_heap_size: binary=%p size=%d\n" , (void * ) binary , (int ) size );
11901236 return term_sub_binary_heap_size (binary , size );
11911237}
11921238
11931239static term jit_term_maybe_create_sub_binary (Context * ctx , term binary , size_t offset , size_t len )
11941240{
1241+ TRACE ("jit_term_maybe_create_sub_binary: binary=%p offset=%d len=%d\n" , (void * ) binary , (int ) offset , (int ) len );
11951242 return term_maybe_create_sub_binary (binary , offset , len , & ctx -> heap , ctx -> global );
11961243}
11971244
@@ -1220,6 +1267,7 @@ static int jit_bitstring_utf16_size(int c)
12201267
12211268static term jit_term_create_empty_binary (Context * ctx , size_t len )
12221269{
1270+ TRACE ("jit_term_create_empty_binary: len=%d\n" , (int ) len );
12231271 return term_create_empty_binary (len , & ctx -> heap , ctx -> global );
12241272}
12251273
@@ -1272,6 +1320,7 @@ static int jit_bitstring_insert_utf16(term bin, size_t offset, int c, enum Bitst
12721320
12731321static void jit_bitstring_copy_module_str (Context * ctx , JITState * jit_state , term bin , size_t offset , int str_id , size_t len )
12741322{
1323+ TRACE ("jit_bitstring_copy_module_str: bin=%p offset=%d str_id=%d len=%d\n" , (void * ) bin , (int ) offset , str_id , (int ) len );
12751324 UNUSED (ctx );
12761325 uint8_t * dst = (uint8_t * ) term_binary_data (bin );
12771326 size_t remaining = 0 ;
@@ -1281,6 +1330,7 @@ static void jit_bitstring_copy_module_str(Context *ctx, JITState *jit_state, ter
12811330
12821331static int jit_bitstring_copy_binary (Context * ctx , JITState * jit_state , term t , size_t offset , term src , term size )
12831332{
1333+ TRACE ("jit_bitstring_copy_binary: t=%p offset=%d src=%p size=%p\n" , (void * ) t , (int ) offset , (void * ) src , (void * ) size );
12841334 if (offset % 8 ) {
12851335 set_error (ctx , jit_state , 0 , UNSUPPORTED_ATOM );
12861336 return -1 ;
@@ -1297,6 +1347,7 @@ static int jit_bitstring_copy_binary(Context *ctx, JITState *jit_state, term t,
12971347
12981348static Context * jit_apply (Context * ctx , JITState * jit_state , int offset , term module , term function , unsigned int arity )
12991349{
1350+ TRACE ("jit_apply: module=%p function=%p arity=%u\n" , (void * ) module , (void * ) function , arity );
13001351 atom_index_t module_name = term_to_atom_index (module );
13011352 atom_index_t function_name = term_to_atom_index (function );
13021353
@@ -1343,6 +1394,7 @@ static Context *jit_apply(Context *ctx, JITState *jit_state, int offset, term mo
13431394
13441395static void * jit_malloc (Context * ctx , JITState * jit_state , size_t sz )
13451396{
1397+ TRACE ("jit_malloc: sz=%d\n" , (int ) sz );
13461398 void * ptr = malloc (sz );
13471399 if (IS_NULL_PTR (ptr )) {
13481400 set_error (ctx , jit_state , 0 , OUT_OF_MEMORY_ATOM );
@@ -1383,6 +1435,7 @@ static bool sort_kv_pairs(term *kv, int size, GlobalContext *global)
13831435
13841436static term jit_put_map_assoc (Context * ctx , JITState * jit_state , term src , size_t new_entries , size_t num_elements , term * kv )
13851437{
1438+ TRACE ("jit_put_map_assoc: src=%p new_entries=%d num_elements=%d\n" , (void * ) src , (int ) new_entries , (int ) num_elements );
13861439 size_t src_size = term_get_map_size (src );
13871440 size_t new_map_size = src_size + new_entries ;
13881441 bool is_shared = new_entries == 0 ;
0 commit comments