Skip to content

Commit 8a30d23

Browse files
committed
---
yaml --- r: 2437 b: refs/heads/master c: 3bec4c8 h: refs/heads/master i: 2435: 8cffddd v: v3
1 parent 4bf787d commit 8a30d23

File tree

2 files changed

+18
-19
lines changed

2 files changed

+18
-19
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
refs/heads/master: 2849103f247f608333ca13d71349b4cacebf22dc
2+
refs/heads/master: 3bec4c8193bc6d6d8ea798bab01c30b46dc8163c

trunk/src/comp/middle/trans.rs

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -2902,15 +2902,15 @@ fn drop_ty(@block_ctxt cx,
29022902
ret res(cx, C_nil());
29032903
}
29042904

2905-
fn call_memcpy(@block_ctxt cx,
2905+
fn call_memmove(@block_ctxt cx,
29062906
ValueRef dst,
29072907
ValueRef src,
29082908
ValueRef n_bytes,
29092909
ValueRef align_bytes) -> result {
29102910
// FIXME: switch to the 64-bit variant when on such a platform.
29112911
auto i = cx.fcx.lcx.ccx.intrinsics;
2912-
assert (i.contains_key("llvm.memcpy.p0i8.p0i8.i32"));
2913-
auto memcpy = i.get("llvm.memcpy.p0i8.p0i8.i32");
2912+
assert (i.contains_key("llvm.memmove.p0i8.p0i8.i32"));
2913+
auto memmove = i.get("llvm.memmove.p0i8.p0i8.i32");
29142914
auto src_ptr = cx.build.PointerCast(src, T_ptr(T_i8()));
29152915
auto dst_ptr = cx.build.PointerCast(dst, T_ptr(T_i8()));
29162916
auto size = cx.build.IntCast(n_bytes, T_i32());
@@ -2921,7 +2921,7 @@ fn call_memcpy(@block_ctxt cx,
29212921
{ cx.build.IntCast(C_int(0), T_i32()) };
29222922

29232923
auto volatile = C_bool(false);
2924-
ret res(cx, cx.build.Call(memcpy,
2924+
ret res(cx, cx.build.Call(memmove,
29252925
vec(dst_ptr, src_ptr,
29262926
size, align, volatile)));
29272927
}
@@ -2949,14 +2949,14 @@ fn call_bzero(@block_ctxt cx,
29492949
size, align, volatile)));
29502950
}
29512951

2952-
fn memcpy_ty(@block_ctxt cx,
2952+
fn memmove_ty(@block_ctxt cx,
29532953
ValueRef dst,
29542954
ValueRef src,
29552955
ty.t t) -> result {
29562956
if (ty.type_has_dynamic_size(cx.fcx.lcx.ccx.tcx, t)) {
29572957
auto llsz = size_of(cx, t);
29582958
auto llalign = align_of(llsz.bcx, t);
2959-
ret call_memcpy(llalign.bcx, dst, src, llsz.val, llalign.val);
2959+
ret call_memmove(llalign.bcx, dst, src, llsz.val, llalign.val);
29602960

29612961
} else {
29622962
ret res(cx, cx.build.Store(cx.build.Load(src), dst));
@@ -2993,7 +2993,7 @@ fn copy_ty(@block_ctxt cx,
29932993
if (action == DROP_EXISTING) {
29942994
r = drop_ty(r.bcx, dst, t);
29952995
}
2996-
ret memcpy_ty(r.bcx, dst, src, t);
2996+
ret memmove_ty(r.bcx, dst, src, t);
29972997
}
29982998

29992999
cx.fcx.lcx.ccx.sess.bug("unexpected type in trans.copy_ty: " +
@@ -7299,9 +7299,9 @@ fn trans_main_fn(@local_ctxt cx, ValueRef llcrate, ValueRef crate_map) {
72997299

73007300
fn declare_intrinsics(ModuleRef llmod) -> hashmap[str,ValueRef] {
73017301

7302-
let vec[TypeRef] T_memcpy32_args = vec(T_ptr(T_i8()), T_ptr(T_i8()),
7302+
let vec[TypeRef] T_memmove32_args = vec(T_ptr(T_i8()), T_ptr(T_i8()),
73037303
T_i32(), T_i32(), T_i1());
7304-
let vec[TypeRef] T_memcpy64_args = vec(T_ptr(T_i8()), T_ptr(T_i8()),
7304+
let vec[TypeRef] T_memmove64_args = vec(T_ptr(T_i8()), T_ptr(T_i8()),
73057305
T_i64(), T_i32(), T_i1());
73067306

73077307
let vec[TypeRef] T_memset32_args = vec(T_ptr(T_i8()), T_i8(),
@@ -7311,10 +7311,10 @@ fn declare_intrinsics(ModuleRef llmod) -> hashmap[str,ValueRef] {
73117311

73127312
let vec[TypeRef] T_trap_args = vec();
73137313

7314-
auto memcpy32 = decl_cdecl_fn(llmod, "llvm.memcpy.p0i8.p0i8.i32",
7315-
T_fn(T_memcpy32_args, T_void()));
7316-
auto memcpy64 = decl_cdecl_fn(llmod, "llvm.memcpy.p0i8.p0i8.i64",
7317-
T_fn(T_memcpy64_args, T_void()));
7314+
auto memmove32 = decl_cdecl_fn(llmod, "llvm.memmove.p0i8.p0i8.i32",
7315+
T_fn(T_memmove32_args, T_void()));
7316+
auto memmove64 = decl_cdecl_fn(llmod, "llvm.memmove.p0i8.p0i8.i64",
7317+
T_fn(T_memmove64_args, T_void()));
73187318

73197319
auto memset32 = decl_cdecl_fn(llmod, "llvm.memset.p0i8.i32",
73207320
T_fn(T_memset32_args, T_void()));
@@ -7325,8 +7325,8 @@ fn declare_intrinsics(ModuleRef llmod) -> hashmap[str,ValueRef] {
73257325
T_fn(T_trap_args, T_void()));
73267326

73277327
auto intrinsics = new_str_hash[ValueRef]();
7328-
intrinsics.insert("llvm.memcpy.p0i8.p0i8.i32", memcpy32);
7329-
intrinsics.insert("llvm.memcpy.p0i8.p0i8.i64", memcpy64);
7328+
intrinsics.insert("llvm.memmove.p0i8.p0i8.i32", memmove32);
7329+
intrinsics.insert("llvm.memmove.p0i8.p0i8.i64", memmove64);
73307330
intrinsics.insert("llvm.memset.p0i8.i32", memset32);
73317331
intrinsics.insert("llvm.memset.p0i8.i64", memset64);
73327332
intrinsics.insert("llvm.trap", trap);
@@ -7527,7 +7527,7 @@ fn trans_vec_append_glue(@local_ctxt cx) {
75277527
elt_llsz, bind take_one(elt_tydesc,
75287528
_, _, _)).bcx;
75297529

7530-
ret call_memcpy(bcx, dst, src, n_bytes, elt_llalign);
7530+
ret call_memmove(bcx, dst, src, n_bytes, elt_llalign);
75317531
}
75327532

75337533
// Copy any dst elements in, omitting null if doing str.
@@ -7597,8 +7597,7 @@ fn make_glues(ModuleRef llmod, type_names tn) -> @glue_fns {
75977597

75987598
fn make_common_glue(session.session sess, str output) {
75997599
// FIXME: part of this is repetitive and is probably a good idea
7600-
// to autogen it, but things like the memcpy implementation are not
7601-
// and it might be better to just check in a .ll file.
7600+
// to autogen it.
76027601
auto llmod =
76037602
llvm.LLVMModuleCreateWithNameInContext(Str.buf("rust_out"),
76047603
llvm.LLVMGetGlobalContext());

0 commit comments

Comments
 (0)