LGTM, will push it latter. Thanks.
On Tue, Sep 24, 2013 at 03:39:36PM +0800, Ruiling Song wrote: > Previously it will always write 8 byte no matter what size of integer. > Fix it by only copying necessary data. > > Reported by Homer Hsing. > > Signed-off-by: Ruiling Song <[email protected]> > --- > backend/src/llvm/llvm_gen_backend.cpp | 6 ++++-- > 1 file changed, 4 insertions(+), 2 deletions(-) > > diff --git a/backend/src/llvm/llvm_gen_backend.cpp > b/backend/src/llvm/llvm_gen_backend.cpp > index 5284ce5..224c971 100644 > --- a/backend/src/llvm/llvm_gen_backend.cpp > +++ b/backend/src/llvm/llvm_gen_backend.cpp > @@ -631,8 +631,10 @@ namespace gbe > case Type::TypeID::IntegerTyID: > { > const ConstantInt *ci = dyn_cast<ConstantInt>(c); > - *(uint64_t *)((char*)mem + offset) = ci->isNegative() ? > ci->getSExtValue() : ci->getZExtValue(); > - offset += ci->getBitWidth() / 8; > + uint32_t size = ci->getBitWidth() / 8; > + uint64_t data = ci->isNegative() ? ci->getSExtValue() : > ci->getZExtValue(); > + memcpy((char*)mem+offset, &data, size); > + offset += size; > break; > } > case Type::TypeID::FloatTyID: > -- > 1.7.9.5 > > _______________________________________________ > Beignet mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/beignet _______________________________________________ Beignet mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/beignet
