OLD | NEW |
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 1359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1370 } | 1370 } |
1371 | 1371 |
1372 | 1372 |
1373 void Assembler::bx(Register target, Condition cond) { // v5 and above, plus v4t | 1373 void Assembler::bx(Register target, Condition cond) { // v5 and above, plus v4t |
1374 positions_recorder()->WriteRecordedPositions(); | 1374 positions_recorder()->WriteRecordedPositions(); |
1375 DCHECK(!target.is(pc)); // use of pc is actually allowed, but discouraged | 1375 DCHECK(!target.is(pc)); // use of pc is actually allowed, but discouraged |
1376 emit(cond | B24 | B21 | 15*B16 | 15*B12 | 15*B8 | BX | target.code()); | 1376 emit(cond | B24 | B21 | 15*B16 | 15*B12 | 15*B8 | BX | target.code()); |
1377 } | 1377 } |
1378 | 1378 |
1379 | 1379 |
| 1380 void Assembler::b(Label* L, Condition cond) { |
| 1381 CheckBuffer(); |
| 1382 b(branch_offset(L), cond); |
| 1383 } |
| 1384 |
| 1385 |
| 1386 void Assembler::bl(Label* L, Condition cond) { |
| 1387 CheckBuffer(); |
| 1388 bl(branch_offset(L), cond); |
| 1389 } |
| 1390 |
| 1391 |
| 1392 void Assembler::blx(Label* L) { |
| 1393 CheckBuffer(); |
| 1394 blx(branch_offset(L)); |
| 1395 } |
| 1396 |
| 1397 |
1380 // Data-processing instructions. | 1398 // Data-processing instructions. |
1381 | 1399 |
1382 void Assembler::and_(Register dst, Register src1, const Operand& src2, | 1400 void Assembler::and_(Register dst, Register src1, const Operand& src2, |
1383 SBit s, Condition cond) { | 1401 SBit s, Condition cond) { |
1384 addrmod1(cond | AND | s, src1, dst, src2); | 1402 addrmod1(cond | AND | s, src1, dst, src2); |
1385 } | 1403 } |
1386 | 1404 |
1387 | 1405 |
1388 void Assembler::eor(Register dst, Register src1, const Operand& src2, | 1406 void Assembler::eor(Register dst, Register src1, const Operand& src2, |
1389 SBit s, Condition cond) { | 1407 SBit s, Condition cond) { |
(...skipping 2580 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3970 DCHECK(is_uint12(offset)); | 3988 DCHECK(is_uint12(offset)); |
3971 instr_at_put(pc, SetLdrRegisterImmediateOffset(instr, offset)); | 3989 instr_at_put(pc, SetLdrRegisterImmediateOffset(instr, offset)); |
3972 } | 3990 } |
3973 } | 3991 } |
3974 | 3992 |
3975 | 3993 |
3976 } // namespace internal | 3994 } // namespace internal |
3977 } // namespace v8 | 3995 } // namespace v8 |
3978 | 3996 |
3979 #endif // V8_TARGET_ARCH_ARM | 3997 #endif // V8_TARGET_ARCH_ARM |
OLD | NEW |