Home | History | Annotate | Download | only in x86

Lines Matching refs:skeleton

643   bool r8_form = entry->skeleton.r8_form;
649 if (entry->skeleton.prefix1 > 0) {
651 if (entry->skeleton.prefix2 > 0) {
667 if (entry->skeleton.prefix1 != REX_W && entry->skeleton.prefix2 != REX_W
668 && entry->skeleton.prefix1 != REX && entry->skeleton.prefix2 != REX) {
674 if (entry->skeleton.opcode == 0x0F) {
676 if (entry->skeleton.extra_opcode1 == 0x38 || entry->skeleton.extra_opcode1 == 0x3A) {
685 || (cu_->target64 && entry->skeleton.prefix1 == THREAD_PREFIX)) {
705 size += entry->skeleton.immediate_bytes;
754 if (entry->skeleton.ax_opcode == 0) {
780 return ((entry->skeleton.prefix1 != 0 || NeedsRex(lir->operands[0])) ? 1 : 0) + 1 +
781 entry->skeleton.immediate_bytes;
813 DCHECK_EQ(false, entry->skeleton.r8_form);
816 DCHECK_EQ(false, entry->skeleton.r8_form);
819 DCHECK_EQ(false, entry->skeleton.r8_form);
890 if (entry->skeleton.r8_form) {
893 if (entry->skeleton.immediate_bytes != 1) { // Ignore ...I8 instructions.
902 CHECK(cu_->target64 || !entry->skeleton.r8_form)
917 bool w = (entry->skeleton.prefix1 == REX_W) || (entry->skeleton.prefix2 == REX_W);
921 bool r8_form = entry->skeleton.r8_form;
945 if (entry->skeleton.prefix1 != 0) {
946 if (cu_->target64 && entry->skeleton.prefix1 == THREAD_PREFIX) {
950 if (entry->skeleton.prefix1 == REX_W || entry->skeleton.prefix1 == REX) {
952 rex |= entry->skeleton.prefix1;
956 code_buffer_.push_back(entry->skeleton.prefix1);
959 if (entry->skeleton.prefix2 != 0) {
960 if (entry->skeleton.prefix2 == REX_W || entry->skeleton.prefix1 == REX) {
962 rex |= entry->skeleton.prefix2;
966 code_buffer_.push_back(entry->skeleton.prefix2);
970 DCHECK_EQ(0, entry->skeleton.prefix2);
979 code_buffer_.push_back(entry->skeleton.opcode);
980 if (entry->skeleton.opcode == 0x0F) {
981 code_buffer_.push_back(entry->skeleton.extra_opcode1);
982 if (entry->skeleton.extra_opcode1 == 0x38 || entry->skeleton.extra_opcode1 == 0x3A) {
983 code_buffer_.push_back(entry->skeleton.extra_opcode2);
985 DCHECK_EQ(0, entry->skeleton.extra_opcode2);
988 DCHECK_EQ(0, entry->skeleton.extra_opcode1);
989 DCHECK_EQ(0, entry->skeleton.extra_opcode2);
1063 switch (entry->skeleton.immediate_bytes) {
1091 LOG(FATAL) << "Unexpected immediate bytes (" << entry->skeleton.immediate_bytes
1098 DCHECK_EQ(false, entry->skeleton.r8_form);
1100 DCHECK_EQ(0, entry->skeleton.modrm_opcode);
1101 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1102 DCHECK_EQ(0, entry->skeleton.immediate_bytes);
1106 DCHECK_EQ(false, entry->skeleton.r8_form);
1109 DCHECK(entry->skeleton.opcode != 0x0F ||
1110 (entry->skeleton.extra_opcode1 != 0x38 && entry->skeleton.extra_opcode1 != 0x3A));
1114 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1115 DCHECK_EQ(0, entry->skeleton.immediate_bytes);
1122 uint8_t modrm = (3 << 6) | (entry->skeleton.modrm_opcode << 3) | low_reg;
1124 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1125 DCHECK_EQ(0, entry->skeleton.immediate_bytes);
1129 DCHECK_EQ(false, entry->skeleton.r8_form);
1131 code_buffer_.push_back(entry->skeleton.opcode);
1132 DCHECK_NE(0x0F, entry->skeleton.opcode);
1133 DCHECK_EQ(0, entry->skeleton.extra_opcode1);
1134 DCHECK_EQ(0, entry->skeleton.extra_opcode2);
1136 EmitModrmDisp(entry->skeleton.modrm_opcode, low_base, disp);
1137 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1138 DCHECK_EQ(0, entry->skeleton.immediate_bytes);
1143 DCHECK_EQ(false, entry->skeleton.r8_form);
1147 EmitModrmSibDisp(entry->skeleton.modrm_opcode, low_base, low_index, scale, disp);
1148 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1149 DCHECK_EQ(0, entry->skeleton.immediate_bytes);
1159 DCHECK_EQ(0, entry->skeleton.modrm_opcode);
1160 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1161 DCHECK_EQ(0, entry->skeleton.immediate_bytes);
1178 DCHECK_EQ(0, entry->skeleton.modrm_opcode);
1179 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1180 DCHECK_EQ(0, entry->skeleton.immediate_bytes);
1191 DCHECK_EQ(false, entry->skeleton.r8_form);
1194 EmitModrmDisp(entry->skeleton.modrm_opcode, low_base, disp);
1195 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1202 DCHECK_EQ(false, entry->skeleton.r8_form);
1206 EmitModrmSibDisp(entry->skeleton.modrm_opcode, low_base, low_index, scale, disp);
1207 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1212 DCHECK_EQ(false, entry->skeleton.r8_form);
1213 DCHECK_NE(entry->skeleton.prefix1, 0);
1221 DCHECK_EQ(0, entry->skeleton.modrm_opcode);
1222 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1223 DCHECK_EQ(0, entry->skeleton.immediate_bytes);
1236 DCHECK_EQ(0, entry->skeleton.modrm_opcode);
1237 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1238 DCHECK_EQ(0, entry->skeleton.immediate_bytes);
1243 DCHECK_EQ(false, entry->skeleton.r8_form);
1249 DCHECK_EQ(0, entry->skeleton.modrm_opcode);
1250 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1262 DCHECK_EQ(0, entry->skeleton.modrm_opcode);
1263 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1276 if (RegStorage::RegNum(raw_reg) == rs_rAX.GetRegNum() && entry->skeleton.ax_opcode != 0) {
1277 code_buffer_.push_back(entry->skeleton.ax_opcode);
1281 uint8_t modrm = (3 << 6) | (entry->skeleton.modrm_opcode << 3) | low_reg;
1288 DCHECK_EQ(false, entry->skeleton.r8_form);
1290 EmitModrmThread(entry->skeleton.modrm_opcode);
1296 DCHECK_EQ(entry->skeleton.ax_opcode, 0);
1300 DCHECK_EQ(false, entry->skeleton.r8_form);
1304 switch (entry->skeleton.immediate_bytes) {
1323 << static_cast<uint32_t>(entry->skeleton.immediate_bytes);
1331 code_buffer_.push_back(entry->skeleton.opcode);
1334 code_buffer_.push_back(entry->skeleton.ax_opcode);
1336 DCHECK_NE(0x0F, entry->skeleton.opcode);
1337 DCHECK_EQ(0, entry->skeleton.extra_opcode1);
1338 DCHECK_EQ(0, entry->skeleton.extra_opcode2);
1340 uint8_t modrm = (3 << 6) | (entry->skeleton.modrm_opcode << 3) | low_reg;
1343 DCHECK_EQ(entry->skeleton.immediate_bytes, 1);
1353 code_buffer_.push_back(entry->skeleton.opcode);
1354 DCHECK_NE(0x0F, entry->skeleton.opcode);
1355 DCHECK_EQ(0, entry->skeleton.extra_opcode1);
1356 DCHECK_EQ(0, entry->skeleton.extra_opcode2);
1358 uint8_t modrm = (3 << 6) | (entry->skeleton.modrm_opcode << 3) | low_reg;
1360 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1361 DCHECK_EQ(0, entry->skeleton.immediate_bytes);
1366 DCHECK_EQ(false, entry->skeleton.r8_form);
1369 code_buffer_.push_back(entry->skeleton.opcode);
1370 DCHECK_NE(0x0F, entry->skeleton.opcode);
1371 DCHECK_EQ(0, entry->skeleton.extra_opcode1);
1372 DCHECK_EQ(0, entry->skeleton.extra_opcode2);
1374 EmitModrmDisp(entry->skeleton.modrm_opcode, low_base, displacement);
1375 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1376 DCHECK_EQ(0, entry->skeleton.immediate_bytes);
1380 DCHECK_EQ(false, entry->skeleton.r8_form);
1387 DCHECK_EQ(0, entry->skeleton.modrm_opcode);
1388 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1389 DCHECK_EQ(0, entry->skeleton
1394 DCHECK_EQ(false, entry->skeleton.r8_form);
1397 code_buffer_.push_back(entry->skeleton.opcode);
1400 code_buffer_.push_back(entry->skeleton.ax_opcode);
1402 DCHECK_NE(0x0F, entry->skeleton.opcode);
1403 DCHECK_EQ(0, entry->skeleton.extra_opcode1);
1404 DCHECK_EQ(0, entry->skeleton.extra_opcode2);
1406 EmitModrmDisp(entry->skeleton.modrm_opcode, low_base, disp);
1408 DCHECK_EQ(entry->skeleton.immediate_bytes, 1);
1417 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1418 DCHECK_EQ(0x0F, entry->skeleton.opcode);
1420 DCHECK_EQ(0x90, entry->skeleton.extra_opcode1);
1424 DCHECK_EQ(0, entry->skeleton.extra_opcode2);
1426 uint8_t modrm = (3 << 6) | (entry->skeleton.modrm_opcode << 3) | low_reg;
1428 DCHECK_EQ(entry->skeleton.immediate_bytes, 0);
1433 DCHECK_EQ(false, entry->skeleton.r8_form);
1434 if (entry->skeleton.prefix1 != 0) {
1435 code_buffer_.push_back(entry->skeleton.prefix1);
1436 if (entry->skeleton.prefix2 != 0) {
1437 code_buffer_.push_back(entry->skeleton.prefix2);
1440 DCHECK_EQ(0, entry->skeleton.prefix2);
1442 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1443 DCHECK_EQ(0x0F, entry->skeleton.opcode);
1445 DCHECK_EQ(0x90, entry->skeleton.extra_opcode1);
1449 DCHECK_EQ(0, entry->skeleton.extra_opcode2);
1451 EmitModrmDisp(entry->skeleton.modrm_opcode, low_base, disp);
1452 DCHECK_EQ(entry->skeleton.immediate_bytes, 0);
1458 DCHECK_EQ(false, entry->skeleton.r8_form);
1468 DCHECK_EQ(0, entry->skeleton.immediate_bytes);
1469 DCHECK_EQ(0, entry->skeleton.modrm_opcode);
1484 DCHECK_EQ(false, entry->skeleton.r8_form);
1494 DCHECK_EQ(0, entry->skeleton.immediate_bytes);
1495 DCHECK_EQ(0, entry->skeleton.modrm_opcode);
1519 DCHECK_EQ(false, entry->skeleton.r8_form);
1521 code_buffer_.push_back(entry->skeleton.opcode);
1523 uint8_t modrm = (3 << 6) | (entry->skeleton.modrm_opcode << 3) | low_reg;
1547 DCHECK_EQ(false, entry->skeleton.r8_form);
1550 EmitModrmDisp(entry->skeleton.modrm_opcode, low_base, disp);
1551 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1552 DCHECK_EQ(0, entry->skeleton.immediate_bytes);
1556 DCHECK_EQ(false, entry->skeleton.r8_form);
1558 DCHECK_EQ(4, entry->skeleton.immediate_bytes);
1563 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1567 DCHECK_EQ(false, entry->skeleton.r8_form);
1568 DCHECK_NE(entry->skeleton.prefix1, 0);
1570 EmitModrmThread(entry->skeleton.modrm_opcode);
1575 DCHECK_EQ(0, entry->skeleton.ax_opcode);
1576 DCHECK_EQ(0, entry->skeleton.immediate_bytes);
1591 DCHECK_EQ(false, entry->skeleton.r8_form);
1593 code_buffer_.push_back(entry->skeleton.opcode);
1594 DCHECK_NE(0x0F, entry->skeleton.opcode);
1595 DCHECK_EQ(0, entry->skeleton.extra_opcode1);
1596 DCHECK_EQ(0, entry->skeleton.extra_opcode2);
1605 DCHECK_EQ(0, entry->skeleton.immediate_bytes);
1608 code_buffer_.push_back(entry->skeleton.opcode + low_reg);
1614 DCHECK_EQ(0, entry->skeleton.modrm_opcode);
1615 DCHECK_EQ(0, entry->skeleton.ax_opcode);