@@ -534,6 +534,12 @@ typedef const void *(*ir_get_veneer_t)(ir_ctx *ctx, const void *addr);
534
534
typedef bool (* ir_set_veneer_t )(ir_ctx * ctx , const void * addr , const void * veneer );
535
535
#endif
536
536
537
+ typedef struct _ir_code_buffer {
538
+ void * start ;
539
+ void * end ;
540
+ void * pos ;
541
+ } ir_code_buffer ;
542
+
537
543
struct _ir_ctx {
538
544
ir_insn * ir_base ; /* two directional array - instructions grow down, constants grow up */
539
545
ir_ref insns_count ; /* number of instructions stored in instructions buffer */
@@ -593,12 +599,9 @@ struct _ir_ctx {
593
599
uint32_t entries_count ;
594
600
uint32_t * entries ; /* array of ENTRY blocks */
595
601
void * osr_entry_loads ;
596
- void * code_buffer ;
597
- size_t code_buffer_size ;
602
+ ir_code_buffer * code_buffer ;
598
603
#if defined(IR_TARGET_AARCH64 )
599
604
int32_t deoptimization_exits ;
600
- int32_t veneers_size ;
601
- uint32_t code_size ;
602
605
ir_get_exit_addr_t get_exit_addr ;
603
606
ir_get_veneer_t get_veneer ;
604
607
ir_set_veneer_t set_veneer ;
@@ -857,7 +860,7 @@ int ir_patch(const void *code, size_t size, uint32_t jmp_table_size, const void
857
860
uint32_t ir_cpuinfo (void );
858
861
859
862
/* Deoptimization helpers */
860
- const void * ir_emit_exitgroup (uint32_t first_exit_point , uint32_t exit_points_per_group , const void * exit_addr , void * code_buffer , size_t code_buffer_size , size_t * size_ptr );
863
+ const void * ir_emit_exitgroup (uint32_t first_exit_point , uint32_t exit_points_per_group , const void * exit_addr , ir_code_buffer * code_buffer , size_t * size_ptr );
861
864
862
865
/* A reference IR JIT compiler */
863
866
IR_ALWAYS_INLINE void * ir_jit_compile (ir_ctx * ctx , int opt_level , size_t * size )
0 commit comments