A character size load was used instead of pointer size some times.
Unified · Split
| @@ -239,7 +239,7 @@ ST_FUNC void load(int r, SValue *sv) · 238 unmodified lines | ||
| 239 | 239 | int func3, opcode = is_freg(r) ? 0x07 : 0x03, br; |
| 240 | 240 | size = type_size(&sv->type, &align); |
| 241 | 241 | assert (!is_freg(r) || bt == VT_FLOAT || bt == VT_DOUBLE); |
| 242 | − if (bt == VT_FUNC) /* XXX should be done in generic code */ | |
| 242 | + if (bt == VT_PTR || bt == VT_FUNC) /* XXX should be done in generic code */ | |
| 243 | 243 | size = PTR_SIZE; |
| 244 | 244 | func3 = size == 1 ? 0 : size == 2 ? 1 : size == 4 ? 2 : 3; |
| 245 | 245 | if (size < 4 && !is_float(sv->type.t) && (sv->type.t & VT_UNSIGNED)) |