Mercurial > hg > graal-compiler
comparison graal/GraalCompiler/src/com/sun/c1x/lir/LIRAssembler.java @ 2708:4272b7af2d17
merge
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Wed, 18 May 2011 18:40:58 +0200 |
parents | 7ed72769d51a 42450f536d24 |
children | c1a9bf38da28 |
comparison
equal
deleted
inserted
replaced
2707:7ed72769d51a | 2708:4272b7af2d17 |
---|---|
107 | 107 |
108 assert checkNoUnboundLabels(); | 108 assert checkNoUnboundLabels(); |
109 } | 109 } |
110 | 110 |
111 void emitBlock(BlockBegin block) { | 111 void emitBlock(BlockBegin block) { |
112 if (block.checkBlockFlag(BlockBegin.BlockFlag.BackwardBranchTarget)) { | |
113 emitAlignment(); | |
114 } | |
115 | 112 |
116 block.setBlockEntryPco(codePos()); | 113 block.setBlockEntryPco(codePos()); |
117 | 114 |
118 if (C1XOptions.PrintLIRWithAssembly) { | 115 if (C1XOptions.PrintLIRWithAssembly) { |
119 block.printWithoutPhis(TTY.out()); | 116 block.printWithoutPhis(TTY.out()); |
254 | 251 |
255 public void emitOp0(LIROp0 op) { | 252 public void emitOp0(LIROp0 op) { |
256 switch (op.code) { | 253 switch (op.code) { |
257 case Label: | 254 case Label: |
258 throw Util.shouldNotReachHere(); | 255 throw Util.shouldNotReachHere(); |
259 case OsrEntry: | |
260 emitOsrEntry(); | |
261 break; | |
262 case Here: | |
263 emitHere(op.result(), op.info, false); | |
264 break; | |
265 case Info: | |
266 emitHere(op.result(), op.info, true); | |
267 break; | |
268 case Pause: | |
269 emitPause(); | |
270 break; | |
271 case Breakpoint: | 256 case Breakpoint: |
272 emitBreakpoint(); | 257 emitBreakpoint(); |
273 break; | 258 break; |
274 default: | 259 default: |
275 throw Util.shouldNotReachHere(); | 260 throw Util.shouldNotReachHere(); |
410 | 395 |
411 protected abstract void emitNullCheck(CiValue src, LIRDebugInfo info); | 396 protected abstract void emitNullCheck(CiValue src, LIRDebugInfo info); |
412 | 397 |
413 protected abstract void emitNegate(LIRNegate negate); | 398 protected abstract void emitNegate(LIRNegate negate); |
414 | 399 |
415 protected abstract void emitHere(CiValue dst, LIRDebugInfo info, boolean infoOnly); | |
416 | |
417 protected abstract void emitMonitorAddress(int monitor, CiValue dst); | 400 protected abstract void emitMonitorAddress(int monitor, CiValue dst); |
418 | 401 |
419 protected abstract void emitPause(); | |
420 | |
421 protected abstract void emitStackAllocate(StackBlock src, CiValue dst); | 402 protected abstract void emitStackAllocate(StackBlock src, CiValue dst); |
422 | 403 |
423 protected abstract void emitReturn(CiValue inOpr); | 404 protected abstract void emitReturn(CiValue inOpr); |
424 | 405 |
425 protected abstract void emitReadPrefetch(CiValue inOpr); | 406 protected abstract void emitReadPrefetch(CiValue inOpr); |
468 | 449 |
469 protected abstract void emitCallAlignment(LIROpcode code); | 450 protected abstract void emitCallAlignment(LIROpcode code); |
470 | 451 |
471 protected abstract void emitMemoryBarriers(int barriers); | 452 protected abstract void emitMemoryBarriers(int barriers); |
472 | 453 |
473 protected abstract void emitOsrEntry(); | |
474 | |
475 protected abstract void reg2stack(CiValue src, CiValue dest, CiKind kind); | 454 protected abstract void reg2stack(CiValue src, CiValue dest, CiKind kind); |
476 | 455 |
477 protected abstract void reg2mem(CiValue src, CiValue dest, CiKind kind, LIRDebugInfo info, boolean unaligned); | 456 protected abstract void reg2mem(CiValue src, CiValue dest, CiKind kind, LIRDebugInfo info, boolean unaligned); |
478 | 457 |
479 protected abstract void mem2reg(CiValue src, CiValue dest, CiKind kind, LIRDebugInfo info, boolean unaligned); | 458 protected abstract void mem2reg(CiValue src, CiValue dest, CiKind kind, LIRDebugInfo info, boolean unaligned); |