Fix static_assert in packed_tv build

I didn't check m_type's offset in a packed_tv build when I
first wrote this.
Esse commit está contido em:
bsimmers
2013-05-16 10:04:02 -07:00
commit de Sara Golemon
commit 76a872c882
+7 -2
Ver Arquivo
@@ -741,15 +741,20 @@ static int64_t shuffleArgs(Asm& a, ArgGroup& args) {
break;
case ArgDesc::TypeReg:
static_assert(kTypeWordOffset == 4 || kTypeWordOffset == 0,
static_assert(kTypeWordOffset == 4 || kTypeWordOffset == 1,
"kTypeWordOffset value not supported");
// x86 stacks grow down, so push higher offset items first
if (kTypeWordOffset == 4) {
a. pushl(r32(srcReg));
// 4 bytes of garbage:
a. pushl(eax);
} else {
// 4 bytes of garbage:
a. pushl(eax);
a. pushl(r32(srcReg));
// get the type in the right place in rScratch before pushing it
a. movb (rbyte(srcReg), rbyte(rScratch));
a. shll (CHAR_BIT, r32(rScratch));
a. pushl(r32(rScratch));
}
break;