comparison src/cpu/ppc/vm/ppc.ad @ 20710:c5e86c5cd22e

8066964: ppc64: argument and return type profiling, fix problem with popframe Reviewed-by: roland, kvn
author goetz
date Fri, 12 Dec 2014 08:48:56 +0100
parents 327e7269f90d
children
comparison
equal deleted inserted replaced
20709:28f116adb50c 20710:c5e86c5cd22e
1936 } 1936 }
1937 1937
1938 // -------------------------------------------------------------------- 1938 // --------------------------------------------------------------------
1939 // Check for hi bits still needing moving. Only happens for misaligned 1939 // Check for hi bits still needing moving. Only happens for misaligned
1940 // arguments to native calls. 1940 // arguments to native calls.
1941 if (src_hi == dst_hi) 1941 if (src_hi == dst_hi) {
1942 return ppc64Opcode_none; // Self copy; no move. 1942 return ppc64Opcode_none; // Self copy; no move.
1943 }
1943 1944
1944 ShouldNotReachHere(); 1945 ShouldNotReachHere();
1945 return ppc64Opcode_undefined; 1946 return ppc64Opcode_undefined;
1946 } 1947 }
1947 #endif // PPC port 1948 #endif // PPC port
1959 __ nop(); 1960 __ nop();
1960 } 1961 }
1961 } 1962 }
1962 1963
1963 uint MachNopNode::size(PhaseRegAlloc *ra_) const { 1964 uint MachNopNode::size(PhaseRegAlloc *ra_) const {
1964 return _count * 4; 1965 return _count * 4;
1965 } 1966 }
1966 1967
1967 #ifndef PRODUCT 1968 #ifndef PRODUCT
1968 void BoxLockNode::format(PhaseRegAlloc *ra_, outputStream *st) const { 1969 void BoxLockNode::format(PhaseRegAlloc *ra_, outputStream *st) const {
1969 int offset = ra_->reg2offset(in_RegMask(0).find_first_elem()); 1970 int offset = ra_->reg2offset(in_RegMask(0).find_first_elem());
1970 int reg = ra_->get_reg_first(this); 1971 char reg_str[128];
1971 st->print("ADDI %s, SP, %d \t// box node", Matcher::regName[reg], offset); 1972 ra_->dump_register(this, reg_str);
1973 st->print("ADDI %s, SP, %d \t// box node", reg_str, offset);
1972 } 1974 }
1973 #endif 1975 #endif
1974 1976
1975 void BoxLockNode::emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const { 1977 void BoxLockNode::emit(CodeBuffer &cbuf, PhaseRegAlloc *ra_) const {
1976 MacroAssembler _masm(&cbuf); 1978 MacroAssembler _masm(&cbuf);