member descriptor ics

trying to fill in rewriting holes... for this one I had to some support for doubles and some `mov` variants in the assembler and rewriter. Kind of hacky/lazy...
ah ok.. I actually checked by compiling

```
void foo2();
void foo3();

void foo(bool b) {
    if (b) {
        foo2();
    } else {
        foo3();
    }
}

```

but now that you point it out, that's not the right thing to check

On Mon, Sep 22, 2014 at 8:39 PM, Kevin Modzelewski <notifications@github.com
> wrote:

> In src/runtime/objmodel.cpp:
>
> >                  int8_t rtn = reinterpret_cast<int8_t*>(obj)[member_desc->offset];
> >                  return boxInt(rtn);
> >              }
> >              case BoxedMemberDescriptor::BOOL: {
> > -                rewrite_args = NULL;
> > +                if (rewrite_args) {
> > +                    RewriterVarUsage r_unboxed_val
> > +                        = rewrite_args->obj.getAttr(member_desc->offset, RewriterVarUsage::KillFlag::Kill,
> > +                                                    Location::forArg(0), assembler::MovType::B);
>
> I think you are supposed to extend function arguments to 32 bits -- this
> is what the make test_cpp_asm target is nice for:
>
> void* boxBool(bool b);
> void* foo(bool *b) {
>     return boxBool(*b);}
>
> make test_cpp_asm
>
> Disassembly of section .text:
>
> 0000000000000000 <_Z3fooPb>:
>    0:   0f b6 3f                movzbl (%rdi),%edi
>    3:   e9 00 00 00 00          jmpq   8 <_Z3fooPb+0x8>
>
> —
> Reply to this email directly or view it on GitHub
> <https://github.com/dropbox/pyston/pull/151/files#r17890955>.
>