Lines Matching refs:stack
251 struct sljit_stack *stack; in sljit_allocate_stack() local
280 stack = (struct sljit_stack*)SLJIT_MALLOC(sizeof(struct sljit_stack), allocator_data); in sljit_allocate_stack()
281 if (!stack) in sljit_allocate_stack()
290 SLJIT_FREE(stack, allocator_data); in sljit_allocate_stack()
293 stack->max_limit = (sljit_u8 *)ptr; in sljit_allocate_stack()
294 stack->base = stack->max_limit + max_limit; in sljit_allocate_stack()
295 stack->limit = stack->base; in sljit_allocate_stack()
296 if (sljit_stack_resize(stack, stack->base - limit)) { in sljit_allocate_stack()
297 sljit_free_stack(stack, allocator_data); in sljit_allocate_stack()
303 SLJIT_FREE(stack, allocator_data); in sljit_allocate_stack()
306 stack->max_limit = (sljit_u8 *)ptr; in sljit_allocate_stack()
307 stack->base = stack->max_limit + max_limit; in sljit_allocate_stack()
308 stack->limit = stack->base - limit; in sljit_allocate_stack()
315 SLJIT_FREE(stack, allocator_data); in sljit_allocate_stack()
322 SLJIT_FREE(stack, allocator_data); in sljit_allocate_stack()
325 stack->max_limit = (sljit_u8 *)ptr; in sljit_allocate_stack()
326 stack->base = stack->max_limit + max_limit; in sljit_allocate_stack()
327 stack->limit = stack->base - limit; in sljit_allocate_stack()
329 stack->top = stack->base; in sljit_allocate_stack()
330 return stack; in sljit_allocate_stack()
335 SLJIT_API_FUNC_ATTRIBUTE void SLJIT_CALL sljit_free_stack(struct sljit_stack *stack, void *allocato… in sljit_free_stack() argument
339 VirtualFree((void*)stack->max_limit, 0, MEM_RELEASE); in sljit_free_stack()
341 uvm_km_free(kernel_map, (vaddr_t)stack->max_limit, in sljit_free_stack()
342 stack->base - stack->max_limit, UVM_KMF_WIRED); in sljit_free_stack()
344 munmap((void*)stack->max_limit, stack->base - stack->max_limit); in sljit_free_stack()
346 SLJIT_FREE(stack, allocator_data); in sljit_free_stack()
349 SLJIT_API_FUNC_ATTRIBUTE sljit_sw SLJIT_CALL sljit_stack_resize(struct sljit_stack *stack, sljit_u8… in sljit_stack_resize() argument
356 if ((new_limit < stack->max_limit) || (new_limit >= stack->base)) in sljit_stack_resize()
360 aligned_old_limit = ((sljit_uw)stack->limit) & ~sljit_page_align; in sljit_stack_resize()
371 stack->limit = new_limit; in sljit_stack_resize()
374 if (new_limit <= stack->limit) { in sljit_stack_resize()
375 stack->limit = new_limit; in sljit_stack_resize()
380 aligned_old_limit = ((sljit_uw)stack->limit) & ~sljit_page_align; in sljit_stack_resize()
390 stack->limit = new_limit; in sljit_stack_resize()