Automatic MMX/x87 FPU mode switching

Uros Bizjak uros@kss-loka.si
Sat Jul 2 07:44:00 GMT 2005


Richard Henderson wrote:

>>(call_insn:HI 14 39 15 0 (set (reg:V8QI 29 mm0)
>>        (call (mem:QI (symbol_ref:SI ("aaa") [flags 0x41] <function_decl
>>0x40305360 aaa>) [0 S1 A8])
>>            (const_int 0 [0x0]))) 526 {*call_value_0} (insn_list:REG_DEP_TRUE 12
>>(insn_list:REG_DEP_TRUE 1
>>3 (nil)))
>>    (expr_list:REG_DEAD (reg:ALLREGS 8 st)
>>        (expr_list:REG_DEAD (reg:V8QI 30 mm1)
>>            (nil)))
>>    (expr_list:REG_DEP_TRUE (use (reg:V8QI 29 mm0))
>>        (expr_list:REG_DEP_TRUE (use (reg:V8QI 30 mm1))
>>            (expr_list:REG_DEP_TRUE (use (reg:ALLREGS 8 st))
>>                (nil)))))
>>
>>...
>>
>>(insn 40 21 36 0 (set (reg:ALLREGS 29 mm0)
>>        (unspec_volatile:ALLREGS [
>>                (reg:ALLREGS 8 st)
>>            ] 5)) 872 {emms} (nil)
>>    (expr_list:REG_DEAD (reg:ALLREGS 8 st)
>>        (nil)))
>>    
>>
>
>Do we have confirmation that (reg:allregs st) is really live here
>between the call and the emms?
>  
>
I have put a function call inside an "if", so I was able to see in the 
RTL dumps, which registers are live at the exit of BB containing 
function call..If I understood EPILOGUE_USES correctly, all %st 
registers that were marked live at the exit of basic block should be set 
by EPILOGUE_USES after the call_insn?

Uros.



More information about the Gcc-patches mailing list