2011-04-28 5 views
3

MIPS 보조 프로세서 1 조건 플래그 값에 액세스하고자합니다.MIPS 보조 프로세서 조건 플래그에 직접 액세스

c.eq.s $f4 $f6 
bc1f L_CondFalse 
li $t0 0 
j L_CondEnd 
L_CondFalse : li $t0 1 
L_CondEnd : 

어떤 아이디어를 예를

c.eq.s $f4 $f6 
move $t0 condflag1 #clearly illegal 

나는 다음이 가능하다는 것을 이해에 대한

?

답변

4

조건부 이동 명령어 (MIPS32 이후 사용 가능)를 사용하여 분기를 피할 수 있습니다. 당신이 가질 수 있도록 (테스트하지)

li  $t0, 1   # move 1 into t0 
c.eq.s $f4, $f6  # compare f4 and f6; set FCC[0] to the result 
movt $t0, $0, $fcc0 # move 0 into t0 if comparison was true 

또 다른 옵션은, 0

cfc1 $t0, $25 # load FCCR into t0 
andi $t0, 1 # mask the bit 0 only 

FCCR는 MIPS32 전에 사용할 수 없습니다 비트에게 GPR에 FCCR를 이동하고 읽는 것입니다 대신 FCSR ($ 31)을 사용하십시오.

+0

감사합니다. # 2 옵션이 잘 작동했습니다. – Jason