Check permissions for the last byte first in unaligned slow_st accesses (patch from TeLeMan).
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@3665 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
		
							parent
							
								
									7fbfb139ec
								
							
						
					
					
						commit
						7221fa98d3
					
				@ -282,7 +282,7 @@ static void glue(glue(slow_st, SUFFIX), MMUSUFFIX)(target_ulong addr,
 | 
				
			|||||||
        } else if (((addr & ~TARGET_PAGE_MASK) + DATA_SIZE - 1) >= TARGET_PAGE_SIZE) {
 | 
					        } else if (((addr & ~TARGET_PAGE_MASK) + DATA_SIZE - 1) >= TARGET_PAGE_SIZE) {
 | 
				
			||||||
        do_unaligned_access:
 | 
					        do_unaligned_access:
 | 
				
			||||||
            /* XXX: not efficient, but simple */
 | 
					            /* XXX: not efficient, but simple */
 | 
				
			||||||
            for(i = 0;i < DATA_SIZE; i++) {
 | 
					            for(i = DATA_SIZE - 1; i >= 0; i--) {
 | 
				
			||||||
#ifdef TARGET_WORDS_BIGENDIAN
 | 
					#ifdef TARGET_WORDS_BIGENDIAN
 | 
				
			||||||
                glue(slow_stb, MMUSUFFIX)(addr + i, val >> (((DATA_SIZE - 1) * 8) - (i * 8)),
 | 
					                glue(slow_stb, MMUSUFFIX)(addr + i, val >> (((DATA_SIZE - 1) * 8) - (i * 8)),
 | 
				
			||||||
                                          mmu_idx, retaddr);
 | 
					                                          mmu_idx, retaddr);
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user