Don't block quick callee saved registers for optimizing.

This change builds on:
https://android-review.googlesource.com/#/c/118983/

- Also fix x86_64 assembler bug triggered by this change.
- Fix (and improve) x86's backend byte register usage.
- Fix a bug in baseline register allocator: a fixed
  out register must prevent inputs from allocating it.

Change-Id: I4883862e29b4e4b6470f1823cf7eab7e7863d8ad
diff --git a/compiler/utils/x86/assembler_x86.h b/compiler/utils/x86/assembler_x86.h
index 9fecf1e..fe07e8f 100644
--- a/compiler/utils/x86/assembler_x86.h
+++ b/compiler/utils/x86/assembler_x86.h
@@ -251,7 +251,7 @@
 
   void cmovl(Condition condition, Register dst, Register src);
 
-  void setb(Condition condition, Register dst);
+  void setb(Condition condition, ByteRegister dst);
 
   void movaps(XmmRegister dst, XmmRegister src);
   void movss(XmmRegister dst, const Address& src);