Does anyone know about how the FRV port does the VLIW pack?
mike@csdn.sign.idv.tw
mike@csdn.sign.idv.tw
Tue Jun 1 10:03:00 GMT 2004
Hello,
After I have studied the FRV gcc port, here is my guess about how
the FRV port packs the vliw pack.
The function "frv_function_prologue" does the vliw packing by
calling frv_pack_insns() and sets the static variable
"frv_insn_packing_flag" to TRUE.
The function "frv_pack_insn()" invoked by "frv_function_prologue"
rescans the insn chain and does the vliw packing.
Because frv_function_prologue is invoked at the begining of a
function, VLIW packing is done at every begining of a function.
And when outputing the insn code (asm code), the function
"frv_asm_output_opcode" adds assembler insn code suffix .p according
to the MACRO "PACKING_FLAG_USED_P()" which is defined as the
following code:
(optimize && flag_schedule_insns_after_reload && ISSUE_RATE > 1)
and the static variable "frv_insn_packing_flag".
The function "frv_final_prescan_insn" controls the static variable
"frv_insn_packing_flag" and sets it to TRUE or FALSE according to
the insn with TImode set by frv_pack_insn().
Am I right? Thanks.
Mike Wu
More information about the Gcc
mailing list