Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 188465
b: refs/heads/master
c: 69e1d8a
h: refs/heads/master
i:
  188463: bf62ce0
v: v3
  • Loading branch information
Mike Frysinger committed Mar 9, 2010
1 parent 9d318f2 commit 579612c
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 45 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: f05ede3a9416b6eff6c997c12fd749044fb4fdac
refs/heads/master: 69e1d8a61d5aa9e03676dc21fdfb750c5a97bb34
56 changes: 12 additions & 44 deletions trunk/arch/blackfin/include/asm/def_LPBlackfin.h
Original file line number Diff line number Diff line change
Expand Up @@ -25,62 +25,30 @@
# define NOP_PAD_ANOMALY_05000198
#endif

#define bfin_read8(addr) ({ \
uint32_t __v; \
#define _bfin_readX(addr, size, asm_size, asm_ext) ({ \
u32 __v; \
__asm__ __volatile__( \
NOP_PAD_ANOMALY_05000198 \
"%0 = b[%1] (z);" \
"%0 = " #asm_size "[%1]" #asm_ext ";" \
: "=d" (__v) \
: "a" (addr) \
); \
__v; })

#define bfin_read16(addr) ({ \
uint32_t __v; \
__asm__ __volatile__( \
NOP_PAD_ANOMALY_05000198 \
"%0 = w[%1] (z);" \
: "=d" (__v) \
: "a" (addr) \
); \
__v; })

#define bfin_read32(addr) ({ \
uint32_t __v; \
__asm__ __volatile__( \
NOP_PAD_ANOMALY_05000198 \
"%0 = [%1];" \
: "=d" (__v) \
: "a" (addr) \
); \
__v; })

#define bfin_write8(addr, val) \
#define _bfin_writeX(addr, val, size, asm_size) \
__asm__ __volatile__( \
NOP_PAD_ANOMALY_05000198 \
"b[%0] = %1;" \
#asm_size "[%0] = %1;" \
: \
: "a" (addr), "d" ((uint8_t)(val)) \
: "a" (addr), "d" ((u##size)(val)) \
: "memory" \
)

#define bfin_write16(addr, val) \
__asm__ __volatile__( \
NOP_PAD_ANOMALY_05000198 \
"w[%0] = %1;" \
: \
: "a" (addr), "d" ((uint16_t)(val)) \
: "memory" \
)

#define bfin_write32(addr, val) \
__asm__ __volatile__( \
NOP_PAD_ANOMALY_05000198 \
"[%0] = %1;" \
: \
: "a" (addr), "d" (val) \
: "memory" \
)
#define bfin_read8(addr) _bfin_readX(addr, 8, b, (z))
#define bfin_read16(addr) _bfin_readX(addr, 16, w, (z))
#define bfin_read32(addr) _bfin_readX(addr, 32, , )
#define bfin_write8(addr, val) _bfin_writeX(addr, val, 8, b)
#define bfin_write16(addr, val) _bfin_writeX(addr, val, 16, w)
#define bfin_write32(addr, val) _bfin_writeX(addr, val, 32, )

#endif /* __ASSEMBLY__ */

Expand Down

0 comments on commit 579612c

Please sign in to comment.