Mercurial > hg > truffle
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); |