4225 Values* args = state()->pop_arguments(callee->arg_size()); |
4225 Values* args = state()->pop_arguments(callee->arg_size()); |
4226 Value array = args->at(0); |
4226 Value array = args->at(0); |
4227 Value index = args->at(1); |
4227 Value index = args->at(1); |
4228 if (is_store) { |
4228 if (is_store) { |
4229 Value value = args->at(2); |
4229 Value value = args->at(2); |
4230 Instruction* store = append(new StoreIndexed(array, index, NULL, T_CHAR, value, state_before, false)); |
4230 Instruction* store = append(new StoreIndexed(array, index, NULL, T_CHAR, value, state_before, false, true)); |
4231 store->set_flag(Instruction::NeedsRangeCheckFlag, false); |
4231 store->set_flag(Instruction::NeedsRangeCheckFlag, false); |
4232 _memory->store_value(value); |
4232 _memory->store_value(value); |
4233 } else { |
4233 } else { |
4234 Instruction* load = append(new LoadIndexed(array, index, NULL, T_CHAR, state_before)); |
4234 Instruction* load = append(new LoadIndexed(array, index, NULL, T_CHAR, state_before, true)); |
4235 load->set_flag(Instruction::NeedsRangeCheckFlag, false); |
4235 load->set_flag(Instruction::NeedsRangeCheckFlag, false); |
4236 push(load->type(), load); |
4236 push(load->type(), load); |
4237 } |
4237 } |
4238 } |
4238 } |
4239 |
4239 |