• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /openjdk10/hotspot/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.asm.aarch64/src/org/graalvm/compiler/asm/aarch64/

Lines Matching defs:immediate

135          * Specifies whether immediate can be represented in all cases (YES), as a 64bit instruction
145 * Tests whether an immediate can be encoded for logical instructions.
147 * @param is64bit if true immediate is considered a 64-bit pattern. If false we may use a
149 * @return enum specifying whether immediate can be used for 32- and 64-bit logical
154 public static Representable isRepresentable(boolean is64bit, long immediate) {
155 int pos = getLogicalImmTablePos(is64bit, immediate);
157 // if 32bit instruction we can try again as 64bit immediate which may succeed.
158 // i.e. 0xffffffff fails as a 32bit immediate but works as 64bit one.
160 assert NumUtil.isUnsignedNbit(32, immediate);
161 pos = getLogicalImmTablePos(true, immediate);
170 public static Representable isRepresentable(int immediate) {
171 return isRepresentable(false, immediate & 0xFFFF_FFFFL);
176 assert pos >= 0 : "Value cannot be represented as logical immediate: " + value + ", is64bit=" + is64bit;
185 * given immediate, if negative the immediate cannot be encoded.
194 // If we have a 32bit instruction (and therefore immediate) we have to duplicate it
211 * To quote 5.4.2: [..] an immediate is a 32 or 64 bit pattern viewed as a vector of
229 // Used to be able to binary search for an immediate in the table.
263 long immediate = (val >>> r | val << (e - r)) & mask;
267 immediate |= immediate << 2;
268 immediate |= immediate << 4;
269 immediate |= immediate << 8;
270 immediate |= immediate << 16;
271 immediate |= immediate << 32;
274 immediate |= immediate << 4;
275 immediate |= immediate << 8;
276 immediate |= immediate << 16;
277 immediate |= immediate << 32;
280 immediate |= immediate << 8;
281 immediate |= immediate << 16;
282 immediate |= immediate << 32;
285 immediate |= immediate << 16;
286 immediate |= immediate << 32;
289 immediate |= immediate << 32;
296 table[nrImms++] = new Immediate(immediate, /* is64bit */e == 64, s, r);
908 /* Unconditional Branch (immediate) (5.2.2) */
1161 * Load Pair of Registers calculates an address from a base register value and an immediate
1171 * Store Pair of Registers calculates an address from a base register value and an immediate
1324 // assert (imm & NumUtil.getNbitNumberInt(12)) == 0 : "Lower 12-bit of immediate must be zero.";
1361 * @param aimm arithmetic immediate. Either unsigned 12-bit value or unsigned 24-bit value with
1376 * @param aimm arithmetic immediate. Either unsigned 12-bit value or unsigned 24-bit value with
1391 * @param aimm arithmetic immediate. Either unsigned 12-bit value or unsigned 24-bit value with
1406 * @param aimm arithmetic immediate. Either unsigned 12-bit value or unsigned 24-bit value with
1420 * Encodes arithmetic immediate.
1424 * @return Representation of immediate for use with arithmetic instructions.
1427 assert isAimm(imm) : "Immediate has to be legal arithmetic immediate value " + imm;
1431 // First 12-bit are zero, so shift immediate 12-bit and set flag to indicate
1432 // shifted immediate value.
1438 * Checks whether immediate can be encoded as an arithmetic immediate.
1442 * @return true if valid arithmetic immediate, false otherwise.
1448 /* Logical (immediate) (5.4.2) */
1456 * @param bimm logical immediate. See {@link LogicalImmediateTable} for exact definition.
1470 * @param bimm logical immediate. See {@link LogicalImmediateTable} for exact definition.
1484 * @param bimm logical immediate. See {@link LogicalImmediateTable} for exact definition.
1498 * @param bimm logical immediate. See {@link LogicalImmediateTable} for exact definition.
1519 /* Move (wide immediate) (5.4.3) */
1526 * @param uimm16 16-bit unsigned immediate
1539 * @param uimm16 16-bit unsigned immediate
1552 * @param uimm16 16-bit unsigned immediate
2253 /* Floating-point Move (immediate) (5.7.3) */
2256 * Move immediate into register.
2260 * @param imm immediate that is loaded into dst. If size is 32 only float immediates can be
2272 assert imm == (float) imm : "float mov must use an immediate that can be represented using a float.";