[AArch64] Fix the generation of BE Nops
Big endian Nops were being generated as d5 03 20 1f fnmadd s21, s30, s0, s0, getting the bytes of the NOP in the wrong order. This switches the bytes to not be dependant on the endianness. Differential Revision: https://reviews.llvm.org/D125980
This commit is contained in:
		
							parent
							
								
									83c431fb9e
								
							
						
					
					
						commit
						1379b15099
					
				| 
						 | 
				
			
			@ -471,7 +471,7 @@ bool AArch64AsmBackend::writeNopData(raw_ostream &OS, uint64_t Count,
 | 
			
		|||
  // We are properly aligned, so write NOPs as requested.
 | 
			
		||||
  Count /= 4;
 | 
			
		||||
  for (uint64_t i = 0; i != Count; ++i)
 | 
			
		||||
    support::endian::write<uint32_t>(OS, 0xd503201f, Endian);
 | 
			
		||||
    OS.write("\x1f\x20\x03\xd5", 4);
 | 
			
		||||
  return true;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -0,0 +1,14 @@
 | 
			
		|||
// RUN: llvm-mc -filetype=obj -triple aarch64-none-eabi %s | llvm-objdump -d - | FileCheck %s
 | 
			
		||||
// RUN: llvm-mc -filetype=obj -triple aarch64_be-none-eabi %s | llvm-objdump -d - | FileCheck %s
 | 
			
		||||
 | 
			
		||||
// CHECK:   0: 00 00 80 d2   mov     x0, #0
 | 
			
		||||
// CHECK:   4: 00 00 80 d2   mov     x0, #0
 | 
			
		||||
// CHECK:   8: 1f 20 03 d5   nop
 | 
			
		||||
// CHECK:   c: 1f 20 03 d5   nop
 | 
			
		||||
// CHECK:  10: 00 00 80 d2   mov     x0, #0
 | 
			
		||||
 | 
			
		||||
       .text
 | 
			
		||||
       mov x0, #0
 | 
			
		||||
       mov x0, #0
 | 
			
		||||
       .p2align 4
 | 
			
		||||
       mov x0, #0
 | 
			
		||||
		Loading…
	
		Reference in New Issue