< 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 52889 : 8214023: Update Graal
*** 1,7 ****
/*
! * Copyright (c) 2013, 2016, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
--- 1,7 ----
/*
! * Copyright (c) 2013, 2018, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*** 502,513 ****
* Conditional set. dst = 1 if condition else 0.
*
* @param dst general purpose register. May not be null or stackpointer.
* @param condition any condition. May not be null.
*/
! public void cset(Register dst, ConditionFlag condition) {
! super.csinc(32, dst, zr, zr, condition.negate());
}
/**
* dst = src1 + src2.
*
--- 502,513 ----
* Conditional set. dst = 1 if condition else 0.
*
* @param dst general purpose register. May not be null or stackpointer.
* @param condition any condition. May not be null.
*/
! public void cset(int size, Register dst, ConditionFlag condition) {
! super.csinc(size, dst, zr, zr, condition.negate());
}
/**
* dst = src1 + src2.
*
*** 736,745 ****
--- 736,785 ----
public void mul(int size, Register dst, Register src1, Register src2) {
super.madd(size, dst, src1, src2, zr);
}
/**
+ * dst = src3 + src1 * src2.
+ *
+ * @param size register size. Has to be 32 or 64.
+ * @param dst general purpose register. May not be null or the stackpointer.
+ * @param src1 general purpose register. May not be null or the stackpointer.
+ * @param src2 general purpose register. May not be null or the stackpointer.
+ * @param src3 general purpose register. May not be null or the stackpointer.
+ */
+ @Override
+ public void madd(int size, Register dst, Register src1, Register src2, Register src3) {
+ super.madd(size, dst, src1, src2, src3);
+ }
+
+ /**
+ * dst = src3 - src1 * src2.
+ *
+ * @param size register size. Has to be 32 or 64.
+ * @param dst general purpose register. May not be null or the stackpointer.
+ * @param src1 general purpose register. May not be null or the stackpointer.
+ * @param src2 general purpose register. May not be null or the stackpointer.
+ * @param src3 general purpose register. May not be null or the stackpointer.
+ */
+ @Override
+ public void msub(int size, Register dst, Register src1, Register src2, Register src3) {
+ super.msub(size, dst, src1, src2, src3);
+ }
+
+ /**
+ * dst = 0 - src1 * src2.
+ *
+ * @param size register size. Has to be 32 or 64.
+ * @param dst general purpose register. May not be null or the stackpointer.
+ * @param src1 general purpose register. May not be null or the stackpointer.
+ * @param src2 general purpose register. May not be null or the stackpointer.
+ */
+ public void mneg(int size, Register dst, Register src1, Register src2) {
+ super.msub(size, dst, src1, src2, zr);
+ }
+
+ /**
* unsigned multiply high. dst = (src1 * src2) >> size
*
* @param size register size. Has to be 32 or 64.
* @param dst general purpose register. May not be null or the stackpointer.
* @param src1 general purpose register. May not be null or the stackpointer.
*** 1010,1019 ****
--- 1050,1148 ----
public void not(int size, Register dst, Register src) {
super.orn(size, dst, zr, src, ShiftType.LSL, 0);
}
/**
+ * dst = src1 & shiftType(src2, imm).
+ *
+ * @param size register size. Has to be 32 or 64.
+ * @param dst general purpose register. May not be null or stackpointer.
+ * @param src1 general purpose register. May not be null or stackpointer.
+ * @param src2 general purpose register. May not be null or stackpointer.
+ * @param shiftType all types allowed, may not be null.
+ * @param shiftAmt must be in range 0 to size - 1.
+ */
+ @Override
+ public void and(int size, Register dst, Register src1, Register src2, ShiftType shiftType, int shiftAmt) {
+ super.and(size, dst, src1, src2, shiftType, shiftAmt);
+ }
+
+ /**
+ * dst = src1 ^ shiftType(src2, imm).
+ *
+ * @param size register size. Has to be 32 or 64.
+ * @param dst general purpose register. May not be null or stackpointer.
+ * @param src1 general purpose register. May not be null or stackpointer.
+ * @param src2 general purpose register. May not be null or stackpointer.
+ * @param shiftType all types allowed, may not be null.
+ * @param shiftAmt must be in range 0 to size - 1.
+ */
+ @Override
+ public void eor(int size, Register dst, Register src1, Register src2, ShiftType shiftType, int shiftAmt) {
+ super.eor(size, dst, src1, src2, shiftType, shiftAmt);
+ }
+
+ /**
+ * dst = src1 | shiftType(src2, imm).
+ *
+ * @param size register size. Has to be 32 or 64.
+ * @param dst general purpose register. May not be null or stackpointer.
+ * @param src1 general purpose register. May not be null or stackpointer.
+ * @param src2 general purpose register. May not be null or stackpointer.
+ * @param shiftType all types allowed, may not be null.
+ * @param shiftAmt must be in range 0 to size - 1.
+ */
+ public void or(int size, Register dst, Register src1, Register src2, ShiftType shiftType, int shiftAmt) {
+ super.orr(size, dst, src1, src2, shiftType, shiftAmt);
+ }
+
+ /**
+ * dst = src1 & ~(shiftType(src2, imm)).
+ *
+ * @param size register size. Has to be 32 or 64.
+ * @param dst general purpose register. May not be null or stackpointer.
+ * @param src1 general purpose register. May not be null or stackpointer.
+ * @param src2 general purpose register. May not be null or stackpointer.
+ * @param shiftType all types allowed, may not be null.
+ * @param shiftAmt must be in range 0 to size - 1.
+ */
+ @Override
+ public void bic(int size, Register dst, Register src1, Register src2, ShiftType shiftType, int shiftAmt) {
+ super.bic(size, dst, src1, src2, shiftType, shiftAmt);
+ }
+
+ /**
+ * dst = src1 ^ ~(shiftType(src2, imm)).
+ *
+ * @param size register size. Has to be 32 or 64.
+ * @param dst general purpose register. May not be null or stackpointer.
+ * @param src1 general purpose register. May not be null or stackpointer.
+ * @param src2 general purpose register. May not be null or stackpointer.
+ * @param shiftType all types allowed, may not be null.
+ * @param shiftAmt must be in range 0 to size - 1.
+ */
+ @Override
+ public void eon(int size, Register dst, Register src1, Register src2, ShiftType shiftType, int shiftAmt) {
+ super.eon(size, dst, src1, src2, shiftType, shiftAmt);
+ }
+
+ /**
+ * dst = src1 | ~(shiftType(src2, imm)).
+ *
+ * @param size register size. Has to be 32 or 64.
+ * @param dst general purpose register. May not be null or stackpointer.
+ * @param src1 general purpose register. May not be null or stackpointer.
+ * @param src2 general purpose register. May not be null or stackpointer.
+ * @param shiftType all types allowed, may not be null.
+ * @param shiftAmt must be in range 0 to size - 1.
+ */
+ @Override
+ public void orn(int size, Register dst, Register src1, Register src2, ShiftType shiftType, int shiftAmt) {
+ super.orn(size, dst, src1, src2, shiftType, shiftAmt);
+ }
+
+ /**
* Sign-extend value from src into dst.
*
* @param destSize destination register size. Must be 32 or 64.
* @param srcSize source register size. Must be smaller than destSize.
* @param dst general purpose register. May not be null, stackpointer or zero-register.
< prev index next >