226
226
entry->bb_inst = bb_inst;
227
227
/* we allocated room for values right after stack_entry! */
228
228
entry->values = values = (char*)&entry[1];
230
229
memcpy(&values[func->numBytes - func->numConstants*8], func->constants,
231
230
sizeof(*values)*func->numConstants*8);
1127
1126
DEFINE_OP(OP_BC_MEMCPY) {
1129
1128
void *arg1, *arg2;
1132
1131
READ32(arg3, inst->u.three[2]);
1133
1132
READPOP(arg1, inst->u.three[0], arg3);
1134
1133
READPOP(arg2, inst->u.three[1], arg3);
1135
memcpy(arg1, arg2, arg3);
1134
memcpy(arg1, arg2, (int32_t)arg3);
1136
1135
/* READ64(res, inst->u.three[0]);*/
1137
1136
WRITE64(inst->dest, res);
1140
1139
DEFINE_OP(OP_BC_MEMMOVE) {
1142
1141
void *arg1, *arg2;
1145
READ32(arg3, inst->u.three[2]);
1144
READ64(arg3, inst->u.three[2]);
1146
1145
READPOP(arg1, inst->u.three[0], arg3);
1147
1146
READPOP(arg2, inst->u.three[1], arg3);
1148
memmove(arg1, arg2, arg3);
1147
memmove(arg1, arg2, (int32_t)arg3);
1149
1148
/* READ64(res, inst->u.three[0]);*/
1150
1149
WRITE64(inst->dest, res);
1153
1152
DEFINE_OP(OP_BC_MEMSET) {
1158
READ32(arg3, inst->u.three[2]);
1158
READ64(arg3, inst->u.three[2]);
1159
1159
READPOP(arg1, inst->u.three[0], arg3);
1160
1160
READ32(arg2, inst->u.three[1]);
1161
memset(arg1, arg2, arg3);
1161
memset(arg1, arg2, (int32_t)arg3);
1162
1162
/* READ64(res, inst->u.three[0]);*/
1163
1163
WRITE64(inst->dest, res);