mirror of
				https://github.com/bytecodealliance/wasm-micro-runtime.git
				synced 2025-10-31 05:11:19 +00:00 
			
		
		
		
	Add missing V128 handling in WASM_OP_BR, reported in #4173
This commit is contained in:
		
							parent
							
								
									5d8fe5dcfd
								
							
						
					
					
						commit
						0702f788fd
					
				|  | @ -1013,6 +1013,22 @@ fail: | ||||||
|                         SET_FRAME_REF((unsigned)(dst_offsets[0] + 1));     \ |                         SET_FRAME_REF((unsigned)(dst_offsets[0] + 1));     \ | ||||||
|                     }                                                      \ |                     }                                                      \ | ||||||
|                 }                                                          \ |                 }                                                          \ | ||||||
|  |                 else if (cells[0] == 4) {                                  \ | ||||||
|  |                     PUT_V128_TO_ADDR(                                      \ | ||||||
|  |                         frame_lp + dst_offsets[0],                         \ | ||||||
|  |                         GET_V128_FROM_ADDR(frame_lp + src_offsets[0]));    \ | ||||||
|  |                     /* Ignore constants because they are not reference */  \ | ||||||
|  |                     if (src_offsets[0] >= 0) {                             \ | ||||||
|  |                         CLEAR_FRAME_REF((unsigned)src_offsets[0]);         \ | ||||||
|  |                         CLEAR_FRAME_REF((unsigned)(src_offsets[0] + 1));   \ | ||||||
|  |                         CLEAR_FRAME_REF((unsigned)(src_offsets[0] + 2));   \ | ||||||
|  |                         CLEAR_FRAME_REF((unsigned)(src_offsets[0] + 3));   \ | ||||||
|  |                         SET_FRAME_REF((unsigned)dst_offsets[0]);           \ | ||||||
|  |                         SET_FRAME_REF((unsigned)(dst_offsets[0] + 1));     \ | ||||||
|  |                         SET_FRAME_REF((unsigned)(dst_offsets[0] + 2));     \ | ||||||
|  |                         SET_FRAME_REF((unsigned)(dst_offsets[0] + 3));     \ | ||||||
|  |                     }                                                      \ | ||||||
|  |                 }                                                          \ | ||||||
|             }                                                              \ |             }                                                              \ | ||||||
|             else {                                                         \ |             else {                                                         \ | ||||||
|                 if (!copy_stack_values(module, frame_lp, arity, frame_ref, \ |                 if (!copy_stack_values(module, frame_lp, arity, frame_ref, \ | ||||||
|  | @ -1053,6 +1069,11 @@ fail: | ||||||
|                         frame_lp + dst_offsets[0],                          \ |                         frame_lp + dst_offsets[0],                          \ | ||||||
|                         GET_I64_FROM_ADDR(frame_lp + src_offsets[0]));      \ |                         GET_I64_FROM_ADDR(frame_lp + src_offsets[0]));      \ | ||||||
|                 }                                                           \ |                 }                                                           \ | ||||||
|  |                 else if (cells[0] == 4) {                                   \ | ||||||
|  |                     PUT_V128_TO_ADDR(                                       \ | ||||||
|  |                         frame_lp + dst_offsets[0],                          \ | ||||||
|  |                         GET_V128_FROM_ADDR(frame_lp + src_offsets[0]));     \ | ||||||
|  |                 }                                                           \ | ||||||
|             }                                                               \ |             }                                                               \ | ||||||
|             else {                                                          \ |             else {                                                          \ | ||||||
|                 if (!copy_stack_values(module, frame_lp, arity, total_cell, \ |                 if (!copy_stack_values(module, frame_lp, arity, total_cell, \ | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	Block a user
	 James Marsh
						James Marsh