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 --- |