2969 assert(offset_from_rsp_in_bytes < frame_map()->reserved_argument_area_size(), "invalid offset"); |
2969 assert(offset_from_rsp_in_bytes < frame_map()->reserved_argument_area_size(), "invalid offset"); |
2970 __ movoop (Address(rsp, offset_from_rsp_in_bytes), o); |
2970 __ movoop (Address(rsp, offset_from_rsp_in_bytes), o); |
2971 } |
2971 } |
2972 |
2972 |
2973 |
2973 |
|
2974 void LIR_Assembler::store_parameter(Metadata* m, int offset_from_rsp_in_words) { |
|
2975 assert(offset_from_rsp_in_words >= 0, "invalid offset from rsp"); |
|
2976 int offset_from_rsp_in_bytes = offset_from_rsp_in_words * BytesPerWord; |
|
2977 assert(offset_from_rsp_in_bytes < frame_map()->reserved_argument_area_size(), "invalid offset"); |
|
2978 __ mov_metadata(Address(rsp, offset_from_rsp_in_bytes), m); |
|
2979 } |
|
2980 |
|
2981 |
2974 // This code replaces a call to arraycopy; no exception may |
2982 // This code replaces a call to arraycopy; no exception may |
2975 // be thrown in this code, they must be thrown in the System.arraycopy |
2983 // be thrown in this code, they must be thrown in the System.arraycopy |
2976 // activation frame; we could save some checks if this would not be the case |
2984 // activation frame; we could save some checks if this would not be the case |
2977 void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) { |
2985 void LIR_Assembler::emit_arraycopy(LIR_OpArrayCopy* op) { |
2978 ciArrayKlass* default_type = op->expected_type(); |
2986 ciArrayKlass* default_type = op->expected_type(); |