git-svn-id: https://sdcc.svn.sourceforge.net/svnroot/sdcc/trunk/sdcc@1827
4a8a32a2-be11-0410-ad9d-
d568d2c75423
#undef OPT_DISABLE_Z80
#undef OPT_DISABLE_AVR
#undef OPT_DISABLE_DS390
#undef OPT_DISABLE_Z80
#undef OPT_DISABLE_AVR
#undef OPT_DISABLE_DS390
+#undef OPT_DISABLE_TININative
#undef OPT_DISABLE_PIC
#undef OPT_DISABLE_I186
#undef OPT_DISABLE_TLCS900H
#undef OPT_DISABLE_PIC
#undef OPT_DISABLE_I186
#undef OPT_DISABLE_TLCS900H
+ if (AOP_SIZE(result)==1) {
+ instr=MOVB;
+ } else {
+ instr=MOVW;
+ }
emitcode (instr, "%s,%s", AOP_NAME(result)[0], AOP_NAME(left)[0]);
if (AOP_SIZE(result) > 2) {
emitcode (instr, "%s,%s", AOP_NAME(result)[0], AOP_NAME(left)[0]);
if (AOP_SIZE(result) > 2) {
+ if (AOP_SIZE(result)==3) {
+ instr=MOVB;
+ } else {
+ instr=MOVW;
+ }
emitcode (instr, "%s,%s+2", AOP_NAME(result)[1], AOP_NAME(left)[0]);
}
return;
case AOP_REG:
emitcode (instr, "%s,%s+2", AOP_NAME(result)[1], AOP_NAME(left)[0]);
}
return;
case AOP_REG:
+ if (AOP_SIZE(result)==1) {
+ instr=MOVB;
+ } else {
+ instr=MOVW;
+ }
emitcode (instr, "%s,[%s]", AOP_NAME(result)[0], AOP_NAME(left)[0]);
if (AOP_SIZE(result) > 2) {
// result is generic pointer
emitcode (instr, "%s,[%s]", AOP_NAME(result)[0], AOP_NAME(left)[0]);
if (AOP_SIZE(result) > 2) {
// result is generic pointer
emitcode ("mov.b", "%s,#0x%02x", AOP_NAME(result)[1],
PTR_TYPE(SPEC_OCLS(opetype)));
} else {
emitcode ("mov.b", "%s,#0x%02x", AOP_NAME(result)[1],
PTR_TYPE(SPEC_OCLS(opetype)));
} else {
- emitcode (instr, "%s,[%s]", AOP_NAME(result)[1], AOP_NAME(left)[1]);
+ emitcode ("mov.b", "%s,[%s]", AOP_NAME(result)[1], AOP_NAME(left)[1]);
emitcode ("mov", "%s,r0", AOP_NAME(result)[0]);
}
} else {
emitcode ("mov", "%s,r0", AOP_NAME(result)[0]);
}
} else {
- emitcode (instr, "%s,%s", AOP_NAME(result)[0], AOP_NAME(left)[0]);
+ if (AOP_SIZE(result)==3) {
+ emitcode ("mov.b", "%s,%s", AOP_NAME(result)[0], AOP_NAME(left)[0]);
+ } else {
+ emitcode ("mov.w", "%s,%s", AOP_NAME(result)[0], AOP_NAME(left)[0]);
+ }
}
if (AOP_SIZE(result) > 2) {
if (AOP_TYPE(result)==AOP_STK) {
}
if (AOP_SIZE(result) > 2) {
if (AOP_TYPE(result)==AOP_STK) {
emitcode ("mov", "%s,r0", AOP_NAME(result)[1]);
}
} else {
emitcode ("mov", "%s,r0", AOP_NAME(result)[1]);
}
} else {
- emitcode (instr, "%s,%s", AOP_NAME(result)[1], AOP_NAME(left)[1]);
+ emitcode ("mov", "%s,%s", AOP_NAME(result)[1], AOP_NAME(left)[1]);