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);