mirror of
				https://github.com/cuberite/polarssl.git
				synced 2025-10-30 19:20:40 -04:00 
			
		
		
		
	Merge pull request #4968 from davidhorstmann-arm/fix-aarch64-asm-constraints
Fix aarch64 assembly for bignum multiplication
This commit is contained in:
		
						commit
						aafb21f320
					
				| @ -1,4 +0,0 @@ | ||||
| Bugfix | ||||
|    * Fix missing constraints on x86_64 assembly code for bignum multiplication | ||||
|      that broke some bignum operations with (at least) Clang 12. | ||||
|      Fixes #4116, #4786, #4917. | ||||
							
								
								
									
										5
									
								
								ChangeLog.d/muladdc-memory.txt
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								ChangeLog.d/muladdc-memory.txt
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,5 @@ | ||||
| Bugfix | ||||
|    * Fix missing constraints on x86_64 and aarch64 assembly code | ||||
|      for bignum multiplication that broke some bignum operations with | ||||
|      (at least) Clang 12. | ||||
|      Fixes #4116, #4786, #4917, #4962. | ||||
| @ -240,8 +240,8 @@ | ||||
| #define MULADDC_CORE                \ | ||||
|         "ldr x4, [%2], #8   \n\t"   \ | ||||
|         "ldr x5, [%1]       \n\t"   \ | ||||
|         "mul x6, x4, %3     \n\t"   \ | ||||
|         "umulh x7, x4, %3   \n\t"   \ | ||||
|         "mul x6, x4, %4     \n\t"   \ | ||||
|         "umulh x7, x4, %4   \n\t"   \ | ||||
|         "adds x5, x5, x6    \n\t"   \ | ||||
|         "adc x7, x7, xzr    \n\t"   \ | ||||
|         "adds x5, x5, %0    \n\t"   \ | ||||
| @ -249,8 +249,8 @@ | ||||
|         "str x5, [%1], #8   \n\t" | ||||
| 
 | ||||
| #define MULADDC_STOP                                                    \ | ||||
|          : "+r" (c),  "+r" (d), "+r" (s)    \ | ||||
|          : "r" (b)                          \ | ||||
|          : "+r" (c),  "+r" (d), "+r" (s), "+m" (*(uint64_t (*)[16]) d)  \ | ||||
|          : "r" (b), "m" (*(const uint64_t (*)[16]) s)                   \ | ||||
|          : "x4", "x5", "x6", "x7", "cc"                                 \ | ||||
|     ); | ||||
| 
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Gilles Peskine
						Gilles Peskine