cputlb.c (24a4d59aa7fdc337eef1c2b589478ea998e54373) cputlb.c (6046f6e94d8d530ecc28176232479889abbee47e)
1/*
2 * Common CPU TLB handling
3 *
4 * Copyright (c) 2003 Fabrice Bellard
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either

--- 2677 unchanged lines hidden (view full) ---

2686 switch (atom) {
2687 case MO_ATOM_SUBALIGN:
2688 store_parts_leN(p->haddr, 8, int128_getlo(val_le));
2689 return store_parts_leN(p->haddr + 8, p->size - 8,
2690 int128_gethi(val_le));
2691
2692 case MO_ATOM_WITHIN16_PAIR:
2693 /* Since size > 8, this is the half that must be atomic. */
1/*
2 * Common CPU TLB handling
3 *
4 * Copyright (c) 2003 Fabrice Bellard
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either

--- 2677 unchanged lines hidden (view full) ---

2686 switch (atom) {
2687 case MO_ATOM_SUBALIGN:
2688 store_parts_leN(p->haddr, 8, int128_getlo(val_le));
2689 return store_parts_leN(p->haddr + 8, p->size - 8,
2690 int128_gethi(val_le));
2691
2692 case MO_ATOM_WITHIN16_PAIR:
2693 /* Since size > 8, this is the half that must be atomic. */
2694 if (!HAVE_ATOMIC128_RW) {
2694 if (!HAVE_CMPXCHG128) {
2695 cpu_loop_exit_atomic(cpu, ra);
2696 }
2697 return store_whole_le16(p->haddr, p->size, val_le);
2698
2699 case MO_ATOM_IFALIGN_PAIR:
2700 /*
2701 * Since size > 8, both halves are misaligned,
2702 * and so neither is atomic.

--- 300 unchanged lines hidden ---
2695 cpu_loop_exit_atomic(cpu, ra);
2696 }
2697 return store_whole_le16(p->haddr, p->size, val_le);
2698
2699 case MO_ATOM_IFALIGN_PAIR:
2700 /*
2701 * Since size > 8, both halves are misaligned,
2702 * and so neither is atomic.

--- 300 unchanged lines hidden ---