| Index: src/ppc/macro-assembler-ppc.cc
|
| diff --git a/src/ppc/macro-assembler-ppc.cc b/src/ppc/macro-assembler-ppc.cc
|
| index 0945f79dbdad648f7a8e711c5ee92d6712c58b1a..0530f4baab67e2be709c655df370d36651b11b2f 100644
|
| --- a/src/ppc/macro-assembler-ppc.cc
|
| +++ b/src/ppc/macro-assembler-ppc.cc
|
| @@ -4490,6 +4490,44 @@ void MacroAssembler::LoadDouble(DoubleRegister dst, const MemOperand& mem,
|
| }
|
| }
|
|
|
| +void MacroAssembler::LoadDoubleU(DoubleRegister dst, const MemOperand& mem,
|
| + Register scratch) {
|
| + Register base = mem.ra();
|
| + int offset = mem.offset();
|
| +
|
| + if (!is_int16(offset)) {
|
| + mov(scratch, Operand(offset));
|
| + lfdux(dst, MemOperand(base, scratch));
|
| + } else {
|
| + lfdu(dst, mem);
|
| + }
|
| +}
|
| +
|
| +void MacroAssembler::LoadSingle(DoubleRegister dst, const MemOperand& mem,
|
| + Register scratch) {
|
| + Register base = mem.ra();
|
| + int offset = mem.offset();
|
| +
|
| + if (!is_int16(offset)) {
|
| + mov(scratch, Operand(offset));
|
| + lfsx(dst, MemOperand(base, scratch));
|
| + } else {
|
| + lfs(dst, mem);
|
| + }
|
| +}
|
| +
|
| +void MacroAssembler::LoadSingleU(DoubleRegister dst, const MemOperand& mem,
|
| + Register scratch) {
|
| + Register base = mem.ra();
|
| + int offset = mem.offset();
|
| +
|
| + if (!is_int16(offset)) {
|
| + mov(scratch, Operand(offset));
|
| + lfsux(dst, MemOperand(base, scratch));
|
| + } else {
|
| + lfsu(dst, mem);
|
| + }
|
| +}
|
|
|
| void MacroAssembler::StoreDouble(DoubleRegister src, const MemOperand& mem,
|
| Register scratch) {
|
| @@ -4504,6 +4542,45 @@ void MacroAssembler::StoreDouble(DoubleRegister src, const MemOperand& mem,
|
| }
|
| }
|
|
|
| +void MacroAssembler::StoreDoubleU(DoubleRegister src, const MemOperand& mem,
|
| + Register scratch) {
|
| + Register base = mem.ra();
|
| + int offset = mem.offset();
|
| +
|
| + if (!is_int16(offset)) {
|
| + mov(scratch, Operand(offset));
|
| + stfdux(src, MemOperand(base, scratch));
|
| + } else {
|
| + stfdu(src, mem);
|
| + }
|
| +}
|
| +
|
| +void MacroAssembler::StoreSingle(DoubleRegister src, const MemOperand& mem,
|
| + Register scratch) {
|
| + Register base = mem.ra();
|
| + int offset = mem.offset();
|
| +
|
| + if (!is_int16(offset)) {
|
| + mov(scratch, Operand(offset));
|
| + stfsx(src, MemOperand(base, scratch));
|
| + } else {
|
| + stfs(src, mem);
|
| + }
|
| +}
|
| +
|
| +void MacroAssembler::StoreSingleU(DoubleRegister src, const MemOperand& mem,
|
| + Register scratch) {
|
| + Register base = mem.ra();
|
| + int offset = mem.offset();
|
| +
|
| + if (!is_int16(offset)) {
|
| + mov(scratch, Operand(offset));
|
| + stfsux(src, MemOperand(base, scratch));
|
| + } else {
|
| + stfsu(src, mem);
|
| + }
|
| +}
|
| +
|
| void MacroAssembler::TestJSArrayForAllocationMemento(Register receiver_reg,
|
| Register scratch_reg,
|
| Register scratch2_reg,
|
|
|