This repository was archived by the owner on Sep 2, 2018. It is now read-only.
This repository was archived by the owner on Sep 2, 2018. It is now read-only.
Support "z" output constraint #21
Closed
Description
/Applications/A.app/Contents/Resources/Java/hardware/a/cores/a/wiring_digital.c:176:7: error:
invalid output constraint '=z' in asm
if (*portInputRegister(port) & bit) return HIGH;
^
/Applications/A.app/Contents/Resources/Java/hardware/a/cores/a/A.h:146:54: note: expanded
from macro 'portInputRegister'
#define portInputRegister(P) ( (volatile uint8_t *)( pgm_read_word( port_to_input_PGM + (P))) )
^
/Applications/A.app/Contents/Resources/Java/hardware/tools/avr/avr/include/avr/pgmspace.h:705:41: note:
expanded from macro 'pgm_read_word'
#define pgm_read_word(address_short) pgm_read_word_near(address_short)
^
/Applications/A.app/Contents/Resources/Java/hardware/tools/avr/avr/include/avr/pgmspace.h:418:43: note:
expanded from macro 'pgm_read_word_near'
#define pgm_read_word_near(address_short) __LPM_word((uint16_t)(address_short))
^
/Applications/A.app/Contents/Resources/Java/hardware/tools/avr/avr/include/avr/pgmspace.h:399:29: note:
expanded from macro '__LPM_word'
#define __LPM_word(addr) __LPM_word_classic__(addr)
^
/Applications/A.app/Contents/Resources/Java/hardware/tools/avr/avr/include/avr/pgmspace.h:291:28: note:
expanded from macro '__LPM_word_classic__'
: "=r" (__result), "=z" (__addr16) \
^
code:
#define __LPM_word_classic__(addr) \
(__extension__({ \
uint16_t __addr16 = (uint16_t)(addr); \
uint16_t __result; \
__asm__ \
( \
"lpm" "\n\t" \
"mov %A0, r0" "\n\t" \
"adiw r30, 1" "\n\t" \
"lpm" "\n\t" \
"mov %B0, r0" "\n\t" \
: "=r" (__result), "=z" (__addr16) \
: "1" (__addr16) \
: "r0" \
); \
__result; \
}))
Metadata
Metadata
Assignees
Labels
No labels