annotate graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotCounterOp.java @ 20085:e4bb07ed276c

AMD64HotSpotCounterOp: use incrementq macro.
author Josef Eisl <josef.eisl@jku.at>
date Mon, 30 Mar 2015 15:38:57 +0200
parents 4b6965a278cf
children 1da7aef31a08
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
19909
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
1 /*
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
2 * Copyright (c) 2015, 2015, Oracle and/or its affiliates. All rights reserved.
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
4 *
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
7 * published by the Free Software Foundation.
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
8 *
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
13 * accompanied this code).
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
14 *
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
18 *
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
21 * questions.
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
22 */
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
23 package com.oracle.graal.hotspot.amd64;
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
24
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
25 import static com.oracle.graal.amd64.AMD64.*;
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
26 import static com.oracle.graal.api.code.ValueUtil.*;
20021
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
27 import static com.oracle.graal.compiler.common.GraalInternalError.*;
19909
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
28
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
29 import com.oracle.graal.api.code.*;
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
30 import com.oracle.graal.api.meta.*;
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
31 import com.oracle.graal.asm.amd64.*;
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
32 import com.oracle.graal.hotspot.*;
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
33 import com.oracle.graal.hotspot.meta.*;
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
34 import com.oracle.graal.lir.*;
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
35 import com.oracle.graal.lir.asm.*;
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
36
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
37 @Opcode("BenchMarkCounter")
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
38 public class AMD64HotSpotCounterOp extends HotSpotCounterOp {
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
39 public static final LIRInstructionClass<AMD64HotSpotCounterOp> TYPE = LIRInstructionClass.create(AMD64HotSpotCounterOp.class);
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
40
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
41 @Alive({OperandFlag.STACK, OperandFlag.UNINITIALIZED}) private StackSlotValue backupSlot;
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
42
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
43 public AMD64HotSpotCounterOp(String name, String group, Value increment, HotSpotRegistersProvider registers, HotSpotVMConfig config, StackSlotValue backupSlot) {
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
44 super(TYPE, name, group, increment, registers, config);
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
45 this.backupSlot = backupSlot;
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
46 }
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
47
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
48 public AMD64HotSpotCounterOp(String[] names, String[] groups, Value[] increments, HotSpotRegistersProvider registers, HotSpotVMConfig config, StackSlotValue backupSlot) {
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
49 super(TYPE, names, groups, increments, registers, config);
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
50 this.backupSlot = backupSlot;
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
51 }
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
52
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
53 @Override
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
54 public void emitCode(CompilationResultBuilder crb) {
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
55 AMD64MacroAssembler masm = (AMD64MacroAssembler) crb.asm;
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
56 TargetDescription target = crb.target;
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
57
20021
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
58 Register scratch;
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
59 // It can happen that the rax register is the increment register, in this case we do not
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
60 // want to spill it to the stack.
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
61 if (!contains(increments, rax)) {
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
62 scratch = rax;
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
63 } else if (!contains(increments, rbx)) {
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
64 scratch = rbx;
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
65 } else {
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
66 // In this case rax and rbx are used as increment. Either we implement a third register
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
67 // or we implement a spillover the value from rax to rbx or vice versa during
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
68 // emitIncrement().
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
69 throw unimplemented("RAX and RBX are increment registers a the same time, spilling over the scratch register is not supported right now");
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
70 }
19909
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
71
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
72 // address for counters array
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
73 AMD64Address countersArrayAddr = new AMD64Address(thread, config.graalCountersThreadOffset);
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
74 Register countersArrayReg = scratch;
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
75
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
76 // backup scratch register
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
77 masm.movq((AMD64Address) crb.asAddress(backupSlot), scratch);
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
78
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
79 // load counters array
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
80 masm.movptr(countersArrayReg, countersArrayAddr);
20003
422e60a2f4b9 Implement dynamic instruction counters on assembly level
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 19909
diff changeset
81 CounterProcedure emitProcedure = (counterIndex, increment, displacement) -> emitIncrement(masm, countersArrayReg, increment, displacement);
422e60a2f4b9 Implement dynamic instruction counters on assembly level
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 19909
diff changeset
82 forEachCounter(emitProcedure, target);
19909
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
83
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
84 // restore scratch register
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
85 masm.movq(scratch, (AMD64Address) crb.asAddress(backupSlot));
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
86 }
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
87
20021
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
88 /**
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
89 * Tests if the array contains the register.
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
90 */
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
91 private static boolean contains(Value[] increments, Register register) {
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
92 for (Value increment : increments) {
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
93 if (isRegister(increment) && asRegister(increment).equals(register)) {
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
94 return true;
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
95 }
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
96 }
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
97 return false;
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
98 }
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
99
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
100 private static void emitIncrement(AMD64MacroAssembler masm, Register countersArrayReg, Value incrementValue, int displacement) {
19909
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
101 // address for counter value
20003
422e60a2f4b9 Implement dynamic instruction counters on assembly level
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 19909
diff changeset
102 AMD64Address counterAddr = new AMD64Address(countersArrayReg, displacement);
19909
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
103 // increment counter (in memory)
20021
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
104 if (isConstant(incrementValue)) {
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
105 int increment = asInt(asConstant(incrementValue));
20085
e4bb07ed276c AMD64HotSpotCounterOp: use incrementq macro.
Josef Eisl <josef.eisl@jku.at>
parents: 20021
diff changeset
106 masm.incrementq(counterAddr, increment);
19909
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
107 } else {
20021
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
108 masm.addq(counterAddr, asRegister(incrementValue));
19909
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
109 }
20021
4b6965a278cf Fix allocation counter issue where the counters sometimes gives way too high values for allocated bytes
Stefan Anzinger <stefan.anzinger@oracle.com>
parents: 20003
diff changeset
110
19909
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
111 }
1fed7073f288 Add AMD64HotSpotCounterOp and SPARCHotSpotCounterOp.
Josef Eisl <josef.eisl@jku.at>
parents:
diff changeset
112 }