1 /******************************************************************************
2 * Copyright (c) 2004, 2008 IBM Corporation
4 * This program and the accompanying materials
5 * are made available under the terms of the BSD License
6 * which accompanies this distribution, and is available at
7 * http://www.opensource.org/licenses/bsd-license.php
10 * IBM Corporation - initial implementation
11 *****************************************************************************/
18 bswap16_load(uint64_t addr)
22 asm volatile ("lhbrx %0, 0, %1":"=r" (val):"r"(addr));
28 bswap32_load(uint64_t addr)
32 asm volatile ("lwbrx %0, 0, %1":"=r" (val):"r"(addr));
38 bswap16_store(uint64_t addr, uint16_t val)
41 asm volatile ("sthbrx %0, 0, %1"::"r" (val), "r"(addr));
46 bswap32_store(uint64_t addr, uint32_t val)
49 asm volatile ("stwbrx %0, 0, %1"::"r" (val), "r"(addr));
54 load8_ci(uint64_t addr)
58 val = *(uint8_t *) addr;
64 load16_ci(uint64_t addr)
68 val = *(uint16_t *) addr;
74 load32_ci(uint64_t addr)
78 val = *(uint32_t *) addr;
84 load64_ci(uint64_t addr)
88 val = *(uint64_t *) addr;
95 store8_ci(uint64_t addr, uint8_t val)
98 *(uint8_t *) addr = val;
103 store16_ci(uint64_t addr, uint16_t val)
106 *(uint16_t *) addr = val;
111 store32_ci(uint64_t addr, uint32_t val)
114 *(uint32_t *) addr = val;
119 store64_ci(uint64_t addr, uint64_t val)
122 *(uint64_t *) addr = val;