Commit 73f46872 by Georg-Johann Lay Committed by Georg-Johann Lay

progmem.h (pgm_read_char): Define depending on __AVR_HAVE_LPMX__

	* gcc.target/avr/progmem.h (pgm_read_char): Define depending on
	__AVR_HAVE_LPMX__

From-SVN: r185583
parent 1056a360
2012-03-20 Georg-Johann Lay <avr@gjlay.de>
* gcc.target/avr/progmem.h (pgm_read_char): Define depending on
__AVR_HAVE_LPMX__
2012-03-20 Georg-Johann Lay <avr@gjlay.de>
PR target/49868
* gcc.target/avr/torture/addr-space-2.h: New file.
* gcc.target/avr/torture/addr-space-2-g.h: New test.
......
......@@ -5,6 +5,7 @@
static const char __c[] PROGMEM = (s); \
&__c[0];}))
#ifdef __AVR_HAVE_LPMX__
#define pgm_read_char(addr) \
(__extension__({ \
unsigned int __addr16 = (unsigned int)(addr); \
......@@ -12,3 +13,13 @@
__asm__ ("lpm %0, %a1" \
: "=r" (__result) : "z" (__addr16)); \
__result; }))
#else
#define pgm_read_char(addr) \
(__extension__({ \
unsigned int __addr16 = (unsigned int)(addr); \
char __result; \
__asm__ ("lpm" "\n\t" \
"mov %0, r0" \
: "=r" (__result) : "z" (__addr16)); \
__result; }))
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment