Make x86inc support local variable array
This commit modifies the x86inc to allow explicit local buffer allocation and the corresponding stack pointer adjustment. Change-Id: I3cb2174e0242b5869a4ba0ca0cd240ee066836c3
This commit is contained in:
		
							
								
								
									
										17
									
								
								third_party/x86inc/x86inc.asm
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										17
									
								
								third_party/x86inc/x86inc.asm
									
									
									
									
										vendored
									
									
								
							@@ -395,6 +395,23 @@ DECLARE_REG_TMP_SIZE 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14
 | 
			
		||||
    %assign n_arg_names %0
 | 
			
		||||
%endmacro
 | 
			
		||||
 | 
			
		||||
%if ARCH_X86_64
 | 
			
		||||
%macro ALLOC_STACK 2  ; stack_size, num_regs
 | 
			
		||||
  %assign %%stack_aligment ((mmsize + 15) & ~15)
 | 
			
		||||
  %assign stack_size_padded %1
 | 
			
		||||
 | 
			
		||||
  %assign %%reg_num (%2 - 1)
 | 
			
		||||
  %xdefine rsp_tmp r %+ %%reg_num
 | 
			
		||||
  mov  rsp_tmp, rsp
 | 
			
		||||
  sub  rsp, stack_size_padded
 | 
			
		||||
  and  rsp, ~(%%stack_aligment - 1)
 | 
			
		||||
%endmacro
 | 
			
		||||
 | 
			
		||||
%macro RESTORE_STACK 0  ; reset rsp register
 | 
			
		||||
  mov  rsp, rsp_tmp
 | 
			
		||||
%endmacro
 | 
			
		||||
%endif
 | 
			
		||||
 | 
			
		||||
%if WIN64 ; Windows x64 ;=================================================
 | 
			
		||||
 | 
			
		||||
DECLARE_REG 0,  rcx, ecx,  cx,   cl
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user