Mercurial > hg > truffle
comparison graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackendFactory.java @ 19254:835e950b38b9
removed vestige usages of Assumptions independent of a StructuredGraph
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 11 Feb 2015 13:39:33 +0100 |
parents | c240024b32b3 |
children | fcb426a54eed |
comparison
equal
deleted
inserted
replaced
19253:2caf12d746a3 | 19254:835e950b38b9 |
---|---|
150 foreignCalls = createForeignCalls(runtime, metaAccess, codeCache, nativeABICallerSaveRegisters); | 150 foreignCalls = createForeignCalls(runtime, metaAccess, codeCache, nativeABICallerSaveRegisters); |
151 } | 151 } |
152 try (InitTimer rt = timer("create Lowerer provider")) { | 152 try (InitTimer rt = timer("create Lowerer provider")) { |
153 lowerer = createLowerer(runtime, metaAccess, foreignCalls, registers, target); | 153 lowerer = createLowerer(runtime, metaAccess, foreignCalls, registers, target); |
154 } | 154 } |
155 // Replacements cannot have speculative optimizations since they have | |
156 // to be valid for the entire run of the VM. | |
157 Assumptions assumptions = new Assumptions(false); | |
158 Providers p = new Providers(metaAccess, codeCache, constantReflection, foreignCalls, lowerer, null, new HotSpotStampProvider()); | 155 Providers p = new Providers(metaAccess, codeCache, constantReflection, foreignCalls, lowerer, null, new HotSpotStampProvider()); |
159 try (InitTimer rt = timer("create SnippetReflection provider")) { | 156 try (InitTimer rt = timer("create SnippetReflection provider")) { |
160 snippetReflection = createSnippetReflection(runtime); | 157 snippetReflection = createSnippetReflection(runtime); |
161 } | 158 } |
162 try (InitTimer rt = timer("create Replacements provider")) { | 159 try (InitTimer rt = timer("create Replacements provider")) { |
163 replacements = createReplacements(runtime, assumptions, p, snippetReflection); | 160 replacements = createReplacements(runtime, p, snippetReflection); |
164 } | 161 } |
165 try (InitTimer rt = timer("create Disassembler provider")) { | 162 try (InitTimer rt = timer("create Disassembler provider")) { |
166 disassembler = createDisassembler(runtime); | 163 disassembler = createDisassembler(runtime); |
167 } | 164 } |
168 try (InitTimer rt = timer("create Suites provider")) { | 165 try (InitTimer rt = timer("create Suites provider")) { |
185 | 182 |
186 protected HotSpotDisassemblerProvider createDisassembler(HotSpotGraalRuntimeProvider runtime) { | 183 protected HotSpotDisassemblerProvider createDisassembler(HotSpotGraalRuntimeProvider runtime) { |
187 return new HotSpotDisassemblerProvider(runtime); | 184 return new HotSpotDisassemblerProvider(runtime); |
188 } | 185 } |
189 | 186 |
190 protected Replacements createReplacements(HotSpotGraalRuntimeProvider runtime, Assumptions assumptions, Providers p, SnippetReflectionProvider snippetReflection) { | 187 protected Replacements createReplacements(HotSpotGraalRuntimeProvider runtime, Providers p, SnippetReflectionProvider snippetReflection) { |
191 return new HotSpotReplacementsImpl(p, snippetReflection, runtime.getConfig(), assumptions, p.getCodeCache().getTarget()); | 188 return new HotSpotReplacementsImpl(p, snippetReflection, runtime.getConfig(), p.getCodeCache().getTarget()); |
192 } | 189 } |
193 | 190 |
194 protected AMD64HotSpotForeignCallsProvider createForeignCalls(HotSpotGraalRuntimeProvider runtime, HotSpotMetaAccessProvider metaAccess, HotSpotCodeCacheProvider codeCache, | 191 protected AMD64HotSpotForeignCallsProvider createForeignCalls(HotSpotGraalRuntimeProvider runtime, HotSpotMetaAccessProvider metaAccess, HotSpotCodeCacheProvider codeCache, |
195 Value[] nativeABICallerSaveRegisters) { | 192 Value[] nativeABICallerSaveRegisters) { |
196 return new AMD64HotSpotForeignCallsProvider(runtime, metaAccess, codeCache, nativeABICallerSaveRegisters); | 193 return new AMD64HotSpotForeignCallsProvider(runtime, metaAccess, codeCache, nativeABICallerSaveRegisters); |
249 callerSave.remove(AMD64.xmm14); | 246 callerSave.remove(AMD64.xmm14); |
250 callerSave.remove(AMD64.xmm15); | 247 callerSave.remove(AMD64.xmm15); |
251 } else { | 248 } else { |
252 /* | 249 /* |
253 * System V Application Binary Interface, AMD64 Architecture Processor Supplement | 250 * System V Application Binary Interface, AMD64 Architecture Processor Supplement |
254 * | 251 * |
255 * Draft Version 0.96 | 252 * Draft Version 0.96 |
256 * | 253 * |
257 * http://www.uclibc.org/docs/psABI-x86_64.pdf | 254 * http://www.uclibc.org/docs/psABI-x86_64.pdf |
258 * | 255 * |
259 * 3.2.1 | 256 * 3.2.1 |
260 * | 257 * |
261 * ... | 258 * ... |
262 * | 259 * |
263 * This subsection discusses usage of each register. Registers %rbp, %rbx and %r12 | 260 * This subsection discusses usage of each register. Registers %rbp, %rbx and %r12 |
264 * through %r15 "belong" to the calling function and the called function is required to | 261 * through %r15 "belong" to the calling function and the called function is required to |
265 * preserve their values. In other words, a called function must preserve these | 262 * preserve their values. In other words, a called function must preserve these |
266 * registers' values for its caller. Remaining registers "belong" to the called | 263 * registers' values for its caller. Remaining registers "belong" to the called |
267 * function. If a calling function wants to preserve such a register value across a | 264 * function. If a calling function wants to preserve such a register value across a |