summaryrefslogtreecommitdiff
path: root/src/jit/emitarm64.cpp
diff options
context:
space:
mode:
authorGeoff Norton <grompf@gmail.com>2015-07-25 14:48:20 +0900
committerGeoff Norton <grompf@gmail.com>2015-07-27 21:12:04 -0700
commit16c43e35d1a9a858374757ccf0484a50afdb0b69 (patch)
tree1e8977500a18b28c00716d5378a1d5f0afa3b7a3 /src/jit/emitarm64.cpp
parent0a83c2fc30146b335a24c85de2a5ba33a72bdbdd (diff)
downloadcoreclr-16c43e35d1a9a858374757ccf0484a50afdb0b69.tar.gz
coreclr-16c43e35d1a9a858374757ccf0484a50afdb0b69.tar.bz2
coreclr-16c43e35d1a9a858374757ccf0484a50afdb0b69.zip
[aarch64] Initial aarch64/linux bring up
Diffstat (limited to 'src/jit/emitarm64.cpp')
-rw-r--r--src/jit/emitarm64.cpp95
1 files changed, 91 insertions, 4 deletions
diff --git a/src/jit/emitarm64.cpp b/src/jit/emitarm64.cpp
index 3ae8c4ce35..06e4e73d07 100644
--- a/src/jit/emitarm64.cpp
+++ b/src/jit/emitarm64.cpp
@@ -2864,6 +2864,9 @@ emitter::code_t emitter::emitInsCode(instruction ins, insFormat fmt)
case EA_8BYTE:
result = INS_OPTS_1D;
break;
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
}
}
else if (datasize == EA_16BYTE)
@@ -2882,6 +2885,9 @@ emitter::code_t emitter::emitInsCode(instruction ins, insFormat fmt)
case EA_8BYTE:
result = INS_OPTS_2D;
break;
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
}
}
return result;
@@ -3095,6 +3101,9 @@ emitter::code_t emitter::emitInsCode(instruction ins, insFormat fmt)
case EA_8BYTE:
result = (index < 1);
break;
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
}
}
else if (datasize == EA_16BYTE)
@@ -3113,6 +3122,9 @@ emitter::code_t emitter::emitInsCode(instruction ins, insFormat fmt)
case EA_8BYTE:
result = (index < 2);
break;
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
}
}
}
@@ -3163,6 +3175,9 @@ void emitter::emitIns_I(instruction ins,
assert(!"Instruction cannot be encoded: IF_SI_0A");
}
break;
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
}
assert(fmt != IF_NONE);
@@ -3205,6 +3220,10 @@ void emitter::emitIns_R(instruction ins,
fmt = IF_BR_1A;
break;
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
+
}
assert(fmt != IF_NONE);
@@ -3463,6 +3482,10 @@ void emitter::emitIns_R_I(instruction ins,
}
break;
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
+
} // end switch (ins)
assert(canEncode);
@@ -3551,6 +3574,11 @@ void emitter::emitIns_R_F(instruction ins,
}
}
break;
+
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
+
} // end switch (ins)
assert(canEncode);
@@ -3988,6 +4016,10 @@ void emitter::emitIns_R_R(instruction ins,
fmt = IF_DV_2J;
break;
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
+
} // end switch (ins)
assert(fmt != IF_NONE);
@@ -4087,6 +4119,10 @@ void emitter::emitIns_R_I_I(instruction ins,
}
break;
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
+
} // end switch (ins)
assert(fmt != IF_NONE);
@@ -4527,6 +4563,10 @@ void emitter::emitIns_R_R_I(instruction ins,
isLdSt = true;
break;
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
+
} // end switch (ins)
if (isLdSt)
@@ -4932,6 +4972,10 @@ void emitter::emitIns_R_R_R(instruction ins,
emitIns_R_R_R_I(ins, attr, reg1, reg2, reg3, 0);
return;
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
+
} // end switch (ins)
assert(fmt != IF_NONE);
@@ -5099,6 +5143,10 @@ void emitter::emitIns_R_R_R_I(instruction ins,
isLdSt = true;
break;
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
+
} // end switch (ins)
if (isLdSt)
@@ -5280,6 +5328,10 @@ void emitter::emitIns_R_R_R_Ext(instruction ins,
}
break;
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
+
} // end switch (ins)
assert(scale != -1);
@@ -5415,6 +5467,10 @@ void emitter::emitIns_R_R_I_I(instruction ins,
fmt = IF_DV_2F;
break;
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
+
}
assert(fmt != IF_NONE);
@@ -5478,6 +5534,11 @@ void emitter::emitIns_R_R_R_R(instruction ins,
case INS_invalid:
fmt = IF_NONE;
break;
+
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
+
}
assert(fmt != IF_NONE);
@@ -5522,6 +5583,10 @@ void emitter::emitIns_R_COND(instruction ins,
fmt = IF_DR_1D;
break;
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
+
} // end switch (ins)
assert(fmt != IF_NONE);
@@ -5566,6 +5631,9 @@ void emitter::emitIns_R_R_COND(instruction ins,
cfi.cond = cond;
fmt = IF_DR_2D;
break;
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
} // end switch (ins)
@@ -5616,6 +5684,10 @@ void emitter::emitIns_R_R_R_COND(instruction ins,
fmt = IF_DR_3D;
break;
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
+
} // end switch (ins)
assert(fmt != IF_NONE);
@@ -5664,7 +5736,9 @@ void emitter::emitIns_R_R_FLAGS_COND (instruction ins,
cfi.cond = cond;
fmt = IF_DR_2I;
break;
-
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
} // end switch (ins)
assert(fmt != IF_NONE);
@@ -5723,7 +5797,9 @@ void emitter::emitIns_R_I_FLAGS_COND (instruction ins,
assert(!"Instruction cannot be encoded: ccmp/ccmn imm5");
}
break;
-
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
} // end switch (ins)
assert(fmt != IF_NONE);
@@ -5762,7 +5838,9 @@ void emitter::emitIns_BARR (instruction ins,
fmt = IF_SI_0B;
imm = (ssize_t) barrier;
break;
-
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
} // end switch (ins)
assert(fmt != IF_NONE);
@@ -6295,6 +6373,9 @@ void emitter::emitIns_R_L (instruction ins,
case INS_adrp:
fmt = IF_DI_1E;
break;
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
}
assert(fmt == IF_DI_1E);
@@ -6406,6 +6487,9 @@ void emitter::emitIns_J(instruction ins,
// TODO-ARM64-CQ: fmt = IF_LARGEJMP; /* Assume the jump will be long */
fmt = IF_BI_0B;
break;
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
}
assert((fmt == IF_BI_0A) ||
(fmt == IF_BI_0B));
@@ -8564,6 +8648,9 @@ size_t emitter::emitOutputInstr(insGroup *ig,
case EA_8BYTE:
cmode = 0xE; // 1110
break;
+ default:
+ // TODO-Cleanup: add unreached() here
+ break;
}
code = emitInsCode(ins, fmt);
@@ -9479,7 +9566,7 @@ void emitter::emitDispAddrRI(regNumber reg, insOpts opt, ssize_t
}
else
{
- printf(operStr[1]);
+ printf("%c", operStr[1]);
}
emitDispImm(imm, false);
printf("]");