mirror of
				https://github.com/qemu/qemu.git
				synced 2025-10-31 04:06:46 +00:00 
			
		
		
		
	 64eef9bf95
			
		
	
	
		64eef9bf95
		
	
	
	
	
		
			
			Use bbci.l/bbsi.l instead of bbci/bbsi, as they are assembly macros that accept little-endian bit number and produce correct immediate for both little and big endian configurations. Choose value loaded into register for bbc/bbs opcodes based on configuration endianness. Signed-off-by: Max Filippov <jcmvbkbc@gmail.com>
		
			
				
	
	
		
			246 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
			
		
		
	
	
			246 lines
		
	
	
		
			3.2 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
	
	
| #include "macros.inc"
 | |
| 
 | |
| test_suite b
 | |
| 
 | |
| test bnone
 | |
|     movi    a2, 0xa5a5ff00
 | |
|     movi    a3, 0x5a5a00ff
 | |
|     bnone   a2, a3, 1f
 | |
|     test_fail
 | |
| 1:
 | |
|     movi    a2, 0xa5a5ff01
 | |
|     bnone   a2, a3, 1f
 | |
|     j       2f
 | |
| 1:
 | |
|     test_fail
 | |
| 2:
 | |
| test_end
 | |
| 
 | |
| test beq
 | |
|     movi    a2, 0
 | |
|     movi    a3, 0
 | |
|     beq     a2, a3, 1f
 | |
|     test_fail
 | |
| 1:
 | |
|     movi    a2, 1
 | |
|     beq     a2, a3, 1f
 | |
|     j       2f
 | |
| 1:
 | |
|     test_fail
 | |
| 2:
 | |
| test_end
 | |
| 
 | |
| test blt
 | |
|     movi    a2, 6
 | |
|     movi    a3, 7
 | |
|     blt     a2, a3, 1f
 | |
|     test_fail
 | |
| 1:
 | |
|     movi    a2, 0xffffffff
 | |
|     blt     a2, a3, 1f
 | |
|     test_fail
 | |
| 1:
 | |
|     movi    a2, 7
 | |
|     blt     a2, a3, 1f
 | |
|     j       2f
 | |
| 1:
 | |
|     test_fail
 | |
| 2:
 | |
| test_end
 | |
| 
 | |
| test bltu
 | |
|     movi    a2, 6
 | |
|     movi    a3, 7
 | |
|     bltu    a2, a3, 1f
 | |
|     test_fail
 | |
| 1:
 | |
|     movi    a2, 7
 | |
|     bltu    a2, a3, 1f
 | |
|     j       2f
 | |
| 1:
 | |
|     test_fail
 | |
| 2:
 | |
|     movi    a2, 0xffffffff
 | |
|     bltu    a2, a3, 1f
 | |
|     j       2f
 | |
| 1:
 | |
|     test_fail
 | |
| 2:
 | |
| test_end
 | |
| 
 | |
| test ball
 | |
|     movi    a2, 0xa5a5ffa5
 | |
|     movi    a3, 0xa5a5ff00
 | |
|     ball    a2, a3, 1f
 | |
|     test_fail
 | |
| 1:
 | |
|     movi    a2, 0xa5a5a5a5
 | |
|     ball    a2, a3, 1f
 | |
|     j       2f
 | |
| 1:
 | |
|     test_fail
 | |
| 2:
 | |
| test_end
 | |
| 
 | |
| test bbc
 | |
|     movi    a2, 0xfffffffd
 | |
| #undef BIT
 | |
| #if XCHAL_HAVE_BE
 | |
| #define BIT 0xfffffffe
 | |
| #else
 | |
| #define BIT 0xffffff01
 | |
| #endif
 | |
|     movi    a3, BIT
 | |
|     bbc     a2, a3, 1f
 | |
|     test_fail
 | |
| 1:
 | |
|     movi    a2, 8
 | |
| #undef BIT
 | |
| #if XCHAL_HAVE_BE
 | |
| #define BIT 0xfffffffc
 | |
| #else
 | |
| #define BIT 0xffffff03
 | |
| #endif
 | |
|     movi    a3, BIT
 | |
|     bbc     a2, a3, 1f
 | |
|     j       2f
 | |
| 1:
 | |
|     test_fail
 | |
| 2:
 | |
| test_end
 | |
| 
 | |
| test bbci
 | |
|     movi    a2, 0xfffdffff
 | |
|     bbci.l  a2, 17, 1f
 | |
|     test_fail
 | |
| 1:
 | |
|     movi    a2, 0x00020000
 | |
|     bbci.l  a2, 17, 1f
 | |
|     j       2f
 | |
| 1:
 | |
|     test_fail
 | |
| 2:
 | |
| test_end
 | |
| 
 | |
| test bany
 | |
|     movi    a2, 0xa5a5ff01
 | |
|     movi    a3, 0x5a5a00ff
 | |
|     bany    a2, a3, 1f
 | |
|     test_fail
 | |
| 1:
 | |
|     movi    a2, 0xa5a5ff00
 | |
|     bany    a2, a3, 1f
 | |
|     j       2f
 | |
| 1:
 | |
|     test_fail
 | |
| 2:
 | |
| test_end
 | |
| 
 | |
| test bne
 | |
|     movi    a2, 1
 | |
|     movi    a3, 0
 | |
|     bne     a2, a3, 1f
 | |
|     test_fail
 | |
| 1:
 | |
|     movi    a2, 0
 | |
|     bne     a2, a3, 1f
 | |
|     j       2f
 | |
| 1:
 | |
|     test_fail
 | |
| 2:
 | |
| test_end
 | |
| 
 | |
| test bge
 | |
|     movi    a2, 7
 | |
|     movi    a3, 7
 | |
|     bge     a2, a3, 1f
 | |
|     test_fail
 | |
| 1:
 | |
|     movi    a2, 6
 | |
|     bge     a2, a3, 1f
 | |
|     j       2f
 | |
| 1:
 | |
|     test_fail
 | |
| 2:
 | |
|     movi    a2, 0xffffffff
 | |
|     bge     a2, a3, 1f
 | |
|     j       2f
 | |
| 1:
 | |
|     test_fail
 | |
| 2:
 | |
| test_end
 | |
| 
 | |
| test bgeu
 | |
|     movi    a2, 7
 | |
|     movi    a3, 7
 | |
|     bgeu    a2, a3, 1f
 | |
|     test_fail
 | |
| 1:
 | |
|     movi    a2, 0xffffffff
 | |
|     bgeu    a2, a3, 1f
 | |
|     test_fail
 | |
| 1:
 | |
|     movi    a2, 6
 | |
|     bgeu    a2, a3, 1f
 | |
|     j       2f
 | |
| 1:
 | |
|     test_fail
 | |
| 2:
 | |
| test_end
 | |
| 
 | |
| test bnall
 | |
|     movi    a2, 0xa5a5a5a5
 | |
|     movi    a3, 0xa5a5ff00
 | |
|     bnall   a2, a3, 1f
 | |
|     test_fail
 | |
| 1:
 | |
|     movi    a2, 0xa5a5ffa5
 | |
|     bnall   a2, a3, 1f
 | |
|     j       2f
 | |
| 1:
 | |
|     test_fail
 | |
| 2:
 | |
| test_end
 | |
| 
 | |
| test bbs
 | |
|     movi    a2, 8
 | |
| #undef BIT
 | |
| #if XCHAL_HAVE_BE
 | |
| #define BIT 0xfffffffc
 | |
| #else
 | |
| #define BIT 0xffffff03
 | |
| #endif
 | |
|     movi    a3, BIT
 | |
|     bbs     a2, a3, 1f
 | |
|     test_fail
 | |
| 1:
 | |
|     movi    a2, 0xfffffffd
 | |
| #undef BIT
 | |
| #if XCHAL_HAVE_BE
 | |
| #define BIT 0xfffffffe
 | |
| #else
 | |
| #define BIT 0xffffff01
 | |
| #endif
 | |
|     movi    a3, BIT
 | |
|     bbs     a2, a3, 1f
 | |
|     j       2f
 | |
| 1:
 | |
|     test_fail
 | |
| 2:
 | |
| test_end
 | |
| 
 | |
| test bbsi
 | |
|     movi    a2, 0x00020000
 | |
|     bbsi.l  a2, 17, 1f
 | |
|     test_fail
 | |
| 1:
 | |
|     movi    a2, 0xfffdffff
 | |
|     bbsi.l  a2, 17, 1f
 | |
|     j       2f
 | |
| 1:
 | |
|     test_fail
 | |
| 2:
 | |
| test_end
 | |
| 
 | |
| test_suite_end
 |