Add initial integrated assembler w/ some Xmm ops.

Add a flag to use the integrated assembler.

Handle simple XMM binary op instructions as an initial example of how
instructions might be handled. This tests fixups in a very limited sense --
Track buffer locations of fixups for floating point immediates.

Patchset one shows the original dart assembler code (revision 39313), so that
it can be diffed.

BUG=none
R=stichnot@chromium.org

Review URL: https://codereview.chromium.org/574133002
diff --git a/src/IceTargetLowering.h b/src/IceTargetLowering.h
index 99716be..37e14df 100644
--- a/src/IceTargetLowering.h
+++ b/src/IceTargetLowering.h
@@ -25,6 +25,8 @@
 
 namespace Ice {
 
+class Assembler;
+
 // LoweringContext makes it easy to iterate through non-deleted
 // instructions in a node, and insert new (lowered) instructions at
 // the current point.  Along with the instruction list container and
@@ -87,6 +89,7 @@
 class TargetLowering {
 public:
   static TargetLowering *createLowering(TargetArch Target, Cfg *Func);
+  static Assembler *createAssembler(TargetArch Target, Cfg *Func);
   void translate() {
     switch (Ctx->getOptLevel()) {
     case Opt_m1: