< prev index next >

test/compiler/jvmci/jdk.vm.ci.code.test/src/jdk/vm/ci/code/test/sparc/SPARCTestAssembler.java

Print this page




  75     @Override
  76     public void emitEpilogue() {
  77         recordMark(config.MARKID_DEOPT_HANDLER_ENTRY);
  78         recordCall(new HotSpotForeignCallTarget(config.handleDeoptStub), 4, true, null);
  79         code.emitInt(1 << 30); // CALL
  80     }
  81 
  82     @Override
  83     public HotSpotCompiledCode finish(HotSpotResolvedJavaMethod method) {
  84         frameSize += SPARC.REGISTER_SAFE_AREA_SIZE;
  85         return super.finish(method);
  86     }
  87 
  88     @Override
  89     public void emitGrowStack(int size) {
  90         emitOp3(0b10, SPARC.sp, 0b000100, SPARC.sp, size); // SUB sp, size, sp
  91     }
  92 
  93     @Override
  94     public Register emitIntArg0() {
  95         return codeCache.getRegisterConfig().getCallingConventionRegisters(HotSpotCallingConventionType.JavaCallee, JavaKind.Int)[0];
  96     }
  97 
  98     @Override
  99     public Register emitIntArg1() {
 100         return codeCache.getRegisterConfig().getCallingConventionRegisters(HotSpotCallingConventionType.JavaCallee, JavaKind.Int)[1];
 101     }
 102 
 103     @Override
 104     public Register emitLoadInt(int c) {
 105         Register ret = newRegister();
 106         int hi = c >>> 10;
 107         int lo = c & ((1 << 10) - 1);
 108         if (hi == 0) {
 109             emitOp3(0b10, ret, 0b000010, SPARC.g0, lo); // OR g0, lo, ret
 110         } else {
 111             emitOp2(ret, 0b100, hi);                    // SETHI hi, ret
 112             if (lo != 0) {
 113                 emitOp3(0b10, ret, 0b000010, ret, lo);  // OR ret, lo, ret
 114             }
 115         }
 116         return ret;
 117     }
 118 
 119     @Override
 120     public Register emitLoadLong(long c) {




  75     @Override
  76     public void emitEpilogue() {
  77         recordMark(config.MARKID_DEOPT_HANDLER_ENTRY);
  78         recordCall(new HotSpotForeignCallTarget(config.handleDeoptStub), 4, true, null);
  79         code.emitInt(1 << 30); // CALL
  80     }
  81 
  82     @Override
  83     public HotSpotCompiledCode finish(HotSpotResolvedJavaMethod method) {
  84         frameSize += SPARC.REGISTER_SAFE_AREA_SIZE;
  85         return super.finish(method);
  86     }
  87 
  88     @Override
  89     public void emitGrowStack(int size) {
  90         emitOp3(0b10, SPARC.sp, 0b000100, SPARC.sp, size); // SUB sp, size, sp
  91     }
  92 
  93     @Override
  94     public Register emitIntArg0() {
  95         return codeCache.getRegisterConfig().getCallingConventionRegisters(HotSpotCallingConventionType.JavaCallee, JavaKind.Int).get(0);
  96     }
  97 
  98     @Override
  99     public Register emitIntArg1() {
 100         return codeCache.getRegisterConfig().getCallingConventionRegisters(HotSpotCallingConventionType.JavaCallee, JavaKind.Int).get(1);
 101     }
 102 
 103     @Override
 104     public Register emitLoadInt(int c) {
 105         Register ret = newRegister();
 106         int hi = c >>> 10;
 107         int lo = c & ((1 << 10) - 1);
 108         if (hi == 0) {
 109             emitOp3(0b10, ret, 0b000010, SPARC.g0, lo); // OR g0, lo, ret
 110         } else {
 111             emitOp2(ret, 0b100, hi);                    // SETHI hi, ret
 112             if (lo != 0) {
 113                 emitOp3(0b10, ret, 0b000010, ret, lo);  // OR ret, lo, ret
 114             }
 115         }
 116         return ret;
 117     }
 118 
 119     @Override
 120     public Register emitLoadLong(long c) {


< prev index next >