948 if (src->is_single_cpu()) { |
948 if (src->is_single_cpu()) { |
949 Address dst = frame_map()->address_for_slot(dest->single_stack_ix()); |
949 Address dst = frame_map()->address_for_slot(dest->single_stack_ix()); |
950 if (type == T_OBJECT || type == T_ARRAY) { |
950 if (type == T_OBJECT || type == T_ARRAY) { |
951 __ verify_oop(src->as_register()); |
951 __ verify_oop(src->as_register()); |
952 __ movptr (dst, src->as_register()); |
952 __ movptr (dst, src->as_register()); |
|
953 } else if (type == T_METADATA) { |
|
954 __ movptr (dst, src->as_register()); |
953 } else { |
955 } else { |
954 __ movl (dst, src->as_register()); |
956 __ movl (dst, src->as_register()); |
955 } |
957 } |
956 |
958 |
957 } else if (src->is_double_cpu()) { |
959 } else if (src->is_double_cpu()) { |
1038 if (UseCompressedOops && !wide) { |
1040 if (UseCompressedOops && !wide) { |
1039 __ movl(as_Address(to_addr), compressed_src); |
1041 __ movl(as_Address(to_addr), compressed_src); |
1040 } else { |
1042 } else { |
1041 __ movptr(as_Address(to_addr), src->as_register()); |
1043 __ movptr(as_Address(to_addr), src->as_register()); |
1042 } |
1044 } |
|
1045 break; |
|
1046 case T_METADATA: |
|
1047 // We get here to store a method pointer to the stack to pass to |
|
1048 // a dtrace runtime call. This can't work on 64 bit with |
|
1049 // compressed klass ptrs: T_METADATA can be a compressed klass |
|
1050 // ptr or a 64 bit method pointer. |
|
1051 LP64_ONLY(ShouldNotReachHere()); |
|
1052 __ movptr(as_Address(to_addr), src->as_register()); |
1043 break; |
1053 break; |
1044 case T_ADDRESS: |
1054 case T_ADDRESS: |
1045 __ movptr(as_Address(to_addr), src->as_register()); |
1055 __ movptr(as_Address(to_addr), src->as_register()); |
1046 break; |
1056 break; |
1047 case T_INT: |
1057 case T_INT: |
1116 |
1126 |
1117 if (dest->is_single_cpu()) { |
1127 if (dest->is_single_cpu()) { |
1118 if (type == T_ARRAY || type == T_OBJECT) { |
1128 if (type == T_ARRAY || type == T_OBJECT) { |
1119 __ movptr(dest->as_register(), frame_map()->address_for_slot(src->single_stack_ix())); |
1129 __ movptr(dest->as_register(), frame_map()->address_for_slot(src->single_stack_ix())); |
1120 __ verify_oop(dest->as_register()); |
1130 __ verify_oop(dest->as_register()); |
|
1131 } else if (type == T_METADATA) { |
|
1132 __ movptr(dest->as_register(), frame_map()->address_for_slot(src->single_stack_ix())); |
1121 } else { |
1133 } else { |
1122 __ movl(dest->as_register(), frame_map()->address_for_slot(src->single_stack_ix())); |
1134 __ movl(dest->as_register(), frame_map()->address_for_slot(src->single_stack_ix())); |
1123 } |
1135 } |
1124 |
1136 |
1125 } else if (dest->is_double_cpu()) { |
1137 } else if (dest->is_double_cpu()) { |