< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.asm.aarch64/src/org/graalvm/compiler/asm/aarch64/AArch64MacroAssembler.java

Print this page
rev 52509 : [mq]: graal2


1459      * exception level.
1460      *
1461      * @param exceptionCode exception code specifying why break was called. Non null.
1462      */
1463     public void brk(AArch64ExceptionCode exceptionCode) {
1464         super.brk(exceptionCode.encoding);
1465     }
1466 
1467     public void pause() {
1468         throw GraalError.unimplemented();
1469     }
1470 
1471     /**
1472      * Executes no-op instruction. No registers or flags are updated, except for PC.
1473      */
1474     public void nop() {
1475         super.hint(SystemHint.NOP);
1476     }
1477 
1478     /**








1479      * Same as {@link #nop()}.
1480      */
1481     @Override
1482     public void ensureUniquePC() {
1483         nop();
1484     }
1485 
1486     /**
1487      * Aligns PC.
1488      *
1489      * @param modulus Has to be positive multiple of 4.
1490      */
1491     @Override
1492     public void align(int modulus) {
1493         assert modulus > 0 && (modulus & 0x3) == 0 : "Modulus has to be a positive multiple of 4.";
1494         if (position() % modulus == 0) {
1495             return;
1496         }
1497         int offset = modulus - position() % modulus;
1498         for (int i = 0; i < offset; i += 4) {




1459      * exception level.
1460      *
1461      * @param exceptionCode exception code specifying why break was called. Non null.
1462      */
1463     public void brk(AArch64ExceptionCode exceptionCode) {
1464         super.brk(exceptionCode.encoding);
1465     }
1466 
1467     public void pause() {
1468         throw GraalError.unimplemented();
1469     }
1470 
1471     /**
1472      * Executes no-op instruction. No registers or flags are updated, except for PC.
1473      */
1474     public void nop() {
1475         super.hint(SystemHint.NOP);
1476     }
1477 
1478     /**
1479      * Consumption of Speculative Data Barrier. This is a memory barrier that controls speculative
1480      * execution and data value prediction.
1481      */
1482     public void csdb() {
1483         super.hint(SystemHint.CSDB);
1484     }
1485 
1486     /**
1487      * Same as {@link #nop()}.
1488      */
1489     @Override
1490     public void ensureUniquePC() {
1491         nop();
1492     }
1493 
1494     /**
1495      * Aligns PC.
1496      *
1497      * @param modulus Has to be positive multiple of 4.
1498      */
1499     @Override
1500     public void align(int modulus) {
1501         assert modulus > 0 && (modulus & 0x3) == 0 : "Modulus has to be a positive multiple of 4.";
1502         if (position() % modulus == 0) {
1503             return;
1504         }
1505         int offset = modulus - position() % modulus;
1506         for (int i = 0; i < offset; i += 4) {


< prev index next >