@@ -1648,6 +1648,7 @@ class Frame {
1648
1648
1649
1649
void storeLarge (ir::Type type, unsigned index)
1650
1650
{
1651
+ assertT (t, type.rawSize () == 8 );
1651
1652
storeLocal (context, 2 , type, popLarge (type), index );
1652
1653
unsigned ti = translateLocalIndex (context, 2 , index );
1653
1654
assertT (t, ti + 1 < localSize ());
@@ -1691,7 +1692,7 @@ class Frame {
1691
1692
{
1692
1693
ir::Value* s0 = c->pop (ir::Type::i4 ());
1693
1694
1694
- if (get (sp - 2 ) == ir::Type::i8 () ) {
1695
+ if (get (sp - 2 ). rawSize () == 8 ) {
1695
1696
ir::Value* s1 = c->pop (ir::Type::i8 ());
1696
1697
1697
1698
c->push (ir::Type::i4 (), s0);
@@ -1724,7 +1725,7 @@ class Frame {
1724
1725
1725
1726
void dup2 ()
1726
1727
{
1727
- if (get (sp - 1 ) == ir::Type::i8 () ) {
1728
+ if (get (sp - 1 ). rawSize () == 8 ) {
1728
1729
c->push (ir::Type::i8 (), c->peek (2 , 0 ));
1729
1730
} else {
1730
1731
ir::Value* s0 = c->pop (ir::Type::i4 ());
@@ -1750,7 +1751,7 @@ class Frame {
1750
1751
1751
1752
void dup2X1 ()
1752
1753
{
1753
- if (get (sp - 1 ) == ir::Type::i8 () ) {
1754
+ if (get (sp - 1 ). rawSize () == 8 ) {
1754
1755
ir::Value* s0 = c->pop (ir::Type::i8 ());
1755
1756
ir::Value* s1 = c->pop (ir::Type::i4 ());
1756
1757
@@ -1787,10 +1788,10 @@ class Frame {
1787
1788
1788
1789
void dup2X2 ()
1789
1790
{
1790
- if (get (sp - 1 ) == ir::Type::i8 () ) {
1791
+ if (get (sp - 1 ). rawSize () == 8 ) {
1791
1792
ir::Value* s0 = c->pop (ir::Type::i8 ());
1792
1793
1793
- if (get (sp - 3 ) == ir::Type::i8 () ) {
1794
+ if (get (sp - 3 ). rawSize () == 8 ) {
1794
1795
ir::Value* s1 = c->pop (ir::Type::i8 ());
1795
1796
1796
1797
c->push (ir::Type::i8 (), s0);
0 commit comments