Author: shenruifen
Date: 2010-07-18 23:09:35 -0400 (Sun, 18 Jul 2010)
New Revision: 3285
Modified:
trunk/osprey/wgen/wgen_expr.cxx
Log:
Refix bug 557: bug in wgen: error CVTL bit.
Last fix of bug557 will introduce other new failure as there is not
good support of CVTL in BE. Using extract_bit to workaround it in this patch.
Modified: trunk/osprey/wgen/wgen_expr.cxx
===================================================================
--- trunk/osprey/wgen/wgen_expr.cxx 2010-07-19 01:46:34 UTC (rev 3284)
+++ trunk/osprey/wgen/wgen_expr.cxx 2010-07-19 03:09:35 UTC (rev 3285)
@@ -6393,9 +6393,15 @@
}
if (MTYPE_size_min(mtyp) < MTYPE_size_min(WN_rtype(wn))) {
- if (MTYPE_size_min(mtyp) != 32)
- wn = WN_CreateCvtl(OPR_CVTL, Widen_Mtype(mtyp), MTYPE_V,
- gs_type_type_precision(gs_tree_type(exp)), wn);
+ if (MTYPE_size_min(mtyp) != 32) {
+ INT cvt_bit = gs_type_type_precision(gs_tree_type(exp));
+ if (cvt_bit == 0 || cvt_bit == 8 || cvt_bit == 16 || cvt_bit ==
32) {
+ wn = WN_CreateCvtl(OPR_CVTL, Widen_Mtype(mtyp), MTYPE_V,
cvt_bit, wn);
+ } else {
+ wn = WN_CreateExp1(OPR_EXTRACT_BITS, Widen_Mtype(mtyp),
MTYPE_V, wn);
+ WN_set_bit_offset_size(wn, 0, cvt_bit);
+ }
+ }
}
else wn = WN_Cvt(WN_rtype(wn), mtyp, wn);
}
else {
------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Open64-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/open64-devel