compilation fix
git-svn-id: svn://svn.savannah.nongnu.org/qemu/trunk@1206 c046a42c-6fe2-441c-8c8c-71466251a162
This commit is contained in:
		
							parent
							
								
									664e0f195a
								
							
						
					
					
						commit
						8636b5d873
					
				
							
								
								
									
										16
									
								
								vl.c
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								vl.c
									
									
									
									
									
								
							@ -2113,20 +2113,22 @@ void cpu_save(QEMUFile *f, void *opaque)
 | 
			
		||||
    qemu_put_be16s(f, &fpregs_format);
 | 
			
		||||
    
 | 
			
		||||
    for(i = 0; i < 8; i++) {
 | 
			
		||||
#ifdef USE_X86LDOUBLE
 | 
			
		||||
        {
 | 
			
		||||
            uint64_t mant;
 | 
			
		||||
            uint16_t exp;
 | 
			
		||||
#ifdef USE_X86LDOUBLE
 | 
			
		||||
            /* we save the real CPU data (in case of MMX usage only 'mant'
 | 
			
		||||
               contains the MMX register */
 | 
			
		||||
            cpu_get_fp80(&mant, &exp, env->fpregs[i].d);
 | 
			
		||||
            qemu_put_be64(f, mant);
 | 
			
		||||
            qemu_put_be16(f, exp);
 | 
			
		||||
        }
 | 
			
		||||
#else
 | 
			
		||||
        /* if we use doubles for float emulation, we save the doubles to
 | 
			
		||||
           avoid losing information in case of MMX usage. It can give
 | 
			
		||||
           problems if the image is restored on a CPU where long
 | 
			
		||||
           doubles are used instead. */
 | 
			
		||||
        qemu_put_be64(f, env->fpregs[i].xmm.MMX_Q(0));
 | 
			
		||||
        qemu_put_be64(f, env->fpregs[i].mmx.MMX_Q(0));
 | 
			
		||||
#endif
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
@ -2169,6 +2171,7 @@ void cpu_save(QEMUFile *f, void *opaque)
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#ifdef USE_X86LDOUBLE
 | 
			
		||||
/* XXX: add that in a FPU generic layer */
 | 
			
		||||
union x86_longdouble {
 | 
			
		||||
    uint64_t mant;
 | 
			
		||||
@ -2190,6 +2193,7 @@ static void fp64_to_fp80(union x86_longdouble *p, uint64_t temp)
 | 
			
		||||
    e |= SIGND1(temp) >> 16;
 | 
			
		||||
    p->exp = e;
 | 
			
		||||
}
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
int cpu_load(QEMUFile *f, void *opaque, int version_id)
 | 
			
		||||
{
 | 
			
		||||
@ -2218,7 +2222,6 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id)
 | 
			
		||||
    for(i = 0; i < 8; i++) {
 | 
			
		||||
        uint64_t mant;
 | 
			
		||||
        uint16_t exp;
 | 
			
		||||
        union x86_longdouble *p;
 | 
			
		||||
        
 | 
			
		||||
        switch(fpregs_format) {
 | 
			
		||||
        case 0:
 | 
			
		||||
@ -2229,7 +2232,7 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id)
 | 
			
		||||
#else
 | 
			
		||||
            /* difficult case */
 | 
			
		||||
            if (guess_mmx)
 | 
			
		||||
                env->fpregs[i].xmm.MMX_Q(0) = mant;
 | 
			
		||||
                env->fpregs[i].mmx.MMX_Q(0) = mant;
 | 
			
		||||
            else
 | 
			
		||||
                env->fpregs[i].d = cpu_set_fp80(mant, exp);
 | 
			
		||||
#endif
 | 
			
		||||
@ -2237,6 +2240,8 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id)
 | 
			
		||||
        case 1:
 | 
			
		||||
            mant = qemu_get_be64(f);
 | 
			
		||||
#ifdef USE_X86LDOUBLE
 | 
			
		||||
            {
 | 
			
		||||
                union x86_longdouble *p;
 | 
			
		||||
                /* difficult case */
 | 
			
		||||
                p = (void *)&env->fpregs[i];
 | 
			
		||||
                if (guess_mmx) {
 | 
			
		||||
@ -2245,8 +2250,9 @@ int cpu_load(QEMUFile *f, void *opaque, int version_id)
 | 
			
		||||
                } else {
 | 
			
		||||
                    fp64_to_fp80(p, mant);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
#else
 | 
			
		||||
            env->fpregs[i].xmm.MMX_Q(0) = mant;
 | 
			
		||||
            env->fpregs[i].mmx.MMX_Q(0) = mant;
 | 
			
		||||
#endif            
 | 
			
		||||
            break;
 | 
			
		||||
        default:
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user