Chromium Code Reviews| Index: src/compiler/mips64/code-generator-mips64.cc |
| diff --git a/src/compiler/mips64/code-generator-mips64.cc b/src/compiler/mips64/code-generator-mips64.cc |
| index 190001228c091c620fd501dc63800ff9745efeb3..ec290c2b4e3e06617ca982a45b94ba05df846a3d 100644 |
| --- a/src/compiler/mips64/code-generator-mips64.cc |
| +++ b/src/compiler/mips64/code-generator-mips64.cc |
| @@ -685,6 +685,22 @@ void CodeGenerator::AssembleArchInstruction(Instruction* instr) { |
| __ Trunc_uw_d(i.InputDoubleRegister(0), i.OutputRegister(), scratch); |
| break; |
| } |
| + case kMips64FmoveLowUwD: |
| + __ FmoveLow(i.OutputRegister(), i.InputDoubleRegister(0)); |
| + // remove sign. |
| + __ li(at, Operand(32)); |
| + __ dsllv(i.OutputRegister(), i.OutputRegister(), at); |
| + __ dsrlv(i.OutputRegister(), i.OutputRegister(), at); |
|
paul.l...
2015/03/05 17:40:48
You can avoid the load and use of 'at' register he
balazs.kilvady
2015/03/05 18:07:08
Thanks, I modify it. Anyway test are passed withou
paul.l...
2015/03/05 18:43:49
Let's leave the shifts to strip sign extension for
|
| + break; |
| + case kMips64FmoveLowDUw: |
| + __ FmoveLow(i.OutputDoubleRegister(), i.InputRegister(1)); |
| + break; |
| + case kMips64FmoveHighUwD: |
| + __ FmoveHigh(i.OutputRegister(), i.InputDoubleRegister(0)); |
| + break; |
| + case kMips64FmoveHighDUw: |
| + __ FmoveHigh(i.OutputDoubleRegister(), i.InputRegister(1)); |
| + break; |
| // ... more basic instructions ... |
| case kMips64Lbu: |