Add support for passing and returning vectors in accordance with the x86 calling convention.

- Add TargetLowering::lowerArguments() as a new stage in TargetLowering.
- Add support for passing arguments/return values in XMM registers in the x86 target.

BUG=none
R=jvoung@chromium.org, stichnot@chromium.org

Review URL: https://codereview.chromium.org/372113005
diff --git a/src/IceCfg.h b/src/IceCfg.h
index dbf08c6..856b145 100644
--- a/src/IceCfg.h
+++ b/src/IceCfg.h
@@ -69,6 +69,7 @@
   // Manage arguments to the function.
   void addArg(Variable *Arg);
   const VarList &getArgs() const { return Args; }
+  VarList &getArgs() { return Args; }
 
   // Miscellaneous accessors.
   TargetLowering *getTarget() const { return Target.get(); }
@@ -86,6 +87,7 @@
   void placePhiStores();
   void deletePhis();
   void doAddressOpt();
+  void doArgLowering();
   void genCode();
   void genFrame();
   void livenessLightweight();