src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.lir.amd64/src/org/graalvm/compiler/lir/amd64/AMD64MathTanOp.java
author dlong
Tue, 24 Sep 2019 12:47:15 -0400
changeset 58299 6df94ce3ab2f
parent 54084 84f10bbf993f
permissions -rw-r--r--
8229201: Update Graal Reviewed-by: kvn
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
54084
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
     1
/*
58299
6df94ce3ab2f 8229201: Update Graal
dlong
parents: 54084
diff changeset
     2
 * Copyright (c) 2018, 2019, Oracle and/or its affiliates. All rights reserved.
54084
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
     3
 * Copyright (c) 2016, Intel Corporation. All rights reserved.
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
     4
 * Intel Math Library (LIBM) Source Code
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
     5
 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
     6
 *
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
     7
 * This code is free software; you can redistribute it and/or modify it
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
     8
 * under the terms of the GNU General Public License version 2 only, as
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
     9
 * published by the Free Software Foundation.
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    10
 *
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    11
 * This code is distributed in the hope that it will be useful, but WITHOUT
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    12
 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    13
 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    14
 * version 2 for more details (a copy is included in the LICENSE file that
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    15
 * accompanied this code).
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    16
 *
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    17
 * You should have received a copy of the GNU General Public License version
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    18
 * 2 along with this work; if not, write to the Free Software Foundation,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    19
 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    20
 *
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    21
 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    22
 * or visit www.oracle.com if you need additional information or have any
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    23
 * questions.
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    24
 */
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    25
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    26
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    27
package org.graalvm.compiler.lir.amd64;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    28
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    29
import static jdk.vm.ci.amd64.AMD64.r10;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    30
import static jdk.vm.ci.amd64.AMD64.r11;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    31
import static jdk.vm.ci.amd64.AMD64.r8;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    32
import static jdk.vm.ci.amd64.AMD64.r9;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    33
import static jdk.vm.ci.amd64.AMD64.rax;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    34
import static jdk.vm.ci.amd64.AMD64.rbx;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    35
import static jdk.vm.ci.amd64.AMD64.rcx;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    36
import static jdk.vm.ci.amd64.AMD64.rdi;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    37
import static jdk.vm.ci.amd64.AMD64.rdx;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    38
import static jdk.vm.ci.amd64.AMD64.rsi;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    39
import static jdk.vm.ci.amd64.AMD64.rsp;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    40
import static jdk.vm.ci.amd64.AMD64.xmm0;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    41
import static jdk.vm.ci.amd64.AMD64.xmm1;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    42
import static jdk.vm.ci.amd64.AMD64.xmm2;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    43
import static jdk.vm.ci.amd64.AMD64.xmm3;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    44
import static jdk.vm.ci.amd64.AMD64.xmm4;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    45
import static jdk.vm.ci.amd64.AMD64.xmm5;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    46
import static jdk.vm.ci.amd64.AMD64.xmm6;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    47
import static jdk.vm.ci.amd64.AMD64.xmm7;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    48
import static org.graalvm.compiler.lir.amd64.AMD64HotSpotHelper.pointerConstant;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    49
import static org.graalvm.compiler.lir.amd64.AMD64HotSpotHelper.recordExternalAddress;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    50
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    51
import org.graalvm.compiler.asm.Label;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    52
import org.graalvm.compiler.asm.amd64.AMD64Address;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    53
import org.graalvm.compiler.asm.amd64.AMD64Assembler;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    54
import org.graalvm.compiler.asm.amd64.AMD64MacroAssembler;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    55
import org.graalvm.compiler.lir.LIRInstructionClass;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    56
import org.graalvm.compiler.lir.asm.ArrayDataPointerConstant;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    57
import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    58
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    59
import jdk.vm.ci.amd64.AMD64;
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    60
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    61
/**
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    62
 * <pre>
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    63
 *                     ALGORITHM DESCRIPTION - TAN()
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    64
 *                     ---------------------
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    65
 *
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    66
 * Polynomials coefficients and other constants.
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    67
 *
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    68
 * Note that in this algorithm, there is a different polynomial for
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    69
 * each breakpoint, so there are 32 sets of polynomial coefficients
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    70
 * as well as 32 instances of the other constants.
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    71
 *
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    72
 * The polynomial coefficients and constants are offset from the start
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    73
 * of the main block as follows:
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    74
 *
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    75
 *   0:  c8 | c0
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    76
 *  16:  c9 | c1
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    77
 *  32: c10 | c2
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    78
 *  48: c11 | c3
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    79
 *  64: c12 | c4
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    80
 *  80: c13 | c5
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    81
 *  96: c14 | c6
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    82
 * 112: c15 | c7
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    83
 * 128: T_hi
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    84
 * 136: T_lo
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    85
 * 144: Sigma
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    86
 * 152: T_hl
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    87
 * 160: Tau
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    88
 * 168: Mask
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    89
 * 176: (end of block)
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    90
 *
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    91
 * The total table size is therefore 5632 bytes.
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    92
 *
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    93
 * Note that c0 and c1 are always zero. We could try storing
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    94
 * other constants here, and just loading the low part of the
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    95
 * SIMD register in these cases, after ensuring the high part
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    96
 * is zero.
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    97
 *
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    98
 * The higher terms of the polynomial are computed in the *low*
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
    99
 * part of the SIMD register. This is so we can overlap the
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   100
 * multiplication by r^8 and the unpacking of the other part.
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   101
 *
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   102
 * The constants are:
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   103
 * T_hi + T_lo = accurate constant term in power series
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   104
 * Sigma + T_hl = accurate coefficient of r in power series (Sigma=1 bit)
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   105
 * Tau = multiplier for the reciprocal, always -1 or 0
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   106
 *
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   107
 * The basic reconstruction formula using these constants is:
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   108
 *
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   109
 * High = tau * recip_hi + t_hi
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   110
 * Med = (sgn * r + t_hl * r)_hi
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   111
 * Low = (sgn * r + t_hl * r)_lo +
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   112
 *       tau * recip_lo + T_lo + (T_hl + sigma) * c + pol
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   113
 *
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   114
 * where pol = c0 + c1 * r + c2 * r^2 + ... + c15 * r^15
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   115
 *
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   116
 * (c0 = c1 = 0, but using them keeps SIMD regularity)
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   117
 *
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   118
 * We then do a compensated sum High + Med, add the low parts together
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   119
 * and then do the final sum.
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   120
 *
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   121
 * Here recip_hi + recip_lo is an accurate reciprocal of the remainder
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   122
 * modulo pi/2
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   123
 *
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   124
 * Special cases:
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   125
 *  tan(NaN) = quiet NaN, and raise invalid exception
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   126
 *  tan(INF) = NaN and raise invalid exception
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   127
 *  tan(+/-0) = +/-0
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   128
 * </pre>
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   129
 */
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   130
public final class AMD64MathTanOp extends AMD64MathIntrinsicUnaryOp {
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   131
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   132
    public static final LIRInstructionClass<AMD64MathTanOp> TYPE = LIRInstructionClass.create(AMD64MathTanOp.class);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   133
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   134
    public AMD64MathTanOp() {
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   135
        super(TYPE, /* GPR */ rax, rcx, rdx, rbx, rsi, rdi, r8, r9, r10, r11,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   136
                        /* XMM */ xmm1, xmm2, xmm3, xmm4, xmm5, xmm6, xmm7);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   137
    }
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   138
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   139
    private ArrayDataPointerConstant onehalf = pointerConstant(16, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   140
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   141
            0x00000000, 0x3fe00000, 0x00000000, 0x3fe00000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   142
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   143
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   144
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   145
    private ArrayDataPointerConstant mul16 = pointerConstant(16, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   146
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   147
            0x00000000, 0x40300000, 0x00000000, 0x3ff00000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   148
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   149
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   150
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   151
    private ArrayDataPointerConstant signMask = pointerConstant(16, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   152
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   153
            0x00000000, 0x80000000, 0x00000000, 0x80000000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   154
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   155
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   156
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   157
    private ArrayDataPointerConstant pi32Inv = pointerConstant(16, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   158
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   159
            0x6dc9c883, 0x3fe45f30, 0x6dc9c883, 0x40245f30
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   160
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   161
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   162
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   163
    private ArrayDataPointerConstant p1 = pointerConstant(16, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   164
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   165
            0x54444000, 0x3fb921fb, 0x54440000, 0x3fb921fb
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   166
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   167
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   168
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   169
    private ArrayDataPointerConstant p2 = pointerConstant(16, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   170
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   171
            0x67674000, 0xbd32e7b9, 0x4c4c0000, 0x3d468c23
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   172
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   173
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   174
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   175
    private ArrayDataPointerConstant p3 = pointerConstant(16, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   176
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   177
            0x3707344a, 0x3aa8a2e0, 0x03707345, 0x3ae98a2e
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   178
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   179
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   180
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   181
    private ArrayDataPointerConstant ctable = pointerConstant(16, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   182
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   183
            0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x882c10fa,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   184
            0x3f9664f4, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   185
            0x00000000, 0x00000000, 0x55e6c23d, 0x3f8226e3, 0x55555555,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   186
            0x3fd55555, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   187
            0x0e157de0, 0x3f6d6d3d, 0x11111111, 0x3fc11111, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   188
            0x00000000, 0x00000000, 0x00000000, 0x452b75e3, 0x3f57da36,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   189
            0x1ba1ba1c, 0x3faba1ba, 0x00000000, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   190
            0x00000000, 0x00000000, 0x3ff00000, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   191
            0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4e435f9b,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   192
            0x3f953f83, 0x00000000, 0x00000000, 0x3c6e8e46, 0x3f9b74ea,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   193
            0x00000000, 0x00000000, 0xda5b7511, 0x3f85ad63, 0xdc230b9b,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   194
            0x3fb97558, 0x26cb3788, 0x3f881308, 0x76fc4985, 0x3fd62ac9,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   195
            0x77bb08ba, 0x3f757c85, 0xb6247521, 0x3fb1381e, 0x5922170c,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   196
            0x3f754e95, 0x8746482d, 0x3fc27f83, 0x11055b30, 0x3f64e391,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   197
            0x3e666320, 0x3fa3e609, 0x0de9dae3, 0x3f6301df, 0x1f1dca06,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   198
            0x3fafa8ae, 0x8c5b2da2, 0x3fb936bb, 0x4e88f7a5, 0x3c587d05,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   199
            0x00000000, 0x3ff00000, 0xa8935dd9, 0x3f83dde2, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   200
            0x00000000, 0x00000000, 0x00000000, 0x5a279ea3, 0x3faa3407,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   201
            0x00000000, 0x00000000, 0x432d65fa, 0x3fa70153, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   202
            0x00000000, 0x891a4602, 0x3f9d03ef, 0xd62ca5f8, 0x3fca77d9,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   203
            0xb35f4628, 0x3f97a265, 0x433258fa, 0x3fd8cf51, 0xb58fd909,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   204
            0x3f8f88e3, 0x01771cea, 0x3fc2b154, 0xf3562f8e, 0x3f888f57,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   205
            0xc028a723, 0x3fc7370f, 0x20b7f9f0, 0x3f80f44c, 0x214368e9,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   206
            0x3fb6dfaa, 0x28891863, 0x3f79b4b6, 0x172dbbf0, 0x3fb6cb8e,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   207
            0xe0553158, 0x3fc975f5, 0x593fe814, 0x3c2ef5d3, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   208
            0x3ff00000, 0x03dec550, 0x3fa44203, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   209
            0x00000000, 0x00000000, 0x9314533e, 0x3fbb8ec5, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   210
            0x00000000, 0x09aa36d0, 0x3fb6d3f4, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   211
            0xdcb427fd, 0x3fb13950, 0xd87ab0bb, 0x3fd5335e, 0xce0ae8a5,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   212
            0x3fabb382, 0x79143126, 0x3fddba41, 0x5f2b28d4, 0x3fa552f1,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   213
            0x59f21a6d, 0x3fd015ab, 0x22c27d95, 0x3fa0e984, 0xe19fc6aa,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   214
            0x3fd0576c, 0x8f2c2950, 0x3f9a4898, 0xc0b3f22c, 0x3fc59462,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   215
            0x1883a4b8, 0x3f94b61c, 0x3f838640, 0x3fc30eb8, 0x355c63dc,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   216
            0x3fd36a08, 0x1dce993d, 0xbc6d704d, 0x00000000, 0x3ff00000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   217
            0x2b82ab63, 0x3fb78e92, 0x00000000, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   218
            0x00000000, 0x56f37042, 0x3fccfc56, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   219
            0xaa563951, 0x3fc90125, 0x00000000, 0x00000000, 0x3d0e7c5d,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   220
            0x3fc50533, 0x9bed9b2e, 0x3fdf0ed9, 0x5fe7c47c, 0x3fc1f250,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   221
            0x96c125e5, 0x3fe2edd9, 0x5a02bbd8, 0x3fbe5c71, 0x86362c20,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   222
            0x3fda08b7, 0x4b4435ed, 0x3fb9d342, 0x4b494091, 0x3fd911bd,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   223
            0xb56658be, 0x3fb5e4c7, 0x93a2fd76, 0x3fd3c092, 0xda271794,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   224
            0x3fb29910, 0x3303df2b, 0x3fd189be, 0x99fcef32, 0x3fda8279,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   225
            0xb68c1467, 0x3c708b2f, 0x00000000, 0x3ff00000, 0x980c4337,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   226
            0x3fc5f619, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   227
            0xcc03e501, 0x3fdff10f, 0x00000000, 0x00000000, 0x44a4e845,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   228
            0x3fddb63b, 0x00000000, 0x00000000, 0x3768ad9f, 0x3fdb72a4,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   229
            0x3dd01cca, 0x3fe5fdb9, 0xa61d2811, 0x3fd972b2, 0x5645ad0b,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   230
            0x3fe977f9, 0xd013b3ab, 0x3fd78ca3, 0xbf0bf914, 0x3fe4f192,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   231
            0x4d53e730, 0x3fd5d060, 0x3f8b9000, 0x3fe49933, 0xe2b82f08,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   232
            0x3fd4322a, 0x5936a835, 0x3fe27ae1, 0xb1c61c9b, 0x3fd2b3fb,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   233
            0xef478605, 0x3fe1659e, 0x190834ec, 0x3fe11ab7, 0xcdb625ea,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   234
            0xbc8e564b, 0x00000000, 0x3ff00000, 0xb07217e3, 0x3fd248f1,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   235
            0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x2b2c49d0,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   236
            0x3ff2de9c, 0x00000000, 0x00000000, 0x2655bc98, 0x3ff33e58,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   237
            0x00000000, 0x00000000, 0xff691fa2, 0x3ff3972e, 0xe93463bd,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   238
            0x3feeed87, 0x070e10a0, 0x3ff3f5b2, 0xf4d790a4, 0x3ff20c10,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   239
            0xa04e8ea3, 0x3ff4541a, 0x386accd3, 0x3ff1369e, 0x222a66dd,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   240
            0x3ff4b521, 0x22a9777e, 0x3ff20817, 0x52a04a6e, 0x3ff5178f,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   241
            0xddaa0031, 0x3ff22137, 0x4447d47c, 0x3ff57c01, 0x1e9c7f1d,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   242
            0x3ff29311, 0x2ab7f990, 0x3fe561b8, 0x209c7df1, 0x3c87a8c5,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   243
            0x00000000, 0x3ff00000, 0x4170bcc6, 0x3fdc92d8, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   244
            0x00000000, 0x00000000, 0x00000000, 0xc7ab4d5a, 0x40085e24,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   245
            0x00000000, 0x00000000, 0xe93ea75d, 0x400b963d, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   246
            0x00000000, 0x94a7f25a, 0x400f37e2, 0x4b6261cb, 0x3ff5f984,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   247
            0x5a9dd812, 0x4011aab0, 0x74c30018, 0x3ffaf5a5, 0x7f2ce8e3,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   248
            0x4013fe8b, 0xfe8e54fa, 0x3ffd7334, 0x670d618d, 0x4016a10c,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   249
            0x4db97058, 0x4000e012, 0x24df44dd, 0x40199c5f, 0x697d6ece,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   250
            0x4003006e, 0x83298b82, 0x401cfc4d, 0x19d490d6, 0x40058c19,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   251
            0x2ae42850, 0x3fea4300, 0x118e20e6, 0xbc7a6db8, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   252
            0x40000000, 0xe33345b8, 0xbfd4e526, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   253
            0x00000000, 0x00000000, 0x65965966, 0x40219659, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   254
            0x00000000, 0x882c10fa, 0x402664f4, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   255
            0x83cd3723, 0x402c8342, 0x00000000, 0x40000000, 0x55e6c23d,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   256
            0x403226e3, 0x55555555, 0x40055555, 0x34451939, 0x40371c96,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   257
            0xaaaaaaab, 0x400aaaaa, 0x0e157de0, 0x403d6d3d, 0x11111111,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   258
            0x40111111, 0xa738201f, 0x4042bbce, 0x05b05b06, 0x4015b05b,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   259
            0x452b75e3, 0x4047da36, 0x1ba1ba1c, 0x401ba1ba, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   260
            0x3ff00000, 0x00000000, 0x00000000, 0x00000000, 0x40000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   261
            0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   262
            0x00000000, 0x4f48b8d3, 0xbf33eaf9, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   263
            0x0cf7586f, 0x3f20b8ea, 0x00000000, 0x00000000, 0xd0258911,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   264
            0xbf0abaf3, 0x23e49fe9, 0xbfab5a8c, 0x2d53222e, 0x3ef60d15,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   265
            0x21169451, 0x3fa172b2, 0xbb254dbc, 0xbee1d3b5, 0xdbf93b8e,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   266
            0xbf84c7db, 0x05b4630b, 0x3ecd3364, 0xee9aada7, 0x3f743924,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   267
            0x794a8297, 0xbeb7b7b9, 0xe015f797, 0xbf5d41f5, 0xe41a4a56,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   268
            0x3ea35dfb, 0xe4c2a251, 0x3f49a2ab, 0x5af9e000, 0xbfce49ce,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   269
            0x8c743719, 0x3d1eb860, 0x00000000, 0x00000000, 0x1b4863cf,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   270
            0x3fd78294, 0x00000000, 0x3ff00000, 0x00000000, 0xfffffff8,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   271
            0x535ad890, 0xbf2b9320, 0x00000000, 0x00000000, 0x018fdf1f,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   272
            0x3f16d61d, 0x00000000, 0x00000000, 0x0359f1be, 0xbf0139e4,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   273
            0xa4317c6d, 0xbfa67e17, 0x82672d0f, 0x3eebb405, 0x2f1b621e,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   274
            0x3f9f455b, 0x51ccf238, 0xbed55317, 0xf437b9ac, 0xbf804bee,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   275
            0xc791a2b5, 0x3ec0e993, 0x919a1db2, 0x3f7080c2, 0x336a5b0e,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   276
            0xbeaa48a2, 0x0a268358, 0xbf55a443, 0xdfd978e4, 0x3e94b61f,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   277
            0xd7767a58, 0x3f431806, 0x2aea0000, 0xbfc9bbe8, 0x7723ea61,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   278
            0xbd3a2369, 0x00000000, 0x00000000, 0xdf7796ff, 0x3fd6e642,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   279
            0x00000000, 0x3ff00000, 0x00000000, 0xfffffff8, 0xb9ff07ce,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   280
            0xbf231c78, 0x00000000, 0x00000000, 0xa5517182, 0x3f0ff0e0,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   281
            0x00000000, 0x00000000, 0x790b4cbc, 0xbef66191, 0x848a46c6,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   282
            0xbfa21ac0, 0xb16435fa, 0x3ee1d3ec, 0x2a1aa832, 0x3f9c71ea,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   283
            0xfdd299ef, 0xbec9dd1a, 0x3f8dbaaf, 0xbf793363, 0x309fc6ea,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   284
            0x3eb415d6, 0xbee60471, 0x3f6b83ba, 0x94a0a697, 0xbe9dae11,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   285
            0x3e5c67b3, 0xbf4fd07b, 0x9a8f3e3e, 0x3e86bd75, 0xa4beb7a4,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   286
            0x3f3d1eb1, 0x29cfc000, 0xbfc549ce, 0xbf159358, 0xbd397b33,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   287
            0x00000000, 0x00000000, 0x871fee6c, 0x3fd666f0, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   288
            0x3ff00000, 0x00000000, 0xfffffff8, 0x7d98a556, 0xbf1a3958,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   289
            0x00000000, 0x00000000, 0x9d88dc01, 0x3f0704c2, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   290
            0x00000000, 0x73742a2b, 0xbeed054a, 0x58844587, 0xbf9c2a13,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   291
            0x55688a79, 0x3ed7a326, 0xee33f1d6, 0x3f9a48f4, 0xa8dc9888,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   292
            0xbebf8939, 0xaad4b5b8, 0xbf72f746, 0x9102efa1, 0x3ea88f82,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   293
            0xdabc29cf, 0x3f678228, 0x9289afb8, 0xbe90f456, 0x741fb4ed,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   294
            0xbf46f3a3, 0xa97f6663, 0x3e79b4bf, 0xca89ff3f, 0x3f36db70,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   295
            0xa8a2a000, 0xbfc0ee13, 0x3da24be1, 0xbd338b9f, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   296
            0x00000000, 0x11cd6c69, 0x3fd601fd, 0x00000000, 0x3ff00000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   297
            0x00000000, 0xfffffff8, 0x1a154b97, 0xbf116b01, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   298
            0x00000000, 0x2d427630, 0x3f0147bf, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   299
            0xb93820c8, 0xbee264d4, 0xbb6cbb18, 0xbf94ab8c, 0x888d4d92,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   300
            0x3ed0568b, 0x60730f7c, 0x3f98b19b, 0xe4b1fb11, 0xbeb2f950,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   301
            0x22cf9f74, 0xbf6b21cd, 0x4a3ff0a6, 0x3e9f499e, 0xfd2b83ce,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   302
            0x3f64aad7, 0x637b73af, 0xbe83487c, 0xe522591a, 0xbf3fc092,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   303
            0xa158e8bc, 0x3e6e3aae, 0xe5e82ffa, 0x3f329d2f, 0xd636a000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   304
            0xbfb9477f, 0xc2c2d2bc, 0xbd135ef9, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   305
            0xf2fdb123, 0x3fd5b566, 0x00000000, 0x3ff00000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   306
            0xfffffff8, 0xc41acb64, 0xbf05448d, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   307
            0xdbb03d6f, 0x3efb7ad2, 0x00000000, 0x00000000, 0x9e42962d,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   308
            0xbed5aea5, 0x2579f8ef, 0xbf8b2398, 0x288a1ed9, 0x3ec81441,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   309
            0xb0198dc5, 0x3f979a3a, 0x2fdfe253, 0xbea57cd3, 0x5766336f,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   310
            0xbf617caa, 0x600944c3, 0x3e954ed6, 0xa4e0aaf8, 0x3f62c646,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   311
            0x6b8fb29c, 0xbe74e3a3, 0xdc4c0409, 0xbf33f952, 0x9bffe365,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   312
            0x3e6301ec, 0xb8869e44, 0x3f2fc566, 0xe1e04000, 0xbfb0cc62,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   313
            0x016b907f, 0xbd119cbc, 0x00000000, 0x00000000, 0xe6b9d8fa,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   314
            0x3fd57fb3, 0x00000000, 0x3ff00000, 0x00000000, 0xfffffff8,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   315
            0x5daf22a6, 0xbef429d7, 0x00000000, 0x00000000, 0x06bca545,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   316
            0x3ef7a27d, 0x00000000, 0x00000000, 0x7211c19a, 0xbec41c3e,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   317
            0x956ed53e, 0xbf7ae3f4, 0xee750e72, 0x3ec3901b, 0x91d443f5,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   318
            0x3f96f713, 0x36661e6c, 0xbe936e09, 0x506f9381, 0xbf5122e8,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   319
            0xcb6dd43f, 0x3e9041b9, 0x6698b2ff, 0x3f61b0c7, 0x576bf12b,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   320
            0xbe625a8a, 0xe5a0e9dc, 0xbf23499d, 0x110384dd, 0x3e5b1c2c,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   321
            0x68d43db6, 0x3f2cb899, 0x6ecac000, 0xbfa0c414, 0xcd7dd58c,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   322
            0x3d13500f, 0x00000000, 0x00000000, 0x85a2c8fb, 0x3fd55fe0,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   323
            0x00000000, 0x3ff00000, 0x00000000, 0xfffffff8, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   324
            0x00000000, 0x00000000, 0x00000000, 0x2bf70ebe, 0x3ef66a8f,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   325
            0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   326
            0x00000000, 0xd644267f, 0x3ec22805, 0x16c16c17, 0x3f96c16c,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   327
            0x00000000, 0x00000000, 0x00000000, 0x00000000, 0xc4e09162,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   328
            0x3e8d6db2, 0xbc011567, 0x3f61566a, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   329
            0x00000000, 0x00000000, 0x1f79955c, 0x3e57da4e, 0x9334ef0b,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   330
            0x3f2bbd77, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   331
            0x00000000, 0x00000000, 0x55555555, 0x3fd55555, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   332
            0x3ff00000, 0x00000000, 0xfffffff8, 0x5daf22a6, 0x3ef429d7,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   333
            0x00000000, 0x00000000, 0x06bca545, 0x3ef7a27d, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   334
            0x00000000, 0x7211c19a, 0x3ec41c3e, 0x956ed53e, 0x3f7ae3f4,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   335
            0xee750e72, 0x3ec3901b, 0x91d443f5, 0x3f96f713, 0x36661e6c,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   336
            0x3e936e09, 0x506f9381, 0x3f5122e8, 0xcb6dd43f, 0x3e9041b9,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   337
            0x6698b2ff, 0x3f61b0c7, 0x576bf12b, 0x3e625a8a, 0xe5a0e9dc,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   338
            0x3f23499d, 0x110384dd, 0x3e5b1c2c, 0x68d43db6, 0x3f2cb899,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   339
            0x6ecac000, 0x3fa0c414, 0xcd7dd58c, 0xbd13500f, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   340
            0x00000000, 0x85a2c8fb, 0x3fd55fe0, 0x00000000, 0x3ff00000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   341
            0x00000000, 0xfffffff8, 0xc41acb64, 0x3f05448d, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   342
            0x00000000, 0xdbb03d6f, 0x3efb7ad2, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   343
            0x9e42962d, 0x3ed5aea5, 0x2579f8ef, 0x3f8b2398, 0x288a1ed9,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   344
            0x3ec81441, 0xb0198dc5, 0x3f979a3a, 0x2fdfe253, 0x3ea57cd3,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   345
            0x5766336f, 0x3f617caa, 0x600944c3, 0x3e954ed6, 0xa4e0aaf8,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   346
            0x3f62c646, 0x6b8fb29c, 0x3e74e3a3, 0xdc4c0409, 0x3f33f952,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   347
            0x9bffe365, 0x3e6301ec, 0xb8869e44, 0x3f2fc566, 0xe1e04000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   348
            0x3fb0cc62, 0x016b907f, 0x3d119cbc, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   349
            0xe6b9d8fa, 0x3fd57fb3, 0x00000000, 0x3ff00000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   350
            0xfffffff8, 0x1a154b97, 0x3f116b01, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   351
            0x2d427630, 0x3f0147bf, 0x00000000, 0x00000000, 0xb93820c8,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   352
            0x3ee264d4, 0xbb6cbb18, 0x3f94ab8c, 0x888d4d92, 0x3ed0568b,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   353
            0x60730f7c, 0x3f98b19b, 0xe4b1fb11, 0x3eb2f950, 0x22cf9f74,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   354
            0x3f6b21cd, 0x4a3ff0a6, 0x3e9f499e, 0xfd2b83ce, 0x3f64aad7,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   355
            0x637b73af, 0x3e83487c, 0xe522591a, 0x3f3fc092, 0xa158e8bc,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   356
            0x3e6e3aae, 0xe5e82ffa, 0x3f329d2f, 0xd636a000, 0x3fb9477f,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   357
            0xc2c2d2bc, 0x3d135ef9, 0x00000000, 0x00000000, 0xf2fdb123,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   358
            0x3fd5b566, 0x00000000, 0x3ff00000, 0x00000000, 0xfffffff8,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   359
            0x7d98a556, 0x3f1a3958, 0x00000000, 0x00000000, 0x9d88dc01,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   360
            0x3f0704c2, 0x00000000, 0x00000000, 0x73742a2b, 0x3eed054a,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   361
            0x58844587, 0x3f9c2a13, 0x55688a79, 0x3ed7a326, 0xee33f1d6,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   362
            0x3f9a48f4, 0xa8dc9888, 0x3ebf8939, 0xaad4b5b8, 0x3f72f746,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   363
            0x9102efa1, 0x3ea88f82, 0xdabc29cf, 0x3f678228, 0x9289afb8,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   364
            0x3e90f456, 0x741fb4ed, 0x3f46f3a3, 0xa97f6663, 0x3e79b4bf,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   365
            0xca89ff3f, 0x3f36db70, 0xa8a2a000, 0x3fc0ee13, 0x3da24be1,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   366
            0x3d338b9f, 0x00000000, 0x00000000, 0x11cd6c69, 0x3fd601fd,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   367
            0x00000000, 0x3ff00000, 0x00000000, 0xfffffff8, 0xb9ff07ce,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   368
            0x3f231c78, 0x00000000, 0x00000000, 0xa5517182, 0x3f0ff0e0,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   369
            0x00000000, 0x00000000, 0x790b4cbc, 0x3ef66191, 0x848a46c6,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   370
            0x3fa21ac0, 0xb16435fa, 0x3ee1d3ec, 0x2a1aa832, 0x3f9c71ea,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   371
            0xfdd299ef, 0x3ec9dd1a, 0x3f8dbaaf, 0x3f793363, 0x309fc6ea,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   372
            0x3eb415d6, 0xbee60471, 0x3f6b83ba, 0x94a0a697, 0x3e9dae11,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   373
            0x3e5c67b3, 0x3f4fd07b, 0x9a8f3e3e, 0x3e86bd75, 0xa4beb7a4,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   374
            0x3f3d1eb1, 0x29cfc000, 0x3fc549ce, 0xbf159358, 0x3d397b33,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   375
            0x00000000, 0x00000000, 0x871fee6c, 0x3fd666f0, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   376
            0x3ff00000, 0x00000000, 0xfffffff8, 0x535ad890, 0x3f2b9320,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   377
            0x00000000, 0x00000000, 0x018fdf1f, 0x3f16d61d, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   378
            0x00000000, 0x0359f1be, 0x3f0139e4, 0xa4317c6d, 0x3fa67e17,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   379
            0x82672d0f, 0x3eebb405, 0x2f1b621e, 0x3f9f455b, 0x51ccf238,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   380
            0x3ed55317, 0xf437b9ac, 0x3f804bee, 0xc791a2b5, 0x3ec0e993,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   381
            0x919a1db2, 0x3f7080c2, 0x336a5b0e, 0x3eaa48a2, 0x0a268358,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   382
            0x3f55a443, 0xdfd978e4, 0x3e94b61f, 0xd7767a58, 0x3f431806,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   383
            0x2aea0000, 0x3fc9bbe8, 0x7723ea61, 0x3d3a2369, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   384
            0x00000000, 0xdf7796ff, 0x3fd6e642, 0x00000000, 0x3ff00000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   385
            0x00000000, 0xfffffff8, 0x4f48b8d3, 0x3f33eaf9, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   386
            0x00000000, 0x0cf7586f, 0x3f20b8ea, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   387
            0xd0258911, 0x3f0abaf3, 0x23e49fe9, 0x3fab5a8c, 0x2d53222e,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   388
            0x3ef60d15, 0x21169451, 0x3fa172b2, 0xbb254dbc, 0x3ee1d3b5,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   389
            0xdbf93b8e, 0x3f84c7db, 0x05b4630b, 0x3ecd3364, 0xee9aada7,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   390
            0x3f743924, 0x794a8297, 0x3eb7b7b9, 0xe015f797, 0x3f5d41f5,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   391
            0xe41a4a56, 0x3ea35dfb, 0xe4c2a251, 0x3f49a2ab, 0x5af9e000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   392
            0x3fce49ce, 0x8c743719, 0xbd1eb860, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   393
            0x1b4863cf, 0x3fd78294, 0x00000000, 0x3ff00000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   394
            0xfffffff8, 0x65965966, 0xc0219659, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   395
            0x882c10fa, 0x402664f4, 0x00000000, 0x00000000, 0x83cd3723,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   396
            0xc02c8342, 0x00000000, 0xc0000000, 0x55e6c23d, 0x403226e3,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   397
            0x55555555, 0x40055555, 0x34451939, 0xc0371c96, 0xaaaaaaab,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   398
            0xc00aaaaa, 0x0e157de0, 0x403d6d3d, 0x11111111, 0x40111111,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   399
            0xa738201f, 0xc042bbce, 0x05b05b06, 0xc015b05b, 0x452b75e3,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   400
            0x4047da36, 0x1ba1ba1c, 0x401ba1ba, 0x00000000, 0xbff00000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   401
            0x00000000, 0x00000000, 0x00000000, 0x40000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   402
            0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   403
            0xc7ab4d5a, 0xc0085e24, 0x00000000, 0x00000000, 0xe93ea75d,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   404
            0x400b963d, 0x00000000, 0x00000000, 0x94a7f25a, 0xc00f37e2,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   405
            0x4b6261cb, 0xbff5f984, 0x5a9dd812, 0x4011aab0, 0x74c30018,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   406
            0x3ffaf5a5, 0x7f2ce8e3, 0xc013fe8b, 0xfe8e54fa, 0xbffd7334,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   407
            0x670d618d, 0x4016a10c, 0x4db97058, 0x4000e012, 0x24df44dd,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   408
            0xc0199c5f, 0x697d6ece, 0xc003006e, 0x83298b82, 0x401cfc4d,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   409
            0x19d490d6, 0x40058c19, 0x2ae42850, 0xbfea4300, 0x118e20e6,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   410
            0x3c7a6db8, 0x00000000, 0x40000000, 0xe33345b8, 0xbfd4e526,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   411
            0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x2b2c49d0,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   412
            0xbff2de9c, 0x00000000, 0x00000000, 0x2655bc98, 0x3ff33e58,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   413
            0x00000000, 0x00000000, 0xff691fa2, 0xbff3972e, 0xe93463bd,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   414
            0xbfeeed87, 0x070e10a0, 0x3ff3f5b2, 0xf4d790a4, 0x3ff20c10,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   415
            0xa04e8ea3, 0xbff4541a, 0x386accd3, 0xbff1369e, 0x222a66dd,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   416
            0x3ff4b521, 0x22a9777e, 0x3ff20817, 0x52a04a6e, 0xbff5178f,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   417
            0xddaa0031, 0xbff22137, 0x4447d47c, 0x3ff57c01, 0x1e9c7f1d,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   418
            0x3ff29311, 0x2ab7f990, 0xbfe561b8, 0x209c7df1, 0xbc87a8c5,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   419
            0x00000000, 0x3ff00000, 0x4170bcc6, 0x3fdc92d8, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   420
            0x00000000, 0x00000000, 0x00000000, 0xcc03e501, 0xbfdff10f,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   421
            0x00000000, 0x00000000, 0x44a4e845, 0x3fddb63b, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   422
            0x00000000, 0x3768ad9f, 0xbfdb72a4, 0x3dd01cca, 0xbfe5fdb9,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   423
            0xa61d2811, 0x3fd972b2, 0x5645ad0b, 0x3fe977f9, 0xd013b3ab,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   424
            0xbfd78ca3, 0xbf0bf914, 0xbfe4f192, 0x4d53e730, 0x3fd5d060,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   425
            0x3f8b9000, 0x3fe49933, 0xe2b82f08, 0xbfd4322a, 0x5936a835,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   426
            0xbfe27ae1, 0xb1c61c9b, 0x3fd2b3fb, 0xef478605, 0x3fe1659e,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   427
            0x190834ec, 0xbfe11ab7, 0xcdb625ea, 0x3c8e564b, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   428
            0x3ff00000, 0xb07217e3, 0x3fd248f1, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   429
            0x00000000, 0x00000000, 0x56f37042, 0xbfccfc56, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   430
            0x00000000, 0xaa563951, 0x3fc90125, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   431
            0x3d0e7c5d, 0xbfc50533, 0x9bed9b2e, 0xbfdf0ed9, 0x5fe7c47c,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   432
            0x3fc1f250, 0x96c125e5, 0x3fe2edd9, 0x5a02bbd8, 0xbfbe5c71,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   433
            0x86362c20, 0xbfda08b7, 0x4b4435ed, 0x3fb9d342, 0x4b494091,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   434
            0x3fd911bd, 0xb56658be, 0xbfb5e4c7, 0x93a2fd76, 0xbfd3c092,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   435
            0xda271794, 0x3fb29910, 0x3303df2b, 0x3fd189be, 0x99fcef32,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   436
            0xbfda8279, 0xb68c1467, 0xbc708b2f, 0x00000000, 0x3ff00000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   437
            0x980c4337, 0x3fc5f619, 0x00000000, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   438
            0x00000000, 0x9314533e, 0xbfbb8ec5, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   439
            0x09aa36d0, 0x3fb6d3f4, 0x00000000, 0x00000000, 0xdcb427fd,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   440
            0xbfb13950, 0xd87ab0bb, 0xbfd5335e, 0xce0ae8a5, 0x3fabb382,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   441
            0x79143126, 0x3fddba41, 0x5f2b28d4, 0xbfa552f1, 0x59f21a6d,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   442
            0xbfd015ab, 0x22c27d95, 0x3fa0e984, 0xe19fc6aa, 0x3fd0576c,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   443
            0x8f2c2950, 0xbf9a4898, 0xc0b3f22c, 0xbfc59462, 0x1883a4b8,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   444
            0x3f94b61c, 0x3f838640, 0x3fc30eb8, 0x355c63dc, 0xbfd36a08,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   445
            0x1dce993d, 0x3c6d704d, 0x00000000, 0x3ff00000, 0x2b82ab63,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   446
            0x3fb78e92, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   447
            0x5a279ea3, 0xbfaa3407, 0x00000000, 0x00000000, 0x432d65fa,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   448
            0x3fa70153, 0x00000000, 0x00000000, 0x891a4602, 0xbf9d03ef,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   449
            0xd62ca5f8, 0xbfca77d9, 0xb35f4628, 0x3f97a265, 0x433258fa,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   450
            0x3fd8cf51, 0xb58fd909, 0xbf8f88e3, 0x01771cea, 0xbfc2b154,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   451
            0xf3562f8e, 0x3f888f57, 0xc028a723, 0x3fc7370f, 0x20b7f9f0,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   452
            0xbf80f44c, 0x214368e9, 0xbfb6dfaa, 0x28891863, 0x3f79b4b6,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   453
            0x172dbbf0, 0x3fb6cb8e, 0xe0553158, 0xbfc975f5, 0x593fe814,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   454
            0xbc2ef5d3, 0x00000000, 0x3ff00000, 0x03dec550, 0x3fa44203,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   455
            0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x4e435f9b,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   456
            0xbf953f83, 0x00000000, 0x00000000, 0x3c6e8e46, 0x3f9b74ea,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   457
            0x00000000, 0x00000000, 0xda5b7511, 0xbf85ad63, 0xdc230b9b,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   458
            0xbfb97558, 0x26cb3788, 0x3f881308, 0x76fc4985, 0x3fd62ac9,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   459
            0x77bb08ba, 0xbf757c85, 0xb6247521, 0xbfb1381e, 0x5922170c,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   460
            0x3f754e95, 0x8746482d, 0x3fc27f83, 0x11055b30, 0xbf64e391,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   461
            0x3e666320, 0xbfa3e609, 0x0de9dae3, 0x3f6301df, 0x1f1dca06,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   462
            0x3fafa8ae, 0x8c5b2da2, 0xbfb936bb, 0x4e88f7a5, 0xbc587d05,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   463
            0x00000000, 0x3ff00000, 0xa8935dd9, 0x3f83dde2, 0x00000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   464
            0x00000000, 0x00000000, 0x00000000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   465
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   466
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   467
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   468
    private ArrayDataPointerConstant mask35 = pointerConstant(16, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   469
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   470
            0xfffc0000, 0xffffffff, 0x00000000, 0x00000000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   471
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   472
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   473
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   474
    private ArrayDataPointerConstant q11 = pointerConstant(16, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   475
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   476
            0xb8fe4d77, 0x3f82609a
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   477
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   478
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   479
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   480
    private ArrayDataPointerConstant q9 = pointerConstant(16, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   481
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   482
            0xbf847a43, 0x3f9664a0
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   483
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   484
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   485
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   486
    private ArrayDataPointerConstant q7 = pointerConstant(16, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   487
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   488
            0x52c4c8ab, 0x3faba1ba
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   489
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   490
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   491
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   492
    private ArrayDataPointerConstant q5 = pointerConstant(16, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   493
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   494
            0x11092746, 0x3fc11111
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   495
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   496
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   497
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   498
    private ArrayDataPointerConstant q3 = pointerConstant(16, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   499
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   500
            0x55555612, 0x3fd55555
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   501
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   502
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   503
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   504
    private ArrayDataPointerConstant piInvTable = pointerConstant(16, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   505
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   506
            0x00000000, 0x00000000, 0xa2f9836e, 0x4e441529, 0xfc2757d1,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   507
            0xf534ddc0, 0xdb629599, 0x3c439041, 0xfe5163ab, 0xdebbc561,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   508
            0xb7246e3a, 0x424dd2e0, 0x06492eea, 0x09d1921c, 0xfe1deb1c,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   509
            0xb129a73e, 0xe88235f5, 0x2ebb4484, 0xe99c7026, 0xb45f7e41,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   510
            0x3991d639, 0x835339f4, 0x9c845f8b, 0xbdf9283b, 0x1ff897ff,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   511
            0xde05980f, 0xef2f118b, 0x5a0a6d1f, 0x6d367ecf, 0x27cb09b7,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   512
            0x4f463f66, 0x9e5fea2d, 0x7527bac7, 0xebe5f17b, 0x3d0739f7,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   513
            0x8a5292ea, 0x6bfb5fb1, 0x1f8d5d08, 0x56033046, 0xfc7b6bab,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   514
            0xf0cfbc21
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   515
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   516
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   517
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   518
    private ArrayDataPointerConstant pi4 = pointerConstant(8, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   519
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   520
            0x00000000, 0x3fe921fb,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   521
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   522
    private ArrayDataPointerConstant pi48 = pointerConstant(8, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   523
            0x4611a626, 0x3e85110b
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   524
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   525
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   526
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   527
    private ArrayDataPointerConstant qq2 = pointerConstant(8, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   528
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   529
            0x676733af, 0x3d32e7b9
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   530
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   531
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   532
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   533
    private ArrayDataPointerConstant one = pointerConstant(8, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   534
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   535
            0x00000000, 0x3ff00000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   536
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   537
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   538
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   539
    private ArrayDataPointerConstant twoPow55 = pointerConstant(8, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   540
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   541
            0x00000000, 0x43600000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   542
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   543
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   544
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   545
    private ArrayDataPointerConstant twoPowM55 = pointerConstant(4, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   546
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   547
            0x00000000, 0x3c800000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   548
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   549
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   550
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   551
    private ArrayDataPointerConstant negZero = pointerConstant(4, new int[]{
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   552
            // @formatter:off
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   553
            0x00000000, 0x80000000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   554
            // @formatter:on
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   555
    });
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   556
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   557
    @Override
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   558
    public void emitCode(CompilationResultBuilder crb, AMD64MacroAssembler masm) {
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   559
        Label block0 = new Label();
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   560
        Label block1 = new Label();
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   561
        Label block2 = new Label();
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   562
        Label block3 = new Label();
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   563
        Label block4 = new Label();
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   564
        Label block5 = new Label();
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   565
        Label block6 = new Label();
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   566
        Label block7 = new Label();
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   567
        Label block8 = new Label();
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   568
        Label block9 = new Label();
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   569
        Label block10 = new Label();
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   570
        Label block11 = new Label();
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   571
        Label block12 = new Label();
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   572
        Label block13 = new Label();
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   573
        Label block14 = new Label();
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   574
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   575
        masm.push(rbx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   576
        masm.subq(rsp, 16);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   577
        masm.movsd(new AMD64Address(rsp, 8), xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   578
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   579
        masm.pextrw(rax, xmm0, 3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   580
        masm.andl(rax, 32767);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   581
        masm.subl(rax, 16314);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   582
        masm.cmpl(rax, 270);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   583
        masm.jcc(AMD64Assembler.ConditionFlag.Above, block0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   584
        masm.movdqu(xmm5, recordExternalAddress(crb, onehalf));        // 0x00000000, 0x3fe00000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   585
                                                                       // 0x00000000, 0x3fe00000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   586
        masm.movdqu(xmm6, recordExternalAddress(crb, mul16));          // 0x00000000, 0x40300000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   587
                                                                       // 0x00000000, 0x3ff00000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   588
        masm.unpcklpd(xmm0, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   589
        masm.movdqu(xmm4, recordExternalAddress(crb, signMask));       // 0x00000000, 0x80000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   590
                                                                       // 0x00000000, 0x80000000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   591
        masm.andpd(xmm4, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   592
        masm.movdqu(xmm1, recordExternalAddress(crb, pi32Inv));        // 0x6dc9c883, 0x3fe45f30,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   593
                                                                       // 0x6dc9c883, 0x40245f30
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   594
        masm.mulpd(xmm1, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   595
        masm.por(xmm5, xmm4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   596
        masm.addpd(xmm1, xmm5);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   597
        masm.movdqu(xmm7, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   598
        masm.unpckhpd(xmm7, xmm7);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   599
        masm.cvttsd2sil(rdx, xmm7);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   600
        masm.cvttpd2dq(xmm1, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   601
        masm.cvtdq2pd(xmm1, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   602
        masm.mulpd(xmm1, xmm6);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   603
        masm.movdqu(xmm3, recordExternalAddress(crb, p1));             // 0x54444000, 0x3fb921fb,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   604
                                                                       // 0x54440000, 0x3fb921fb
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   605
        masm.movq(xmm5, recordExternalAddress(crb, qq2));              // 0x676733af, 0x3d32e7b9
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   606
        masm.addq(rdx, 469248);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   607
        masm.movdqu(xmm4, recordExternalAddress(crb, p2));             // 0x67674000, 0xbd32e7b9,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   608
                                                                       // 0x4c4c0000, 0x3d468c23
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   609
        masm.mulpd(xmm3, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   610
        masm.andq(rdx, 31);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   611
        masm.mulsd(xmm5, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   612
        masm.movq(rcx, rdx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   613
        masm.mulpd(xmm4, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   614
        masm.shlq(rcx, 1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   615
        masm.subpd(xmm0, xmm3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   616
        masm.mulpd(xmm1, recordExternalAddress(crb, p3));              // 0x3707344a, 0x3aa8a2e0,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   617
                                                                       // 0x03707345, 0x3ae98a2e
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   618
        masm.addq(rdx, rcx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   619
        masm.shlq(rcx, 2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   620
        masm.addq(rdx, rcx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   621
        masm.addsd(xmm5, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   622
        masm.movdqu(xmm2, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   623
        masm.subpd(xmm0, xmm4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   624
        masm.movq(xmm6, recordExternalAddress(crb, one));              // 0x00000000, 0x3ff00000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   625
        masm.shlq(rdx, 4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   626
        masm.leaq(rax, recordExternalAddress(crb, ctable));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   627
        masm.andpd(xmm5, recordExternalAddress(crb, mask35));          // 0xfffc0000, 0xffffffff,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   628
                                                                       // 0x00000000, 0x00000000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   629
        masm.movdqu(xmm3, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   630
        masm.addq(rax, rdx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   631
        masm.subpd(xmm2, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   632
        masm.unpckhpd(xmm0, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   633
        masm.divsd(xmm6, xmm5);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   634
        masm.subpd(xmm2, xmm4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   635
        masm.movdqu(xmm7, new AMD64Address(rax, 16));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   636
        masm.subsd(xmm3, xmm5);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   637
        masm.mulpd(xmm7, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   638
        masm.subpd(xmm2, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   639
        masm.movdqu(xmm1, new AMD64Address(rax, 48));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   640
        masm.mulpd(xmm1, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   641
        masm.movdqu(xmm4, new AMD64Address(rax, 96));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   642
        masm.mulpd(xmm4, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   643
        masm.addsd(xmm2, xmm3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   644
        masm.movdqu(xmm3, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   645
        masm.mulpd(xmm0, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   646
        masm.addpd(xmm7, new AMD64Address(rax, 0));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   647
        masm.addpd(xmm1, new AMD64Address(rax, 32));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   648
        masm.mulpd(xmm1, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   649
        masm.addpd(xmm4, new AMD64Address(rax, 80));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   650
        masm.addpd(xmm7, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   651
        masm.movdqu(xmm1, new AMD64Address(rax, 112));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   652
        masm.mulpd(xmm1, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   653
        masm.mulpd(xmm0, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   654
        masm.addpd(xmm4, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   655
        masm.movdqu(xmm1, new AMD64Address(rax, 64));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   656
        masm.mulpd(xmm1, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   657
        masm.addpd(xmm7, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   658
        masm.movdqu(xmm1, xmm3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   659
        masm.mulpd(xmm3, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   660
        masm.mulsd(xmm0, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   661
        masm.mulpd(xmm1, new AMD64Address(rax, 144));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   662
        masm.mulpd(xmm4, xmm3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   663
        masm.movdqu(xmm3, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   664
        masm.addpd(xmm7, xmm4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   665
        masm.movdqu(xmm4, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   666
        masm.mulsd(xmm0, xmm7);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   667
        masm.unpckhpd(xmm7, xmm7);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   668
        masm.addsd(xmm0, xmm7);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   669
        masm.unpckhpd(xmm1, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   670
        masm.addsd(xmm3, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   671
        masm.subsd(xmm4, xmm3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   672
        masm.addsd(xmm1, xmm4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   673
        masm.movdqu(xmm4, xmm2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   674
        masm.movq(xmm7, new AMD64Address(rax, 144));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   675
        masm.unpckhpd(xmm2, xmm2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   676
        masm.addsd(xmm7, new AMD64Address(rax, 152));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   677
        masm.mulsd(xmm7, xmm2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   678
        masm.addsd(xmm7, new AMD64Address(rax, 136));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   679
        masm.addsd(xmm7, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   680
        masm.addsd(xmm0, xmm7);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   681
        masm.movq(xmm7, recordExternalAddress(crb, one));              // 0x00000000, 0x3ff00000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   682
        masm.mulsd(xmm4, xmm6);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   683
        masm.movq(xmm2, new AMD64Address(rax, 168));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   684
        masm.andpd(xmm2, xmm6);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   685
        masm.mulsd(xmm5, xmm2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   686
        masm.mulsd(xmm6, new AMD64Address(rax, 160));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   687
        masm.subsd(xmm7, xmm5);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   688
        masm.subsd(xmm2, new AMD64Address(rax, 128));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   689
        masm.subsd(xmm7, xmm4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   690
        masm.mulsd(xmm7, xmm6);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   691
        masm.movdqu(xmm4, xmm3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   692
        masm.subsd(xmm3, xmm2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   693
        masm.addsd(xmm2, xmm3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   694
        masm.subsd(xmm4, xmm2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   695
        masm.addsd(xmm0, xmm4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   696
        masm.subsd(xmm0, xmm7);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   697
        masm.addsd(xmm0, xmm3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   698
        masm.jmp(block14);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   699
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   700
        masm.bind(block0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   701
        masm.jcc(AMD64Assembler.ConditionFlag.Greater, block1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   702
        masm.pextrw(rax, xmm0, 3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   703
        masm.movl(rdx, rax);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   704
        masm.andl(rax, 32752);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   705
        masm.jcc(AMD64Assembler.ConditionFlag.Equal, block2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   706
        masm.andl(rdx, 32767);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   707
        masm.cmpl(rdx, 15904);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   708
        masm.jcc(AMD64Assembler.ConditionFlag.Below, block3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   709
        masm.movdqu(xmm2, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   710
        masm.movdqu(xmm3, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   711
        masm.movq(xmm1, recordExternalAddress(crb, q11));              // 0xb8fe4d77, 0x3f82609a
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   712
        masm.mulsd(xmm2, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   713
        masm.mulsd(xmm3, xmm2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   714
        masm.mulsd(xmm1, xmm2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   715
        masm.addsd(xmm1, recordExternalAddress(crb, q9));              // 0xbf847a43, 0x3f9664a0
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   716
        masm.mulsd(xmm1, xmm2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   717
        masm.addsd(xmm1, recordExternalAddress(crb, q7));              // 0x52c4c8ab, 0x3faba1ba
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   718
        masm.mulsd(xmm1, xmm2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   719
        masm.addsd(xmm1, recordExternalAddress(crb, q5));              // 0x11092746, 0x3fc11111
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   720
        masm.mulsd(xmm1, xmm2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   721
        masm.addsd(xmm1, recordExternalAddress(crb, q3));              // 0x55555612, 0x3fd55555
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   722
        masm.mulsd(xmm1, xmm3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   723
        masm.addsd(xmm0, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   724
        masm.jmp(block14);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   725
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   726
        masm.bind(block3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   727
        masm.movq(xmm3, recordExternalAddress(crb, twoPow55));         // 0x00000000, 0x43600000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   728
        masm.mulsd(xmm3, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   729
        masm.addsd(xmm0, xmm3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   730
        masm.mulsd(xmm0, recordExternalAddress(crb, twoPowM55));       // 0x00000000, 0x3c800000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   731
        masm.jmp(block14);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   732
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   733
        masm.bind(block2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   734
        masm.movdqu(xmm1, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   735
        masm.mulsd(xmm1, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   736
        masm.jmp(block14);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   737
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   738
        masm.bind(block1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   739
        masm.pextrw(rax, xmm0, 3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   740
        masm.andl(rax, 32752);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   741
        masm.cmpl(rax, 32752);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   742
        masm.jcc(AMD64Assembler.ConditionFlag.Equal, block4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   743
        masm.pextrw(rcx, xmm0, 3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   744
        masm.andl(rcx, 32752);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   745
        masm.subl(rcx, 16224);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   746
        masm.shrl(rcx, 7);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   747
        masm.andl(rcx, 65532);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   748
        masm.leaq(r11, recordExternalAddress(crb, piInvTable));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   749
        masm.addq(rcx, r11);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   750
        masm.movdq(rax, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   751
        masm.movl(r10, new AMD64Address(rcx, 20));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   752
        masm.movl(r8, new AMD64Address(rcx, 24));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   753
        masm.movl(rdx, rax);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   754
        masm.shrq(rax, 21);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   755
        masm.orl(rax, Integer.MIN_VALUE);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   756
        masm.shrl(rax, 11);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   757
        masm.movl(r9, r10);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   758
        masm.imulq(r10, rdx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   759
        masm.imulq(r9, rax);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   760
        masm.imulq(r8, rax);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   761
        masm.movl(rsi, new AMD64Address(rcx, 16));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   762
        masm.movl(rdi, new AMD64Address(rcx, 12));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   763
        masm.movl(r11, r10);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   764
        masm.shrq(r10, 32);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   765
        masm.addq(r9, r10);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   766
        masm.addq(r11, r8);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   767
        masm.movl(r8, r11);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   768
        masm.shrq(r11, 32);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   769
        masm.addq(r9, r11);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   770
        masm.movl(r10, rsi);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   771
        masm.imulq(rsi, rdx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   772
        masm.imulq(r10, rax);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   773
        masm.movl(r11, rdi);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   774
        masm.imulq(rdi, rdx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   775
        masm.movl(rbx, rsi);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   776
        masm.shrq(rsi, 32);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   777
        masm.addq(r9, rbx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   778
        masm.movl(rbx, r9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   779
        masm.shrq(r9, 32);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   780
        masm.addq(r10, rsi);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   781
        masm.addq(r10, r9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   782
        masm.shlq(rbx, 32);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   783
        masm.orq(r8, rbx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   784
        masm.imulq(r11, rax);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   785
        masm.movl(r9, new AMD64Address(rcx, 8));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   786
        masm.movl(rsi, new AMD64Address(rcx, 4));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   787
        masm.movl(rbx, rdi);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   788
        masm.shrq(rdi, 32);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   789
        masm.addq(r10, rbx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   790
        masm.movl(rbx, r10);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   791
        masm.shrq(r10, 32);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   792
        masm.addq(r11, rdi);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   793
        masm.addq(r11, r10);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   794
        masm.movq(rdi, r9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   795
        masm.imulq(r9, rdx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   796
        masm.imulq(rdi, rax);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   797
        masm.movl(r10, r9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   798
        masm.shrq(r9, 32);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   799
        masm.addq(r11, r10);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   800
        masm.movl(r10, r11);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   801
        masm.shrq(r11, 32);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   802
        masm.addq(rdi, r9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   803
        masm.addq(rdi, r11);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   804
        masm.movq(r9, rsi);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   805
        masm.imulq(rsi, rdx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   806
        masm.imulq(r9, rax);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   807
        masm.shlq(r10, 32);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   808
        masm.orq(r10, rbx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   809
        masm.movl(rax, new AMD64Address(rcx, 0));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   810
        masm.movl(r11, rsi);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   811
        masm.shrq(rsi, 32);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   812
        masm.addq(rdi, r11);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   813
        masm.movl(r11, rdi);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   814
        masm.shrq(rdi, 32);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   815
        masm.addq(r9, rsi);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   816
        masm.addq(r9, rdi);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   817
        masm.imulq(rdx, rax);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   818
        masm.pextrw(rbx, xmm0, 3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   819
        masm.leaq(rdi, recordExternalAddress(crb, piInvTable));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   820
        masm.subq(rcx, rdi);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   821
        masm.addl(rcx, rcx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   822
        masm.addl(rcx, rcx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   823
        masm.addl(rcx, rcx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   824
        masm.addl(rcx, 19);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   825
        masm.movl(rsi, 32768);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   826
        masm.andl(rsi, rbx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   827
        masm.shrl(rbx, 4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   828
        masm.andl(rbx, 2047);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   829
        masm.subl(rbx, 1023);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   830
        masm.subl(rcx, rbx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   831
        masm.addq(r9, rdx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   832
        masm.movl(rdx, rcx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   833
        masm.addl(rdx, 32);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   834
        masm.cmpl(rcx, 0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   835
        masm.jcc(AMD64Assembler.ConditionFlag.Less, block5);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   836
        masm.negl(rcx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   837
        masm.addl(rcx, 29);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   838
        masm.shll(r9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   839
        masm.movl(rdi, r9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   840
        masm.andl(r9, 1073741823);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   841
        masm.testl(r9, 536870912);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   842
        masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block6);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   843
        masm.shrl(r9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   844
        masm.movl(rbx, 0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   845
        masm.shlq(r9, 32);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   846
        masm.orq(r9, r11);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   847
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   848
        masm.bind(block7);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   849
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   850
        masm.bind(block8);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   851
        masm.cmpq(r9, 0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   852
        masm.jcc(AMD64Assembler.ConditionFlag.Equal, block9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   853
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   854
        masm.bind(block10);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   855
        masm.bsrq(r11, r9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   856
        masm.movl(rcx, 29);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   857
        masm.subl(rcx, r11);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   858
        masm.jcc(AMD64Assembler.ConditionFlag.LessEqual, block11);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   859
        masm.shlq(r9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   860
        masm.movq(rax, r10);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   861
        masm.shlq(r10);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   862
        masm.addl(rdx, rcx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   863
        masm.negl(rcx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   864
        masm.addl(rcx, 64);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   865
        masm.shrq(rax);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   866
        masm.shrq(r8);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   867
        masm.orq(r9, rax);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   868
        masm.orq(r10, r8);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   869
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   870
        masm.bind(block12);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   871
        masm.cvtsi2sdq(xmm0, r9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   872
        masm.shrq(r10, 1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   873
        masm.cvtsi2sdq(xmm3, r10);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   874
        masm.xorpd(xmm4, xmm4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   875
        masm.shll(rdx, 4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   876
        masm.negl(rdx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   877
        masm.addl(rdx, 16368);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   878
        masm.orl(rdx, rsi);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   879
        masm.xorl(rdx, rbx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   880
        masm.pinsrw(xmm4, rdx, 3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   881
        masm.movq(xmm2, recordExternalAddress(crb, pi4));              // 0x00000000, 0x3fe921fb,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   882
                                                                       // 0x4611a626, 0x3e85110b
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   883
        masm.movq(xmm7, recordExternalAddress(crb, pi48));             // 0x3fe921fb, 0x4611a626,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   884
                                                                       // 0x3e85110b
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   885
        masm.xorpd(xmm5, xmm5);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   886
        masm.subl(rdx, 1008);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   887
        masm.pinsrw(xmm5, rdx, 3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   888
        masm.mulsd(xmm0, xmm4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   889
        masm.shll(rsi, 16);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   890
        masm.sarl(rsi, 31);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   891
        masm.mulsd(xmm3, xmm5);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   892
        masm.movdqu(xmm1, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   893
        masm.mulsd(xmm0, xmm2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   894
        masm.shrl(rdi, 30);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   895
        masm.addsd(xmm1, xmm3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   896
        masm.mulsd(xmm3, xmm2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   897
        masm.addl(rdi, rsi);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   898
        masm.xorl(rdi, rsi);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   899
        masm.mulsd(xmm7, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   900
        masm.movl(rax, rdi);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   901
        masm.addsd(xmm7, xmm3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   902
        masm.movdqu(xmm2, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   903
        masm.addsd(xmm0, xmm7);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   904
        masm.subsd(xmm2, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   905
        masm.addsd(xmm7, xmm2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   906
        masm.movdqu(xmm1, recordExternalAddress(crb, pi32Inv));        // 0x6dc9c883, 0x3fe45f30,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   907
                                                                       // 0x6dc9c883, 0x40245f30
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   908
        if (masm.supports(AMD64.CPUFeature.SSE3)) {
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   909
            masm.movddup(xmm0, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   910
        } else {
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   911
            masm.movlhps(xmm0, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   912
        }
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   913
        masm.movdqu(xmm4, recordExternalAddress(crb, signMask));       // 0x00000000, 0x80000000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   914
                                                                       // 0x00000000, 0x80000000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   915
        masm.andpd(xmm4, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   916
        masm.mulpd(xmm1, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   917
        if (masm.supports(AMD64.CPUFeature.SSE3)) {
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   918
            masm.movddup(xmm7, xmm7);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   919
        } else {
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   920
            masm.movlhps(xmm7, xmm7);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   921
        }
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   922
        masm.movdqu(xmm5, recordExternalAddress(crb, onehalf));        // 0x00000000, 0x3fe00000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   923
                                                                       // 0x00000000, 0x3fe00000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   924
        masm.movdqu(xmm6, recordExternalAddress(crb, mul16));          // 0x00000000, 0x40300000,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   925
                                                                       // 0x00000000, 0x3ff00000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   926
        masm.por(xmm5, xmm4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   927
        masm.addpd(xmm1, xmm5);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   928
        masm.movdqu(xmm5, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   929
        masm.unpckhpd(xmm5, xmm5);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   930
        masm.cvttsd2sil(rdx, xmm5);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   931
        masm.cvttpd2dq(xmm1, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   932
        masm.cvtdq2pd(xmm1, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   933
        masm.mulpd(xmm1, xmm6);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   934
        masm.movdqu(xmm3, recordExternalAddress(crb, p1));             // 0x54444000, 0x3fb921fb,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   935
                                                                       // 0x54440000, 0x3fb921fb
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   936
        masm.movq(xmm5, recordExternalAddress(crb, qq2));              // 0x676733af, 0x3d32e7b9
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   937
        masm.shll(rax, 4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   938
        masm.addl(rdx, 469248);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   939
        masm.movdqu(xmm4, recordExternalAddress(crb, p2));             // 0x67674000, 0xbd32e7b9,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   940
                                                                       // 0x4c4c0000, 0x3d468c23
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   941
        masm.mulpd(xmm3, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   942
        masm.addl(rdx, rax);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   943
        masm.andl(rdx, 31);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   944
        masm.mulsd(xmm5, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   945
        masm.movl(rcx, rdx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   946
        masm.mulpd(xmm4, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   947
        masm.shll(rcx, 1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   948
        masm.subpd(xmm0, xmm3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   949
        masm.mulpd(xmm1, recordExternalAddress(crb, p3));              // 0x3707344a, 0x3aa8a2e0,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   950
                                                                       // 0x03707345, 0x3ae98a2e
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   951
        masm.addl(rdx, rcx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   952
        masm.shll(rcx, 2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   953
        masm.addl(rdx, rcx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   954
        masm.addsd(xmm5, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   955
        masm.movdqu(xmm2, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   956
        masm.subpd(xmm0, xmm4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   957
        masm.movq(xmm6, recordExternalAddress(crb, one));              // 0x00000000, 0x3ff00000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   958
        masm.shll(rdx, 4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   959
        masm.leaq(rax, recordExternalAddress(crb, ctable));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   960
        masm.andpd(xmm5, recordExternalAddress(crb, mask35));          // 0xfffc0000, 0xffffffff,
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   961
                                                                       // 0x00000000, 0x00000000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   962
        masm.movdqu(xmm3, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   963
        masm.addq(rax, rdx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   964
        masm.subpd(xmm2, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   965
        masm.unpckhpd(xmm0, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   966
        masm.divsd(xmm6, xmm5);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   967
        masm.subpd(xmm2, xmm4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   968
        masm.subsd(xmm3, xmm5);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   969
        masm.subpd(xmm2, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   970
        masm.movdqu(xmm1, new AMD64Address(rax, 48));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   971
        masm.addpd(xmm2, xmm7);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   972
        masm.movdqu(xmm7, new AMD64Address(rax, 16));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   973
        masm.mulpd(xmm7, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   974
        masm.movdqu(xmm4, new AMD64Address(rax, 96));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   975
        masm.mulpd(xmm1, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   976
        masm.mulpd(xmm4, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   977
        masm.addsd(xmm2, xmm3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   978
        masm.movdqu(xmm3, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   979
        masm.mulpd(xmm0, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   980
        masm.addpd(xmm7, new AMD64Address(rax, 0));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   981
        masm.addpd(xmm1, new AMD64Address(rax, 32));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   982
        masm.mulpd(xmm1, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   983
        masm.addpd(xmm4, new AMD64Address(rax, 80));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   984
        masm.addpd(xmm7, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   985
        masm.movdqu(xmm1, new AMD64Address(rax, 112));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   986
        masm.mulpd(xmm1, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   987
        masm.mulpd(xmm0, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   988
        masm.addpd(xmm4, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   989
        masm.movdqu(xmm1, new AMD64Address(rax, 64));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   990
        masm.mulpd(xmm1, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   991
        masm.addpd(xmm7, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   992
        masm.movdqu(xmm1, xmm3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   993
        masm.mulpd(xmm3, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   994
        masm.mulsd(xmm0, xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   995
        masm.mulpd(xmm1, new AMD64Address(rax, 144));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   996
        masm.mulpd(xmm4, xmm3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   997
        masm.movdqu(xmm3, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   998
        masm.addpd(xmm7, xmm4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
   999
        masm.movdqu(xmm4, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1000
        masm.mulsd(xmm0, xmm7);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1001
        masm.unpckhpd(xmm7, xmm7);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1002
        masm.addsd(xmm0, xmm7);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1003
        masm.unpckhpd(xmm1, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1004
        masm.addsd(xmm3, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1005
        masm.subsd(xmm4, xmm3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1006
        masm.addsd(xmm1, xmm4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1007
        masm.movdqu(xmm4, xmm2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1008
        masm.movq(xmm7, new AMD64Address(rax, 144));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1009
        masm.unpckhpd(xmm2, xmm2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1010
        masm.addsd(xmm7, new AMD64Address(rax, 152));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1011
        masm.mulsd(xmm7, xmm2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1012
        masm.addsd(xmm7, new AMD64Address(rax, 136));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1013
        masm.addsd(xmm7, xmm1);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1014
        masm.addsd(xmm0, xmm7);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1015
        masm.movq(xmm7, recordExternalAddress(crb, one));              // 0x00000000, 0x3ff00000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1016
        masm.mulsd(xmm4, xmm6);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1017
        masm.movq(xmm2, new AMD64Address(rax, 168));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1018
        masm.andpd(xmm2, xmm6);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1019
        masm.mulsd(xmm5, xmm2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1020
        masm.mulsd(xmm6, new AMD64Address(rax, 160));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1021
        masm.subsd(xmm7, xmm5);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1022
        masm.subsd(xmm2, new AMD64Address(rax, 128));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1023
        masm.subsd(xmm7, xmm4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1024
        masm.mulsd(xmm7, xmm6);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1025
        masm.movdqu(xmm4, xmm3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1026
        masm.subsd(xmm3, xmm2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1027
        masm.addsd(xmm2, xmm3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1028
        masm.subsd(xmm4, xmm2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1029
        masm.addsd(xmm0, xmm4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1030
        masm.subsd(xmm0, xmm7);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1031
        masm.addsd(xmm0, xmm3);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1032
        masm.jmp(block14);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1033
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1034
        masm.bind(block9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1035
        masm.addl(rdx, 64);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1036
        masm.movq(r9, r10);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1037
        masm.movq(r10, r8);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1038
        masm.movl(r8, 0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1039
        masm.cmpq(r9, 0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1040
        masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block10);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1041
        masm.addl(rdx, 64);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1042
        masm.movq(r9, r10);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1043
        masm.movq(r10, r8);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1044
        masm.cmpq(r9, 0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1045
        masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block10);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1046
        masm.jmp(block12);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1047
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1048
        masm.bind(block11);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1049
        masm.jcc(AMD64Assembler.ConditionFlag.Equal, block12);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1050
        masm.negl(rcx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1051
        masm.shrq(r10);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1052
        masm.movq(rax, r9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1053
        masm.shrq(r9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1054
        masm.subl(rdx, rcx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1055
        masm.negl(rcx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1056
        masm.addl(rcx, 64);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1057
        masm.shlq(rax);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1058
        masm.orq(r10, rax);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1059
        masm.jmp(block12);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1060
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1061
        masm.bind(block5);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1062
        masm.notl(rcx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1063
        masm.shlq(r9, 32);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1064
        masm.orq(r9, r11);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1065
        masm.shlq(r9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1066
        masm.movq(rdi, r9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1067
        masm.testl(r9, Integer.MIN_VALUE);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1068
        masm.jcc(AMD64Assembler.ConditionFlag.NotEqual, block13);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1069
        masm.shrl(r9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1070
        masm.movl(rbx, 0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1071
        masm.shrq(rdi, 2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1072
        masm.jmp(block8);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1073
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1074
        masm.bind(block6);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1075
        masm.shrl(r9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1076
        masm.movl(rbx, 1073741824);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1077
        masm.shrl(rbx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1078
        masm.shlq(r9, 32);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1079
        masm.orq(r9, r11);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1080
        masm.shlq(rbx, 32);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1081
        masm.addl(rdi, 1073741824);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1082
        masm.movl(rcx, 0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1083
        masm.movl(r11, 0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1084
        masm.subq(rcx, r8);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1085
        masm.sbbq(r11, r10);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1086
        masm.sbbq(rbx, r9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1087
        masm.movq(r8, rcx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1088
        masm.movq(r10, r11);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1089
        masm.movq(r9, rbx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1090
        masm.movl(rbx, 32768);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1091
        masm.jmp(block7);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1092
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1093
        masm.bind(block13);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1094
        masm.shrl(r9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1095
        masm.movq(rbx, 0x100000000L);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1096
        masm.shrq(rbx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1097
        masm.movl(rcx, 0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1098
        masm.movl(r11, 0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1099
        masm.subq(rcx, r8);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1100
        masm.sbbq(r11, r10);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1101
        masm.sbbq(rbx, r9);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1102
        masm.movq(r8, rcx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1103
        masm.movq(r10, r11);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1104
        masm.movq(r9, rbx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1105
        masm.movl(rbx, 32768);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1106
        masm.shrq(rdi, 2);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1107
        masm.addl(rdi, 1073741824);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1108
        masm.jmp(block8);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1109
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1110
        masm.bind(block4);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1111
        masm.movq(xmm0, new AMD64Address(rsp, 8));
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1112
        masm.mulsd(xmm0, recordExternalAddress(crb, negZero));         // 0x00000000, 0x80000000
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1113
        masm.movq(new AMD64Address(rsp, 0), xmm0);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1114
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1115
        masm.bind(block14);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1116
        masm.addq(rsp, 16);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1117
        masm.pop(rbx);
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1118
    }
84f10bbf993f 8218074: Update Graal
jwilhelm
parents:
diff changeset
  1119
}