#ifdef ARCH_IA32
ASSERT_TRUE(mem.push(0x55));
ASSERT_TRUE(mem.push(0x89));
ASSERT_TRUE(mem.push(0xe5));
ASSERT_TRUE(mem.push(0x83));
ASSERT_TRUE(mem.push(0xec));
ASSERT_TRUE(mem.push(0x08));
ASSERT_TRUE(mem.push(0xb8));
ASSERT_TRUE(mem.push(0x03));
ASSERT_TRUE(mem.push(0x00));
ASSERT_TRUE(mem.push(0x00));
ASSERT_TRUE(mem.push(0x00));
ASSERT_TRUE(mem.push(0xc9));
ASSERT_TRUE(mem.push(0xc3));
#else
ASSERT_TRUE(mem.push(0x55));
ASSERT_TRUE(mem.push(0x48));
ASSERT_TRUE(mem.push(0x89));
ASSERT_TRUE(mem.push(0xe5));
ASSERT_TRUE(mem.push(0xb8));
ASSERT_TRUE(mem.push(0x03));
ASSERT_TRUE(mem.push(0x00));
ASSERT_TRUE(mem.push(0x00));
ASSERT_TRUE(mem.push(0x00));
ASSERT_TRUE(mem.push(0xc9));
ASSERT_TRUE(mem.push(0xc3));
#endif
int (*return3) () = (int (*) ())mem.address();
EXPECT_EQ(3, return3());