<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><br><div><div>On Jul 21, 2010, at 9:39 AM, Jakob Stoklund Olesen wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><div><br>On Jul 20, 2010, at 11:09 PM, Evan Cheng wrote:<br><br><blockquote type="cite">+  case MVT::f32:<br></blockquote><blockquote type="cite">+    RRC = ARM::SPRRegisterClass;<br></blockquote><blockquote type="cite">+    break;<br></blockquote><blockquote type="cite">+  case MVT::f64: case MVT::v8i8: case MVT::v4i16:<br></blockquote><blockquote type="cite">+  case MVT::v2i32: case MVT::v1i64: case MVT::v2f32:<br></blockquote><blockquote type="cite">+    RRC = ARM::SPRRegisterClass;<br></blockquote><blockquote type="cite">+    Cost = 2;<br></blockquote><blockquote type="cite">+    break;<br></blockquote><blockquote type="cite">+  case MVT::v16i8: case MVT::v8i16: case MVT::v4i32: case MVT::v2i64:<br></blockquote><blockquote type="cite">+  case MVT::v4f32: case MVT::v2f64:<br></blockquote><blockquote type="cite">+    RRC = ARM::SPRRegisterClass;<br></blockquote><blockquote type="cite">+    Cost = 4;<br></blockquote><blockquote type="cite">+    break;<br></blockquote><blockquote type="cite">+  case MVT::v4i64:<br></blockquote><blockquote type="cite">+    RRC = ARM::SPRRegisterClass;<br></blockquote><blockquote type="cite">+    Cost = 8;<br></blockquote><blockquote type="cite">+    break;<br></blockquote><blockquote type="cite">+  case MVT::v8i64:<br></blockquote><blockquote type="cite">+    RRC = ARM::SPRRegisterClass;<br></blockquote><blockquote type="cite">+    Cost = 16;<br></blockquote><blockquote type="cite">+    break;<br></blockquote><blockquote type="cite">  }<br></blockquote><blockquote type="cite">+  return std::make_pair(RRC, Cost);<br></blockquote><br>Nice!<br><br>Of course ARM is still being evil because there are 32 SPRs and 32 DPRs ;-)<font class="Apple-style-span" color="#000000"><font class="Apple-style-span" color="#144FAE"><br></font></font></div></blockquote><br></div><div>There is no good way to model it. :-( I think using DPR as representative and cost 1 for both f32 and f64 is probably slightly more accurate.</div><div><br></div><div>Evan</div></body></html>