Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(161)

Side by Side Diff: src/s390/assembler-s390.cc

Issue 2685733002: S390: Use macro to declare rxy format assember function (Closed)
Patch Set: Use static cast for casting integer to Condition Created 3 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/s390/assembler-s390.h ('k') | src/s390/constants-s390.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 1994-2006 Sun Microsystems Inc. 1 // Copyright (c) 1994-2006 Sun Microsystems Inc.
2 // All Rights Reserved. 2 // All Rights Reserved.
3 // 3 //
4 // Redistribution and use in source and binary forms, with or without 4 // Redistribution and use in source and binary forms, with or without
5 // modification, are permitted provided that the following conditions 5 // modification, are permitted provided that the following conditions
6 // are met: 6 // are met:
7 // 7 //
8 // - Redistributions of source code must retain the above copyright notice, 8 // - Redistributions of source code must retain the above copyright notice,
9 // this list of conditions and the following disclaimer. 9 // this list of conditions and the following disclaimer.
10 // 10 //
(...skipping 808 matching lines...) Expand 10 before | Expand all | Expand 10 after
819 DCHECK(is_uint16(op)); 819 DCHECK(is_uint16(op));
820 uint64_t code = (static_cast<uint64_t>(op & 0xFF00)) * B32 | 820 uint64_t code = (static_cast<uint64_t>(op & 0xFF00)) * B32 |
821 (static_cast<uint64_t>(r1.code())) * B36 | 821 (static_cast<uint64_t>(r1.code())) * B36 |
822 (static_cast<uint64_t>(x2.code())) * B32 | 822 (static_cast<uint64_t>(x2.code())) * B32 |
823 (static_cast<uint64_t>(b2.code())) * B28 | 823 (static_cast<uint64_t>(b2.code())) * B28 |
824 (static_cast<uint64_t>(d2 & 0x0FFF)) * B16 | 824 (static_cast<uint64_t>(d2 & 0x0FFF)) * B16 |
825 (static_cast<uint64_t>(op & 0x00FF)); 825 (static_cast<uint64_t>(op & 0x00FF));
826 emit6bytes(code); 826 emit6bytes(code);
827 } 827 }
828 828
829 // RXY format: <insn> R1,D2(X2,B2)
830 // +--------+----+----+----+-------------+--------+--------+
831 // | OpCode | R1 | X2 | B2 | DL2 | DH2 | OpCode |
832 // +--------+----+----+----+-------------+--------+--------+
833 // 0 8 12 16 20 32 36 40 47
834 #define RXY_FORM_EMIT(name, op) \
835 void Assembler::name(Register r1, Register x2, Register b2, Disp d2) { \
836 rxy_form(op, r1, x2, b2, d2); \
837 } \
838 void Assembler::name(Register r1, const MemOperand& opnd) { \
839 name(r1, opnd.getIndexRegister(), opnd.getBaseRegister(), \
840 opnd.getDisplacement()); \
841 }
842
843 void Assembler::rxy_form(Opcode op, Register r1, Register x2, Register b2,
844 Disp d2) {
845 DCHECK(is_int20(d2));
846 DCHECK(is_uint16(op));
847 uint64_t code = (static_cast<uint64_t>(op & 0xFF00)) * B32 |
848 (static_cast<uint64_t>(r1.code())) * B36 |
849 (static_cast<uint64_t>(x2.code())) * B32 |
850 (static_cast<uint64_t>(b2.code())) * B28 |
851 (static_cast<uint64_t>(d2 & 0x0FFF)) * B16 |
852 (static_cast<uint64_t>(d2 & 0x0FF000)) >> 4 |
853 (static_cast<uint64_t>(op & 0x00FF));
854 emit6bytes(code);
855 }
856
857 void Assembler::rxy_form(Opcode op, Register r1, Condition m3, Register b2,
858 Disp d2) {
859 DCHECK(is_int20(d2));
860 DCHECK(is_uint16(op));
861 uint64_t code = (static_cast<uint64_t>(op & 0xFF00)) * B32 |
862 (static_cast<uint64_t>(r1.code())) * B36 |
863 (static_cast<uint64_t>(m3 & 0xF)) * B32 |
864 (static_cast<uint64_t>(b2.code())) * B28 |
865 (static_cast<uint64_t>(d2 & 0x0FFF)) * B16 |
866 (static_cast<uint64_t>(d2 & 0x0FF000)) >> 4 |
867 (static_cast<uint64_t>(op & 0x00FF));
868 emit6bytes(code);
869 }
870
871 void Assembler::rxy_form(Opcode op, DoubleRegister r1, Register x2, Register b2,
872 Disp d2) {
873 DCHECK(is_int20(d2));
874 DCHECK(is_uint16(op));
875 uint64_t code = (static_cast<uint64_t>(op & 0xFF00)) * B32 |
876 (static_cast<uint64_t>(r1.code())) * B36 |
877 (static_cast<uint64_t>(x2.code())) * B32 |
878 (static_cast<uint64_t>(b2.code())) * B28 |
879 (static_cast<uint64_t>(d2 & 0x0FFF)) * B16 |
880 (static_cast<uint64_t>(d2 & 0x0FF000)) >> 4 |
881 (static_cast<uint64_t>(op & 0x00FF));
882 emit6bytes(code);
883 }
884
885 // RRS format: <insn> R1,R2,M3,D4(B4) 829 // RRS format: <insn> R1,R2,M3,D4(B4)
886 // +--------+----+----+----+-------------+----+---+--------+ 830 // +--------+----+----+----+-------------+----+---+--------+
887 // | OpCode | R1 | R2 | B4 | D4 | M3 |///| OpCode | 831 // | OpCode | R1 | R2 | B4 | D4 | M3 |///| OpCode |
888 // +--------+----+----+----+-------------+----+---+--------+ 832 // +--------+----+----+----+-------------+----+---+--------+
889 // 0 8 12 16 20 32 36 40 47 833 // 0 8 12 16 20 32 36 40 47
890 #define RRS_FORM_EMIT(name, op) \ 834 #define RRS_FORM_EMIT(name, op) \
891 void Assembler::name(Register r1, Register r2, Register b4, Disp d4, \ 835 void Assembler::name(Register r1, Register r2, Register b4, Disp d4, \
892 Condition m3) { \ 836 Condition m3) { \
893 rrs_form(op, r1, r2, b4, d4, m3); \ 837 rrs_form(op, r1, r2, b4, d4, m3); \
894 } \ 838 } \
(...skipping 401 matching lines...) Expand 10 before | Expand all | Expand 10 after
1296 Register r2) { 1240 Register r2) {
1297 uint32_t code = op << 16 | m3 * B12 | m4 * B8 | r1.code() * B4 | r2.code(); 1241 uint32_t code = op << 16 | m3 * B12 | m4 * B8 | r1.code() * B4 | r2.code();
1298 emit4bytes(code); 1242 emit4bytes(code);
1299 } 1243 }
1300 1244
1301 // end of S390 Instruction generation 1245 // end of S390 Instruction generation
1302 1246
1303 // start of S390 instruction 1247 // start of S390 instruction
1304 RXE_FORM_EMIT(ceb, CEB) 1248 RXE_FORM_EMIT(ceb, CEB)
1305 SS1_FORM_EMIT(ed, ED) 1249 SS1_FORM_EMIT(ed, ED)
1306 RXY_FORM_EMIT(ley, LEY)
1307 RXY_FORM_EMIT(lrv, LRV)
1308 RXY_FORM_EMIT(lrvg, LRVG)
1309 RXY_FORM_EMIT(lrvh, LRVH)
1310 SS1_FORM_EMIT(mvn, MVN) 1250 SS1_FORM_EMIT(mvn, MVN)
1311 SS1_FORM_EMIT(nc, NC) 1251 SS1_FORM_EMIT(nc, NC)
1312 SI_FORM_EMIT(ni, NI) 1252 SI_FORM_EMIT(ni, NI)
1313 RI1_FORM_EMIT(nilh, NILH) 1253 RI1_FORM_EMIT(nilh, NILH)
1314 RI1_FORM_EMIT(nill, NILL) 1254 RI1_FORM_EMIT(nill, NILL)
1315 RI1_FORM_EMIT(oill, OILL) 1255 RI1_FORM_EMIT(oill, OILL)
1316 RXY_FORM_EMIT(pfd, PFD)
1317 RXY_FORM_EMIT(slgf, SLGF)
1318 RXY_FORM_EMIT(strvh, STRVH)
1319 RXY_FORM_EMIT(strv, STRV)
1320 RXY_FORM_EMIT(strvg, STRVG)
1321 RI1_FORM_EMIT(tmll, TMLL) 1256 RI1_FORM_EMIT(tmll, TMLL)
1322 SS1_FORM_EMIT(tr, TR) 1257 SS1_FORM_EMIT(tr, TR)
1323 S_FORM_EMIT(ts, TS) 1258 S_FORM_EMIT(ts, TS)
1324 1259
1325 // ------------------------- 1260 // -------------------------
1326 // Load Address Instructions 1261 // Load Address Instructions
1327 // ------------------------- 1262 // -------------------------
1328 // Load Address Register-Storage
1329 void Assembler::lay(Register r1, const MemOperand& opnd) {
1330 rxy_form(LAY, r1, opnd.rx(), opnd.rb(), opnd.offset());
1331 }
1332
1333 // Load Address Relative Long 1263 // Load Address Relative Long
1334 void Assembler::larl(Register r1, Label* l) { 1264 void Assembler::larl(Register r1, Label* l) {
1335 larl(r1, Operand(branch_offset(l))); 1265 larl(r1, Operand(branch_offset(l)));
1336 } 1266 }
1337 1267
1338 // ----------------- 1268 // -----------------
1339 // Load Instructions 1269 // Load Instructions
1340 // ----------------- 1270 // -----------------
1341 // Load Byte Register-Storage (32<-8)
1342 void Assembler::lb(Register r, const MemOperand& src) {
1343 rxy_form(LB, r, src.rx(), src.rb(), src.offset());
1344 }
1345
1346 // Load Byte Register-Storage (64<-8)
1347 void Assembler::lgb(Register r, const MemOperand& src) {
1348 rxy_form(LGB, r, src.rx(), src.rb(), src.offset());
1349 }
1350
1351 // Load Halfword Register-Storage (32<-16)
1352 void Assembler::lhy(Register r, const MemOperand& src) {
1353 rxy_form(LHY, r, src.rx(), src.rb(), src.offset());
1354 }
1355
1356 // Load Halfword Register-Storage (64<-16)
1357 void Assembler::lgh(Register r, const MemOperand& src) {
1358 rxy_form(LGH, r, src.rx(), src.rb(), src.offset());
1359 }
1360
1361 // Load Register-Storage (32)
1362 void Assembler::ly(Register r, const MemOperand& src) {
1363 rxy_form(LY, r, src.rx(), src.rb(), src.offset());
1364 }
1365
1366 // Load Register-Storage (64)
1367 void Assembler::lg(Register r, const MemOperand& src) {
1368 rxy_form(LG, r, src.rx(), src.rb(), src.offset());
1369 }
1370
1371 // Load Register-Storage (64<-32)
1372 void Assembler::lgf(Register r, const MemOperand& src) {
1373 rxy_form(LGF, r, src.rx(), src.rb(), src.offset());
1374 }
1375
1376 // Load Halfword Immediate (32) 1271 // Load Halfword Immediate (32)
1377 void Assembler::lhi(Register r, const Operand& imm) { ri_form(LHI, r, imm); } 1272 void Assembler::lhi(Register r, const Operand& imm) { ri_form(LHI, r, imm); }
1378 1273
1379 // Load Halfword Immediate (64) 1274 // Load Halfword Immediate (64)
1380 void Assembler::lghi(Register r, const Operand& imm) { ri_form(LGHI, r, imm); } 1275 void Assembler::lghi(Register r, const Operand& imm) { ri_form(LGHI, r, imm); }
1381 1276
1382 // --------------------------
1383 // Load And Test Instructions
1384 // --------------------------
1385 // Load and Test Register-Storage (32)
1386 void Assembler::lt_z(Register r1, const MemOperand& opnd) {
1387 rxy_form(LT, r1, opnd.rx(), opnd.rb(), opnd.offset());
1388 }
1389
1390 // Load and Test Register-Storage (64)
1391 void Assembler::ltg(Register r1, const MemOperand& opnd) {
1392 rxy_form(LTG, r1, opnd.rx(), opnd.rb(), opnd.offset());
1393 }
1394
1395 // ------------------------- 1277 // -------------------------
1396 // Load Logical Instructions 1278 // Load Logical Instructions
1397 // ------------------------- 1279 // -------------------------
1398 // Load Logical Character (32) - loads a byte and zero ext.
1399 void Assembler::llc(Register r1, const MemOperand& opnd) {
1400 rxy_form(LLC, r1, opnd.rx(), opnd.rb(), opnd.offset());
1401 }
1402
1403 // Load Logical Character (64) - loads a byte and zero ext.
1404 void Assembler::llgc(Register r1, const MemOperand& opnd) {
1405 rxy_form(LLGC, r1, opnd.rx(), opnd.rb(), opnd.offset());
1406 }
1407
1408 // Load Logical halfword Register-Storage (64<-32)
1409 void Assembler::llgf(Register r1, const MemOperand& opnd) {
1410 rxy_form(LLGF, r1, opnd.rx(), opnd.rb(), opnd.offset());
1411 }
1412
1413 // Load Logical halfword Register-Storage (32)
1414 void Assembler::llh(Register r1, const MemOperand& opnd) {
1415 rxy_form(LLH, r1, opnd.rx(), opnd.rb(), opnd.offset());
1416 }
1417
1418 // Load Logical halfword Register-Storage (64)
1419 void Assembler::llgh(Register r1, const MemOperand& opnd) {
1420 rxy_form(LLGH, r1, opnd.rx(), opnd.rb(), opnd.offset());
1421 }
1422
1423 // Load On Condition R-R (32) 1280 // Load On Condition R-R (32)
1424 void Assembler::locr(Condition m3, Register r1, Register r2) { 1281 void Assembler::locr(Condition m3, Register r1, Register r2) {
1425 rrf2_form(LOCR << 16 | m3 * B12 | r1.code() * B4 | r2.code()); 1282 rrf2_form(LOCR << 16 | m3 * B12 | r1.code() * B4 | r2.code());
1426 } 1283 }
1427 1284
1428 // Load On Condition R-R (64) 1285 // Load On Condition R-R (64)
1429 void Assembler::locgr(Condition m3, Register r1, Register r2) { 1286 void Assembler::locgr(Condition m3, Register r1, Register r2) {
1430 rrf2_form(LOCGR << 16 | m3 * B12 | r1.code() * B4 | r2.code()); 1287 rrf2_form(LOCGR << 16 | m3 * B12 | r1.code() * B4 | r2.code());
1431 } 1288 }
1432 1289
1433 // Load On Condition R-M (32) 1290 // Load On Condition R-M (32)
1434 void Assembler::loc(Condition m3, Register r1, const MemOperand& src) { 1291 void Assembler::loc(Condition m3, Register r1, const MemOperand& src) {
1435 rxy_form(LOC, r1, m3, src.rb(), src.offset()); 1292 rsy_form(LOC, r1, m3, src.rb(), src.offset());
1436 } 1293 }
1437 1294
1438 // Load On Condition R-M (64) 1295 // Load On Condition R-M (64)
1439 void Assembler::locg(Condition m3, Register r1, const MemOperand& src) { 1296 void Assembler::locg(Condition m3, Register r1, const MemOperand& src) {
1440 rxy_form(LOCG, r1, m3, src.rb(), src.offset()); 1297 rsy_form(LOCG, r1, m3, src.rb(), src.offset());
1441 } 1298 }
1442 1299
1443 // ------------------- 1300 // -------------------
1444 // Branch Instructions 1301 // Branch Instructions
1445 // ------------------- 1302 // -------------------
1446 // Branch on Count (64) 1303 // Branch on Count (64)
1447 void Assembler::bctg(Register r, const MemOperand& opnd) {
1448 rxy_form(BCTG, r, opnd.rx(), opnd.rb(), opnd.offset());
1449 }
1450
1451 // Branch Relative and Save (32) 1304 // Branch Relative and Save (32)
1452 void Assembler::bras(Register r, const Operand& opnd) { 1305 void Assembler::bras(Register r, const Operand& opnd) {
1453 ri_form(BRAS, r, opnd); 1306 ri_form(BRAS, r, opnd);
1454 } 1307 }
1455 1308
1456 // Branch relative on Condition (32) 1309 // Branch relative on Condition (32)
1457 void Assembler::brc(Condition c, const Operand& opnd) { ri_form(BRC, c, opnd); } 1310 void Assembler::brc(Condition c, const Operand& opnd) { ri_form(BRC, c, opnd); }
1458 1311
1459 // Branch On Count (32) 1312 // Branch On Count (32)
1460 void Assembler::brct(Register r1, const Operand& imm) { 1313 void Assembler::brct(Register r1, const Operand& imm) {
1461 // BRCT encodes # of halfwords, so divide by 2. 1314 // BRCT encodes # of halfwords, so divide by 2.
1462 int16_t numHalfwords = static_cast<int16_t>(imm.immediate()) / 2; 1315 int16_t numHalfwords = static_cast<int16_t>(imm.immediate()) / 2;
1463 Operand halfwordOp = Operand(numHalfwords); 1316 Operand halfwordOp = Operand(numHalfwords);
1464 halfwordOp.setBits(16); 1317 halfwordOp.setBits(16);
1465 ri_form(BRCT, r1, halfwordOp); 1318 ri_form(BRCT, r1, halfwordOp);
1466 } 1319 }
1467 1320
1468 // Branch On Count (32) 1321 // Branch On Count (32)
1469 void Assembler::brctg(Register r1, const Operand& imm) { 1322 void Assembler::brctg(Register r1, const Operand& imm) {
1470 // BRCTG encodes # of halfwords, so divide by 2. 1323 // BRCTG encodes # of halfwords, so divide by 2.
1471 int16_t numHalfwords = static_cast<int16_t>(imm.immediate()) / 2; 1324 int16_t numHalfwords = static_cast<int16_t>(imm.immediate()) / 2;
1472 Operand halfwordOp = Operand(numHalfwords); 1325 Operand halfwordOp = Operand(numHalfwords);
1473 halfwordOp.setBits(16); 1326 halfwordOp.setBits(16);
1474 ri_form(BRCTG, r1, halfwordOp); 1327 ri_form(BRCTG, r1, halfwordOp);
1475 } 1328 }
1476 1329
1477 // -------------------- 1330 // --------------------
1478 // Compare Instructions 1331 // Compare Instructions
1479 // -------------------- 1332 // --------------------
1480 // Compare Register-Storage (32)
1481 void Assembler::cy(Register r, const MemOperand& opnd) {
1482 rxy_form(CY, r, opnd.rx(), opnd.rb(), opnd.offset());
1483 }
1484
1485 // Compare Register-Storage (64)
1486 void Assembler::cg(Register r, const MemOperand& opnd) {
1487 rxy_form(CG, r, opnd.rx(), opnd.rb(), opnd.offset());
1488 }
1489
1490 // Compare Halfword Register-Storage (32)
1491 void Assembler::chy(Register r, const MemOperand& opnd) {
1492 rxy_form(CHY, r, opnd.rx(), opnd.rb(), opnd.offset());
1493 }
1494
1495 // Compare Halfword Immediate (32) 1333 // Compare Halfword Immediate (32)
1496 void Assembler::chi(Register r, const Operand& opnd) { ri_form(CHI, r, opnd); } 1334 void Assembler::chi(Register r, const Operand& opnd) { ri_form(CHI, r, opnd); }
1497 1335
1498 // Compare Halfword Immediate (64) 1336 // Compare Halfword Immediate (64)
1499 void Assembler::cghi(Register r, const Operand& opnd) { 1337 void Assembler::cghi(Register r, const Operand& opnd) {
1500 ri_form(CGHI, r, opnd); 1338 ri_form(CGHI, r, opnd);
1501 } 1339 }
1502 1340
1503 // ---------------------------- 1341 // ----------------------------
1504 // Compare Logical Instructions 1342 // Compare Logical Instructions
1505 // ---------------------------- 1343 // ----------------------------
1506 // Compare Logical Register-Storage (32)
1507 void Assembler::cly(Register r, const MemOperand& opnd) {
1508 rxy_form(CLY, r, opnd.rx(), opnd.rb(), opnd.offset());
1509 }
1510
1511 // Compare Logical Register-Storage (64)
1512 void Assembler::clg(Register r, const MemOperand& opnd) {
1513 rxy_form(CLG, r, opnd.rx(), opnd.rb(), opnd.offset());
1514 }
1515
1516 // Compare Immediate (Mem - Imm) (8) 1344 // Compare Immediate (Mem - Imm) (8)
1517 void Assembler::cli(const MemOperand& opnd, const Operand& imm) { 1345 void Assembler::cli(const MemOperand& opnd, const Operand& imm) {
1518 si_form(CLI, imm, opnd.rb(), opnd.offset()); 1346 si_form(CLI, imm, opnd.rb(), opnd.offset());
1519 } 1347 }
1520 1348
1521 // Compare Immediate (Mem - Imm) (8) 1349 // Compare Immediate (Mem - Imm) (8)
1522 void Assembler::cliy(const MemOperand& opnd, const Operand& imm) { 1350 void Assembler::cliy(const MemOperand& opnd, const Operand& imm) {
1523 siy_form(CLIY, imm, opnd.rb(), opnd.offset()); 1351 siy_form(CLIY, imm, opnd.rb(), opnd.offset());
1524 } 1352 }
1525 1353
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
1576 // Move charactor - mem to mem operation 1404 // Move charactor - mem to mem operation
1577 void Assembler::mvc(const MemOperand& opnd1, const MemOperand& opnd2, 1405 void Assembler::mvc(const MemOperand& opnd1, const MemOperand& opnd2,
1578 uint32_t length) { 1406 uint32_t length) {
1579 ss_form(MVC, length - 1, opnd1.getBaseRegister(), opnd1.getDisplacement(), 1407 ss_form(MVC, length - 1, opnd1.getBaseRegister(), opnd1.getDisplacement(),
1580 opnd2.getBaseRegister(), opnd2.getDisplacement()); 1408 opnd2.getBaseRegister(), opnd2.getDisplacement());
1581 } 1409 }
1582 1410
1583 // ----------------------- 1411 // -----------------------
1584 // 32-bit Add Instructions 1412 // 32-bit Add Instructions
1585 // ----------------------- 1413 // -----------------------
1586 // Add Register-Storage (32)
1587 void Assembler::ay(Register r1, const MemOperand& opnd) {
1588 rxy_form(AY, r1, opnd.rx(), opnd.rb(), opnd.offset());
1589 }
1590
1591 // Add Halfword Register-Storage (32)
1592 void Assembler::ahy(Register r1, const MemOperand& opnd) {
1593 rxy_form(AHY, r1, opnd.rx(), opnd.rb(), opnd.offset());
1594 }
1595
1596 // Add Halfword Immediate (32) 1414 // Add Halfword Immediate (32)
1597 void Assembler::ahi(Register r1, const Operand& i2) { ri_form(AHI, r1, i2); } 1415 void Assembler::ahi(Register r1, const Operand& i2) { ri_form(AHI, r1, i2); }
1598 1416
1599 // Add Halfword Immediate (32) 1417 // Add Halfword Immediate (32)
1600 void Assembler::ahik(Register r1, Register r3, const Operand& i2) { 1418 void Assembler::ahik(Register r1, Register r3, const Operand& i2) {
1601 rie_form(AHIK, r1, r3, i2); 1419 rie_form(AHIK, r1, r3, i2);
1602 } 1420 }
1603 1421
1604 // Add Register-Register-Register (32) 1422 // Add Register-Register-Register (32)
1605 void Assembler::ark(Register r1, Register r2, Register r3) { 1423 void Assembler::ark(Register r1, Register r2, Register r3) {
1606 rrf1_form(ARK, r1, r2, r3); 1424 rrf1_form(ARK, r1, r2, r3);
1607 } 1425 }
1608 1426
1609 // Add Storage-Imm (32) 1427 // Add Storage-Imm (32)
1610 void Assembler::asi(const MemOperand& opnd, const Operand& imm) { 1428 void Assembler::asi(const MemOperand& opnd, const Operand& imm) {
1611 DCHECK(is_int8(imm.imm_)); 1429 DCHECK(is_int8(imm.imm_));
1612 DCHECK(is_int20(opnd.offset())); 1430 DCHECK(is_int20(opnd.offset()));
1613 siy_form(ASI, Operand(0xff & imm.imm_), opnd.rb(), 0xfffff & opnd.offset()); 1431 siy_form(ASI, Operand(0xff & imm.imm_), opnd.rb(), 0xfffff & opnd.offset());
1614 } 1432 }
1615 1433
1616 // ----------------------- 1434 // -----------------------
1617 // 64-bit Add Instructions 1435 // 64-bit Add Instructions
1618 // ----------------------- 1436 // -----------------------
1619 // Add Register-Storage (64)
1620 void Assembler::ag(Register r1, const MemOperand& opnd) {
1621 rxy_form(AG, r1, opnd.rx(), opnd.rb(), opnd.offset());
1622 }
1623
1624 // Add Register-Storage (64<-32)
1625 void Assembler::agf(Register r1, const MemOperand& opnd) {
1626 rxy_form(AGF, r1, opnd.rx(), opnd.rb(), opnd.offset());
1627 }
1628
1629 // Add Halfword Immediate (64) 1437 // Add Halfword Immediate (64)
1630 void Assembler::aghi(Register r1, const Operand& i2) { ri_form(AGHI, r1, i2); } 1438 void Assembler::aghi(Register r1, const Operand& i2) { ri_form(AGHI, r1, i2); }
1631 1439
1632 // Add Halfword Immediate (64) 1440 // Add Halfword Immediate (64)
1633 void Assembler::aghik(Register r1, Register r3, const Operand& i2) { 1441 void Assembler::aghik(Register r1, Register r3, const Operand& i2) {
1634 rie_form(AGHIK, r1, r3, i2); 1442 rie_form(AGHIK, r1, r3, i2);
1635 } 1443 }
1636 1444
1637 // Add Register-Register-Register (64) 1445 // Add Register-Register-Register (64)
1638 void Assembler::agrk(Register r1, Register r2, Register r3) { 1446 void Assembler::agrk(Register r1, Register r2, Register r3) {
1639 rrf1_form(AGRK, r1, r2, r3); 1447 rrf1_form(AGRK, r1, r2, r3);
1640 } 1448 }
1641 1449
1642 // Add Storage-Imm (64) 1450 // Add Storage-Imm (64)
1643 void Assembler::agsi(const MemOperand& opnd, const Operand& imm) { 1451 void Assembler::agsi(const MemOperand& opnd, const Operand& imm) {
1644 DCHECK(is_int8(imm.imm_)); 1452 DCHECK(is_int8(imm.imm_));
1645 DCHECK(is_int20(opnd.offset())); 1453 DCHECK(is_int20(opnd.offset()));
1646 siy_form(AGSI, Operand(0xff & imm.imm_), opnd.rb(), 0xfffff & opnd.offset()); 1454 siy_form(AGSI, Operand(0xff & imm.imm_), opnd.rb(), 0xfffff & opnd.offset());
1647 } 1455 }
1648 1456
1649 // ------------------------------- 1457 // -------------------------------
1650 // 32-bit Add Logical Instructions 1458 // 32-bit Add Logical Instructions
1651 // ------------------------------- 1459 // -------------------------------
1652 // Add Logical Register-Storage (32)
1653 void Assembler::aly(Register r1, const MemOperand& opnd) {
1654 rxy_form(ALY, r1, opnd.rx(), opnd.rb(), opnd.offset());
1655 }
1656
1657 // Add Logical Register-Register-Register (32) 1460 // Add Logical Register-Register-Register (32)
1658 void Assembler::alrk(Register r1, Register r2, Register r3) { 1461 void Assembler::alrk(Register r1, Register r2, Register r3) {
1659 rrf1_form(ALRK, r1, r2, r3); 1462 rrf1_form(ALRK, r1, r2, r3);
1660 } 1463 }
1661 1464
1662 // ------------------------------- 1465 // -------------------------------
1663 // 64-bit Add Logical Instructions 1466 // 64-bit Add Logical Instructions
1664 // ------------------------------- 1467 // -------------------------------
1665 // Add Logical Register-Storage (64)
1666 void Assembler::alg(Register r1, const MemOperand& opnd) {
1667 rxy_form(ALG, r1, opnd.rx(), opnd.rb(), opnd.offset());
1668 }
1669
1670 // Add Logical Register-Register-Register (64) 1468 // Add Logical Register-Register-Register (64)
1671 void Assembler::algrk(Register r1, Register r2, Register r3) { 1469 void Assembler::algrk(Register r1, Register r2, Register r3) {
1672 rrf1_form(ALGRK, r1, r2, r3); 1470 rrf1_form(ALGRK, r1, r2, r3);
1673 } 1471 }
1674 1472
1675 // ---------------------------- 1473 // ----------------------------
1676 // 32-bit Subtract Instructions 1474 // 32-bit Subtract Instructions
1677 // ---------------------------- 1475 // ----------------------------
1678 // Subtract Register-Storage (32)
1679 void Assembler::sy(Register r1, const MemOperand& opnd) {
1680 rxy_form(SY, r1, opnd.rx(), opnd.rb(), opnd.offset());
1681 }
1682
1683 // Subtract Halfword Register-Storage (32)
1684 void Assembler::shy(Register r1, const MemOperand& opnd) {
1685 rxy_form(SHY, r1, opnd.rx(), opnd.rb(), opnd.offset());
1686 }
1687
1688 // Subtract Register-Register-Register (32) 1476 // Subtract Register-Register-Register (32)
1689 void Assembler::srk(Register r1, Register r2, Register r3) { 1477 void Assembler::srk(Register r1, Register r2, Register r3) {
1690 rrf1_form(SRK, r1, r2, r3); 1478 rrf1_form(SRK, r1, r2, r3);
1691 } 1479 }
1692 1480
1693 // ---------------------------- 1481 // ----------------------------
1694 // 64-bit Subtract Instructions 1482 // 64-bit Subtract Instructions
1695 // ---------------------------- 1483 // ----------------------------
1696 // Subtract Register-Storage (64)
1697 void Assembler::sg(Register r1, const MemOperand& opnd) {
1698 rxy_form(SG, r1, opnd.rx(), opnd.rb(), opnd.offset());
1699 }
1700
1701 // Subtract Register-Storage (64<-32)
1702 void Assembler::sgf(Register r1, const MemOperand& opnd) {
1703 rxy_form(SGF, r1, opnd.rx(), opnd.rb(), opnd.offset());
1704 }
1705
1706 // Subtract Register-Register-Register (64) 1484 // Subtract Register-Register-Register (64)
1707 void Assembler::sgrk(Register r1, Register r2, Register r3) { 1485 void Assembler::sgrk(Register r1, Register r2, Register r3) {
1708 rrf1_form(SGRK, r1, r2, r3); 1486 rrf1_form(SGRK, r1, r2, r3);
1709 } 1487 }
1710 1488
1711 // ------------------------------------ 1489 // ------------------------------------
1712 // 32-bit Subtract Logical Instructions 1490 // 32-bit Subtract Logical Instructions
1713 // ------------------------------------ 1491 // ------------------------------------
1714 // Subtract Logical Register-Storage (32)
1715 void Assembler::sly(Register r1, const MemOperand& opnd) {
1716 rxy_form(SLY, r1, opnd.rx(), opnd.rb(), opnd.offset());
1717 }
1718
1719 // Subtract Logical Register-Register-Register (32) 1492 // Subtract Logical Register-Register-Register (32)
1720 void Assembler::slrk(Register r1, Register r2, Register r3) { 1493 void Assembler::slrk(Register r1, Register r2, Register r3) {
1721 rrf1_form(SLRK, r1, r2, r3); 1494 rrf1_form(SLRK, r1, r2, r3);
1722 } 1495 }
1723 1496
1724 // ------------------------------------ 1497 // ------------------------------------
1725 // 64-bit Subtract Logical Instructions 1498 // 64-bit Subtract Logical Instructions
1726 // ------------------------------------ 1499 // ------------------------------------
1727 // Subtract Logical Register-Storage (64)
1728 void Assembler::slg(Register r1, const MemOperand& opnd) {
1729 rxy_form(SLG, r1, opnd.rx(), opnd.rb(), opnd.offset());
1730 }
1731
1732 // Subtract Logical Register-Register-Register (64) 1500 // Subtract Logical Register-Register-Register (64)
1733 void Assembler::slgrk(Register r1, Register r2, Register r3) { 1501 void Assembler::slgrk(Register r1, Register r2, Register r3) {
1734 rrf1_form(SLGRK, r1, r2, r3); 1502 rrf1_form(SLGRK, r1, r2, r3);
1735 } 1503 }
1736 1504
1737 // ---------------------------- 1505 // ----------------------------
1738 // 32-bit Multiply Instructions 1506 // 32-bit Multiply Instructions
1739 // ---------------------------- 1507 // ----------------------------
1740 void Assembler::mfy(Register r1, const MemOperand& opnd) {
1741 DCHECK(r1.code() % 2 == 0);
1742 rxy_form(MFY, r1, opnd.rx(), opnd.rb(), opnd.offset());
1743 }
1744
1745 // Multiply Logical Register-Storage (64<32)
1746 void Assembler::ml(Register r1, const MemOperand& opnd) {
1747 rxy_form(ML, r1, opnd.rx(), opnd.rb(), opnd.offset());
1748 }
1749
1750 // Multiply Single Register-Storage (32)
1751 void Assembler::msy(Register r1, const MemOperand& opnd) {
1752 rxy_form(MSY, r1, opnd.rx(), opnd.rb(), opnd.offset());
1753 }
1754
1755 // Multiply Halfword Register-Storage (32)
1756 void Assembler::mhy(Register r1, const MemOperand& opnd) {
1757 rxy_form(MHY, r1, opnd.rx(), opnd.rb(), opnd.offset());
1758 }
1759
1760 // Multiply Halfword Immediate (32) 1508 // Multiply Halfword Immediate (32)
1761 void Assembler::mhi(Register r1, const Operand& opnd) { 1509 void Assembler::mhi(Register r1, const Operand& opnd) {
1762 ri_form(MHI, r1, opnd); 1510 ri_form(MHI, r1, opnd);
1763 } 1511 }
1764 1512
1765 // ---------------------------- 1513 // ----------------------------
1766 // 64-bit Multiply Instructions 1514 // 64-bit Multiply Instructions
1767 // ---------------------------- 1515 // ----------------------------
1768 // Multiply Logical Register-Storage (128<64)
1769 void Assembler::mlg(Register r1, const MemOperand& opnd) {
1770 rxy_form(MLG, r1, opnd.rx(), opnd.rb(), opnd.offset());
1771 }
1772
1773 // Multiply Halfword Immediate (64) 1516 // Multiply Halfword Immediate (64)
1774 void Assembler::mghi(Register r1, const Operand& opnd) { 1517 void Assembler::mghi(Register r1, const Operand& opnd) {
1775 ri_form(MGHI, r1, opnd); 1518 ri_form(MGHI, r1, opnd);
1776 } 1519 }
1777 1520
1778 // Multiply Single Register-Storage (64)
1779 void Assembler::msg(Register r1, const MemOperand& opnd) {
1780 rxy_form(MSG, r1, opnd.rx(), opnd.rb(), opnd.offset());
1781 }
1782
1783 void Assembler::msgf(Register r1, const MemOperand& opnd) {
1784 rxy_form(MSGF, r1, opnd.rx(), opnd.rb(), opnd.offset());
1785 }
1786
1787 // --------------------------
1788 // 32-bit Divide Instructions
1789 // --------------------------
1790 // Divide Logical Register-Storage (32<-64)
1791 void Assembler::dl(Register r1, const MemOperand& opnd) {
1792 rxy_form(DL, r1, opnd.rx(), opnd.rb(), opnd.offset());
1793 }
1794
1795 void Assembler::dsg(Register r1, const MemOperand& opnd) {
1796 rxy_form(DSG, r1, opnd.rx(), opnd.rb(), opnd.offset());
1797 }
1798
1799 void Assembler::dsgf(Register r1, const MemOperand& opnd) {
1800 rxy_form(DSGF, r1, opnd.rx(), opnd.rb(), opnd.offset());
1801 }
1802
1803 // -------------------- 1521 // --------------------
1804 // Bitwise Instructions 1522 // Bitwise Instructions
1805 // -------------------- 1523 // --------------------
1806 // AND Register-Storage (32)
1807 void Assembler::ny(Register r1, const MemOperand& opnd) {
1808 rxy_form(NY, r1, opnd.rx(), opnd.rb(), opnd.offset());
1809 }
1810
1811 // AND Register-Register-Register (32) 1524 // AND Register-Register-Register (32)
1812 void Assembler::nrk(Register r1, Register r2, Register r3) { 1525 void Assembler::nrk(Register r1, Register r2, Register r3) {
1813 rrf1_form(NRK, r1, r2, r3); 1526 rrf1_form(NRK, r1, r2, r3);
1814 } 1527 }
1815 1528
1816 // AND Register-Storage (64)
1817 void Assembler::ng(Register r1, const MemOperand& opnd) {
1818 rxy_form(NG, r1, opnd.rx(), opnd.rb(), opnd.offset());
1819 }
1820
1821 // AND Register-Register-Register (64) 1529 // AND Register-Register-Register (64)
1822 void Assembler::ngrk(Register r1, Register r2, Register r3) { 1530 void Assembler::ngrk(Register r1, Register r2, Register r3) {
1823 rrf1_form(NGRK, r1, r2, r3); 1531 rrf1_form(NGRK, r1, r2, r3);
1824 } 1532 }
1825 1533
1826 // OR Register-Storage (32)
1827 void Assembler::oy(Register r1, const MemOperand& opnd) {
1828 rxy_form(OY, r1, opnd.rx(), opnd.rb(), opnd.offset());
1829 }
1830
1831 // OR Register-Register-Register (32) 1534 // OR Register-Register-Register (32)
1832 void Assembler::ork(Register r1, Register r2, Register r3) { 1535 void Assembler::ork(Register r1, Register r2, Register r3) {
1833 rrf1_form(ORK, r1, r2, r3); 1536 rrf1_form(ORK, r1, r2, r3);
1834 } 1537 }
1835 1538
1836 // OR Register-Storage (64)
1837 void Assembler::og(Register r1, const MemOperand& opnd) {
1838 rxy_form(OG, r1, opnd.rx(), opnd.rb(), opnd.offset());
1839 }
1840
1841 // OR Register-Register-Register (64) 1539 // OR Register-Register-Register (64)
1842 void Assembler::ogrk(Register r1, Register r2, Register r3) { 1540 void Assembler::ogrk(Register r1, Register r2, Register r3) {
1843 rrf1_form(OGRK, r1, r2, r3); 1541 rrf1_form(OGRK, r1, r2, r3);
1844 } 1542 }
1845 1543
1846 // XOR Register-Storage (32)
1847 void Assembler::xy(Register r1, const MemOperand& opnd) {
1848 rxy_form(XY, r1, opnd.rx(), opnd.rb(), opnd.offset());
1849 }
1850
1851 // XOR Register-Register-Register (32) 1544 // XOR Register-Register-Register (32)
1852 void Assembler::xrk(Register r1, Register r2, Register r3) { 1545 void Assembler::xrk(Register r1, Register r2, Register r3) {
1853 rrf1_form(XRK, r1, r2, r3); 1546 rrf1_form(XRK, r1, r2, r3);
1854 } 1547 }
1855 1548
1856 // XOR Register-Storage (64)
1857 void Assembler::xg(Register r1, const MemOperand& opnd) {
1858 rxy_form(XG, r1, opnd.rx(), opnd.rb(), opnd.offset());
1859 }
1860
1861 // XOR Register-Register-Register (64) 1549 // XOR Register-Register-Register (64)
1862 void Assembler::xgrk(Register r1, Register r2, Register r3) { 1550 void Assembler::xgrk(Register r1, Register r2, Register r3) {
1863 rrf1_form(XGRK, r1, r2, r3); 1551 rrf1_form(XGRK, r1, r2, r3);
1864 } 1552 }
1865 1553
1866 // XOR Storage-Storage 1554 // XOR Storage-Storage
1867 void Assembler::xc(const MemOperand& opnd1, const MemOperand& opnd2, 1555 void Assembler::xc(const MemOperand& opnd1, const MemOperand& opnd2,
1868 Length length) { 1556 Length length) {
1869 ss_form(XC, length - 1, opnd1.getBaseRegister(), opnd1.getDisplacement(), 1557 ss_form(XC, length - 1, opnd1.getBaseRegister(), opnd1.getDisplacement(),
1870 opnd2.getBaseRegister(), opnd2.getDisplacement()); 1558 opnd2.getBaseRegister(), opnd2.getDisplacement());
(...skipping 209 matching lines...) Expand 10 before | Expand all | Expand 10 after
2080 } 1768 }
2081 1769
2082 void Assembler::jump(Handle<Code> target, RelocInfo::Mode rmode, 1770 void Assembler::jump(Handle<Code> target, RelocInfo::Mode rmode,
2083 Condition cond) { 1771 Condition cond) {
2084 EnsureSpace ensure_space(this); 1772 EnsureSpace ensure_space(this);
2085 1773
2086 int32_t target_index = emit_code_target(target, rmode); 1774 int32_t target_index = emit_code_target(target, rmode);
2087 brcl(cond, Operand(target_index)); 1775 brcl(cond, Operand(target_index));
2088 } 1776 }
2089 1777
2090 // Store (32)
2091 void Assembler::sty(Register src, const MemOperand& dst) {
2092 rxy_form(STY, src, dst.rx(), dst.rb(), dst.offset());
2093 }
2094
2095 // Store Halfword
2096 void Assembler::sthy(Register src, const MemOperand& dst) {
2097 rxy_form(STHY, src, dst.rx(), dst.rb(), dst.offset());
2098 }
2099
2100 // Store Character
2101 void Assembler::stcy(Register src, const MemOperand& dst) {
2102 rxy_form(STCY, src, dst.rx(), dst.rb(), dst.offset());
2103 }
2104
2105 // 32-bit Load Multiple - short displacement (12-bits unsigned) 1778 // 32-bit Load Multiple - short displacement (12-bits unsigned)
2106 void Assembler::lm(Register r1, Register r2, const MemOperand& src) { 1779 void Assembler::lm(Register r1, Register r2, const MemOperand& src) {
2107 rs_form(LM, r1, r2, src.rb(), src.offset()); 1780 rs_form(LM, r1, r2, src.rb(), src.offset());
2108 } 1781 }
2109 1782
2110 // 32-bit Load Multiple - long displacement (20-bits signed) 1783 // 32-bit Load Multiple - long displacement (20-bits signed)
2111 void Assembler::lmy(Register r1, Register r2, const MemOperand& src) { 1784 void Assembler::lmy(Register r1, Register r2, const MemOperand& src) {
2112 rsy_form(LMY, r1, r2, src.rb(), src.offset()); 1785 rsy_form(LMY, r1, r2, src.rb(), src.offset());
2113 } 1786 }
2114 1787
2115 // 64-bit Load Multiple - long displacement (20-bits signed) 1788 // 64-bit Load Multiple - long displacement (20-bits signed)
2116 void Assembler::lmg(Register r1, Register r2, const MemOperand& src) { 1789 void Assembler::lmg(Register r1, Register r2, const MemOperand& src) {
2117 rsy_form(LMG, r1, r2, src.rb(), src.offset()); 1790 rsy_form(LMG, r1, r2, src.rb(), src.offset());
2118 } 1791 }
2119 1792
2120 // Move integer (32) 1793 // Move integer (32)
2121 void Assembler::mvhi(const MemOperand& opnd1, const Operand& i2) { 1794 void Assembler::mvhi(const MemOperand& opnd1, const Operand& i2) {
2122 sil_form(MVHI, opnd1.getBaseRegister(), opnd1.getDisplacement(), i2); 1795 sil_form(MVHI, opnd1.getBaseRegister(), opnd1.getDisplacement(), i2);
2123 } 1796 }
2124 1797
2125 // Move integer (64) 1798 // Move integer (64)
2126 void Assembler::mvghi(const MemOperand& opnd1, const Operand& i2) { 1799 void Assembler::mvghi(const MemOperand& opnd1, const Operand& i2) {
2127 sil_form(MVGHI, opnd1.getBaseRegister(), opnd1.getDisplacement(), i2); 1800 sil_form(MVGHI, opnd1.getBaseRegister(), opnd1.getDisplacement(), i2);
2128 } 1801 }
2129 1802
2130 // Store Register (64)
2131 void Assembler::stg(Register src, const MemOperand& dst) {
2132 DCHECK(!(dst.rb().code() == 15 && dst.offset() < 0));
2133 rxy_form(STG, src, dst.rx(), dst.rb(), dst.offset());
2134 }
2135
2136 // Insert Character
2137 void Assembler::icy(Register r1, const MemOperand& opnd) {
2138 rxy_form(ICY, r1, opnd.rx(), opnd.rb(), opnd.offset());
2139 }
2140
2141 // Insert Immediate (high high) 1803 // Insert Immediate (high high)
2142 void Assembler::iihh(Register r1, const Operand& opnd) { 1804 void Assembler::iihh(Register r1, const Operand& opnd) {
2143 ri_form(IIHH, r1, opnd); 1805 ri_form(IIHH, r1, opnd);
2144 } 1806 }
2145 1807
2146 // Insert Immediate (high low) 1808 // Insert Immediate (high low)
2147 void Assembler::iihl(Register r1, const Operand& opnd) { 1809 void Assembler::iihl(Register r1, const Operand& opnd) {
2148 ri_form(IIHL, r1, opnd); 1810 ri_form(IIHL, r1, opnd);
2149 } 1811 }
2150 1812
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after
2185 rxe_form(SDB, Register::from_code(r1.code()), opnd.rx(), opnd.rb(), 1847 rxe_form(SDB, Register::from_code(r1.code()), opnd.rx(), opnd.rb(),
2186 opnd.offset()); 1848 opnd.offset());
2187 } 1849 }
2188 1850
2189 // Square Root (LB) 1851 // Square Root (LB)
2190 void Assembler::sqdb(DoubleRegister r1, const MemOperand& opnd) { 1852 void Assembler::sqdb(DoubleRegister r1, const MemOperand& opnd) {
2191 rxe_form(SQDB, Register::from_code(r1.code()), opnd.rx(), opnd.rb(), 1853 rxe_form(SQDB, Register::from_code(r1.code()), opnd.rx(), opnd.rb(),
2192 opnd.offset()); 1854 opnd.offset());
2193 } 1855 }
2194 1856
2195 // Store Double (64)
2196 void Assembler::stdy(DoubleRegister r1, const MemOperand& opnd) {
2197 DCHECK(!(opnd.rb().code() == 15 && opnd.offset() < 0));
2198 rxy_form(STDY, r1, opnd.rx(), opnd.rb(), opnd.offset());
2199 }
2200
2201 // Store Float (32)
2202 void Assembler::stey(DoubleRegister r1, const MemOperand& opnd) {
2203 DCHECK(!(opnd.rb().code() == 15 && opnd.offset() < 0));
2204 rxy_form(STEY, r1, opnd.rx(), opnd.rb(), opnd.offset());
2205 }
2206
2207 // Load Double (64)
2208 void Assembler::ldy(DoubleRegister r1, const MemOperand& opnd) {
2209 DCHECK(is_int20(opnd.offset()));
2210 rxy_form(LDY, r1, opnd.rx(), opnd.rb(), opnd.offset());
2211 }
2212
2213 // Load Float (32)
2214 void Assembler::ley(DoubleRegister r1, const MemOperand& opnd) {
2215 DCHECK(is_int20(opnd.offset()));
2216 rxy_form(LEY, r1, opnd.rx(), opnd.rb(), opnd.offset());
2217 }
2218
2219 // Convert to Fixed point (64<-S) 1857 // Convert to Fixed point (64<-S)
2220 void Assembler::cgebr(Condition m, Register r1, DoubleRegister r2) { 1858 void Assembler::cgebr(Condition m, Register r1, DoubleRegister r2) {
2221 rrfe_form(CGEBR, m, Condition(0), r1, Register::from_code(r2.code())); 1859 rrfe_form(CGEBR, m, Condition(0), r1, Register::from_code(r2.code()));
2222 } 1860 }
2223 1861
2224 // Convert to Fixed point (64<-L) 1862 // Convert to Fixed point (64<-L)
2225 void Assembler::cgdbr(Condition m, Register r1, DoubleRegister r2) { 1863 void Assembler::cgdbr(Condition m, Register r1, DoubleRegister r2) {
2226 rrfe_form(CGDBR, m, Condition(0), r1, Register::from_code(r2.code())); 1864 rrfe_form(CGDBR, m, Condition(0), r1, Register::from_code(r2.code()));
2227 } 1865 }
2228 1866
(...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after
2460 SKIP_ICACHE_FLUSH); 2098 SKIP_ICACHE_FLUSH);
2461 } 2099 }
2462 2100
2463 reloc_info_writer.Write(&rinfo); 2101 reloc_info_writer.Write(&rinfo);
2464 } 2102 }
2465 } 2103 }
2466 2104
2467 } // namespace internal 2105 } // namespace internal
2468 } // namespace v8 2106 } // namespace v8
2469 #endif // V8_TARGET_ARCH_S390 2107 #endif // V8_TARGET_ARCH_S390
OLDNEW
« no previous file with comments | « src/s390/assembler-s390.h ('k') | src/s390/constants-s390.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698