Lines Matching refs:dest

66 static bool is_destructive_overlap(CPUS390XState *env, uint64_t dest,  in is_destructive_overlap()  argument
69 if (!len || src == dest) { in is_destructive_overlap()
74 return dest > src || dest <= wrap_address(env, src + len - 1); in is_destructive_overlap()
76 return dest > src && dest <= src + len - 1; in is_destructive_overlap()
358 static uint32_t do_helper_nc(CPUS390XState *env, uint32_t l, uint64_t dest, in do_helper_nc() argument
367 __func__, l, dest, src); in do_helper_nc()
373 access_prepare(&srca2, env, dest, l, MMU_DATA_LOAD, mmu_idx, ra); in do_helper_nc()
374 access_prepare(&desta, env, dest, l, MMU_DATA_STORE, mmu_idx, ra); in do_helper_nc()
385 uint32_t HELPER(nc)(CPUS390XState *env, uint32_t l, uint64_t dest, in HELPER()
388 return do_helper_nc(env, l, dest, src, GETPC()); in HELPER()
392 static uint32_t do_helper_xc(CPUS390XState *env, uint32_t l, uint64_t dest, in do_helper_xc() argument
401 __func__, l, dest, src); in do_helper_xc()
407 access_prepare(&srca2, env, dest, l, MMU_DATA_LOAD, mmu_idx, ra); in do_helper_xc()
408 access_prepare(&desta, env, dest, l, MMU_DATA_STORE, mmu_idx, ra); in do_helper_xc()
411 if (src == dest) { in do_helper_xc()
426 uint32_t HELPER(xc)(CPUS390XState *env, uint32_t l, uint64_t dest, in HELPER()
429 return do_helper_xc(env, l, dest, src, GETPC()); in HELPER()
433 static uint32_t do_helper_oc(CPUS390XState *env, uint32_t l, uint64_t dest, in do_helper_oc() argument
442 __func__, l, dest, src); in do_helper_oc()
448 access_prepare(&srca2, env, dest, l, MMU_DATA_LOAD, mmu_idx, ra); in do_helper_oc()
449 access_prepare(&desta, env, dest, l, MMU_DATA_STORE, mmu_idx, ra); in do_helper_oc()
460 uint32_t HELPER(oc)(CPUS390XState *env, uint32_t l, uint64_t dest, in HELPER()
463 return do_helper_oc(env, l, dest, src, GETPC()); in HELPER()
467 static uint32_t do_helper_mvc(CPUS390XState *env, uint32_t l, uint64_t dest, in do_helper_mvc() argument
475 __func__, l, dest, src); in do_helper_mvc()
481 access_prepare(&desta, env, dest, l, MMU_DATA_STORE, mmu_idx, ra); in do_helper_mvc()
488 if (dest == src + 1) { in do_helper_mvc()
490 } else if (!is_destructive_overlap(env, dest, src, l)) { in do_helper_mvc()
503 void HELPER(mvc)(CPUS390XState *env, uint32_t l, uint64_t dest, uint64_t src) in HELPER()
505 do_helper_mvc(env, l, dest, src, GETPC()); in HELPER()
509 void HELPER(mvcrl)(CPUS390XState *env, uint64_t l, uint64_t dest, uint64_t src) in HELPER()
521 access_prepare(&desta, env, dest, l, MMU_DATA_STORE, mmu_idx, ra); in HELPER()
530 void HELPER(mvcin)(CPUS390XState *env, uint32_t l, uint64_t dest, uint64_t src) in HELPER()
542 access_prepare(&desta, env, dest, l, MMU_DATA_STORE, mmu_idx, ra); in HELPER()
551 void HELPER(mvn)(CPUS390XState *env, uint32_t l, uint64_t dest, uint64_t src) in HELPER()
562 access_prepare(&srca2, env, dest, l, MMU_DATA_LOAD, mmu_idx, ra); in HELPER()
563 access_prepare(&desta, env, dest, l, MMU_DATA_STORE, mmu_idx, ra); in HELPER()
573 void HELPER(mvo)(CPUS390XState *env, uint32_t l, uint64_t dest, uint64_t src) in HELPER()
585 access_prepare(&desta, env, dest, len_dest, MMU_DATA_STORE, mmu_idx, ra); in HELPER()
588 byte_dest = cpu_ldub_data_ra(env, dest + len_dest - 1, ra); in HELPER()
607 void HELPER(mvz)(CPUS390XState *env, uint32_t l, uint64_t dest, uint64_t src) in HELPER()
618 access_prepare(&srca2, env, dest, l, MMU_DATA_LOAD, mmu_idx, ra); in HELPER()
619 access_prepare(&desta, env, dest, l, MMU_DATA_STORE, mmu_idx, ra); in HELPER()
1026 uint64_t *dest, uint64_t *destlen, in do_mvcl() argument
1031 int len = MIN(*destlen, -(*dest | TARGET_PAGE_MASK)); in do_mvcl()
1057 access_prepare(&desta, env, *dest, len, MMU_DATA_STORE, mmu_idx, ra); in do_mvcl()
1060 *dest = wrap_address(env, *dest + len); in do_mvcl()
1064 access_prepare(&desta, env, *dest, len, MMU_DATA_STORE, mmu_idx, ra); in do_mvcl()
1066 *dest = wrap_address(env, *dest + len); in do_mvcl()
1068 access_prepare(&desta, env, *dest, len, MMU_DATA_STORE, mmu_idx, ra); in do_mvcl()
1078 *dest = wrap_address(env, *dest + len); in do_mvcl()
1090 uint64_t dest = get_address(env, r1); in HELPER() local
1098 if (is_destructive_overlap(env, dest, src, MIN(srclen, destlen))) { in HELPER()
1111 set_address_zero(env, r1, dest); in HELPER()
1122 cur_len = MIN(destlen, -(dest | TARGET_PAGE_MASK)); in HELPER()
1124 access_prepare(&desta, env, dest, cur_len, in HELPER()
1132 access_prepare(&desta, env, dest, cur_len, in HELPER()
1140 dest = wrap_address(env, dest + cur_len); in HELPER()
1143 set_address_zero(env, r1, dest); in HELPER()
1164 uint64_t dest = get_address(env, r1); in HELPER() local
1170 cc = do_mvcl(env, &dest, &destlen, &src, &srclen, pad, 1, ra); in HELPER()
1174 set_address(env, r1, dest); in HELPER()
1186 uint64_t dest = get_address(env, r1); in HELPER() local
1192 cc = do_mvcl(env, &dest, &destlen, &src, &srclen, pad, 2, ra); in HELPER()
1196 set_address(env, r1, dest); in HELPER()
1366 void HELPER(pack)(CPUS390XState *env, uint32_t len, uint64_t dest, uint64_t src) in HELPER()
1373 dest += len_dest; in HELPER()
1378 cpu_stb_data_ra(env, dest, (b << 4) | (b >> 4), ra); in HELPER()
1398 dest--; in HELPER()
1399 cpu_stb_data_ra(env, dest, b, ra); in HELPER()
1403 static inline void do_pkau(CPUS390XState *env, uint64_t dest, uint64_t src, in do_pkau() argument
1412 dest += destlen - 1; in do_pkau()
1432 cpu_stb_data_ra(env, dest, b, ra); in do_pkau()
1433 dest--; in do_pkau()
1438 void HELPER(pka)(CPUS390XState *env, uint64_t dest, uint64_t src, in HELPER()
1441 do_pkau(env, dest, src, srclen, 1, GETPC()); in HELPER()
1444 void HELPER(pku)(CPUS390XState *env, uint64_t dest, uint64_t src, in HELPER()
1447 do_pkau(env, dest, src, srclen, 2, GETPC()); in HELPER()
1450 void HELPER(unpk)(CPUS390XState *env, uint32_t len, uint64_t dest, in HELPER()
1459 dest += len_dest; in HELPER()
1464 cpu_stb_data_ra(env, dest, (b << 4) | (b >> 4), ra); in HELPER()
1478 dest--; in HELPER()
1493 cpu_stb_data_ra(env, dest, cur_byte, ra); in HELPER()
1497 static inline uint32_t do_unpkau(CPUS390XState *env, uint64_t dest, in do_unpkau() argument
1509 dest += destlen - dsize; in do_unpkau()
1541 cpu_stsize_data_ra(env, dest, 0x30 + (b & 0xf), dsize, ra); in do_unpkau()
1542 dest -= dsize; in do_unpkau()
1548 uint32_t HELPER(unpka)(CPUS390XState *env, uint64_t dest, uint32_t destlen, in HELPER()
1551 return do_unpkau(env, dest, destlen, 1, src, GETPC()); in HELPER()
1554 uint32_t HELPER(unpku)(CPUS390XState *env, uint64_t dest, uint32_t destlen, in HELPER()
1557 return do_unpkau(env, dest, destlen, 2, src, GETPC()); in HELPER()
1560 uint32_t HELPER(tp)(CPUS390XState *env, uint64_t dest, uint32_t destlen) in HELPER()
1567 uint8_t b = cpu_ldub_data_ra(env, dest + i, ra); in HELPER()
1982 uint64_t dest = a2; in HELPER() local
1985 if (dest & 0x7) { in HELPER()
1990 cpu_stq_data_ra(env, dest, env->cregs[i], ra); in HELPER()
1991 dest += sizeof(uint64_t); in HELPER()
2002 uint64_t dest = a2; in HELPER() local
2005 if (dest & 0x3) { in HELPER()
2010 cpu_stl_data_ra(env, dest, env->cregs[i], ra); in HELPER()
2011 dest += sizeof(uint32_t); in HELPER()
2471 uint32_t HELPER(mvcos)(CPUS390XState *env, uint64_t dest, uint64_t src, in HELPER()
2484 __func__, dest, src, len); in HELPER()
2548 access_prepare(&desta, env, dest, len, MMU_DATA_STORE, in HELPER()