OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 5197 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5208 __ tst(scratch1, Operand(HeapNumber::kSignMask)); | 5208 __ tst(scratch1, Operand(HeapNumber::kSignMask)); |
5209 DeoptimizeIf(ne, instr->environment()); | 5209 DeoptimizeIf(ne, instr->environment()); |
5210 __ bind(&done); | 5210 __ bind(&done); |
5211 } | 5211 } |
5212 } | 5212 } |
5213 __ SmiTag(result_reg, SetCC); | 5213 __ SmiTag(result_reg, SetCC); |
5214 DeoptimizeIf(vs, instr->environment()); | 5214 DeoptimizeIf(vs, instr->environment()); |
5215 } | 5215 } |
5216 | 5216 |
5217 | 5217 |
5218 void LCodeGen::DoCheckSmiAndReturn(LCheckSmiAndReturn* instr) { | |
5219 LOperand* input = instr->value(); | |
5220 __ SmiTst(ToRegister(input)); | |
5221 DeoptimizeIf(ne, instr->environment()); | |
5222 } | |
5223 | |
5224 | |
5225 void LCodeGen::DoCheckSmi(LCheckSmi* instr) { | 5218 void LCodeGen::DoCheckSmi(LCheckSmi* instr) { |
5226 LOperand* input = instr->value(); | 5219 LOperand* input = instr->value(); |
5227 __ SmiTst(ToRegister(input)); | 5220 __ SmiTst(ToRegister(input)); |
5228 DeoptimizeIf(ne, instr->environment()); | 5221 DeoptimizeIf(ne, instr->environment()); |
5229 } | 5222 } |
5230 | 5223 |
5231 | 5224 |
5232 void LCodeGen::DoCheckNonSmi(LCheckNonSmi* instr) { | 5225 void LCodeGen::DoCheckNonSmi(LCheckNonSmi* instr) { |
5233 LOperand* input = instr->value(); | 5226 LOperand* input = instr->value(); |
5234 __ SmiTst(ToRegister(input)); | 5227 __ SmiTst(ToRegister(input)); |
(...skipping 751 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5986 __ sub(scratch, result, Operand::PointerOffsetFromSmiKey(index)); | 5979 __ sub(scratch, result, Operand::PointerOffsetFromSmiKey(index)); |
5987 __ ldr(result, FieldMemOperand(scratch, | 5980 __ ldr(result, FieldMemOperand(scratch, |
5988 FixedArray::kHeaderSize - kPointerSize)); | 5981 FixedArray::kHeaderSize - kPointerSize)); |
5989 __ bind(&done); | 5982 __ bind(&done); |
5990 } | 5983 } |
5991 | 5984 |
5992 | 5985 |
5993 #undef __ | 5986 #undef __ |
5994 | 5987 |
5995 } } // namespace v8::internal | 5988 } } // namespace v8::internal |
OLD | NEW |