Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(73)

Side by Side Diff: src/arm/lithium-arm.h

Issue 23129003: Arm support for DoubleToIStub (truncating). (Closed) Base URL: http://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Fix CALL_GENERATED_CODE call when on native. Created 7 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/arm/code-stubs-arm.cc ('k') | src/arm/lithium-arm.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 2027 matching lines...) Expand 10 before | Expand all | Expand 10 after
2038 2038
2039 LOperand* value() { return inputs_[0]; } 2039 LOperand* value() { return inputs_[0]; }
2040 LOperand* temp() { return temps_[0]; } 2040 LOperand* temp() { return temps_[0]; }
2041 LOperand* temp2() { return temps_[1]; } 2041 LOperand* temp2() { return temps_[1]; }
2042 2042
2043 DECLARE_CONCRETE_INSTRUCTION(NumberTagD, "number-tag-d") 2043 DECLARE_CONCRETE_INSTRUCTION(NumberTagD, "number-tag-d")
2044 DECLARE_HYDROGEN_ACCESSOR(Change) 2044 DECLARE_HYDROGEN_ACCESSOR(Change)
2045 }; 2045 };
2046 2046
2047 2047
2048 class LDoubleToSmi V8_FINAL : public LTemplateInstruction<1, 1, 2> { 2048 class LDoubleToSmi V8_FINAL : public LTemplateInstruction<1, 1, 0> {
2049 public: 2049 public:
2050 LDoubleToSmi(LOperand* value, LOperand* temp, LOperand* temp2) { 2050 explicit LDoubleToSmi(LOperand* value) {
2051 inputs_[0] = value; 2051 inputs_[0] = value;
2052 temps_[0] = temp;
2053 temps_[1] = temp2;
2054 } 2052 }
2055 2053
2056 LOperand* value() { return inputs_[0]; } 2054 LOperand* value() { return inputs_[0]; }
2057 LOperand* temp() { return temps_[0]; }
2058 LOperand* temp2() { return temps_[1]; }
2059 2055
2060 DECLARE_CONCRETE_INSTRUCTION(DoubleToSmi, "double-to-smi") 2056 DECLARE_CONCRETE_INSTRUCTION(DoubleToSmi, "double-to-smi")
2061 DECLARE_HYDROGEN_ACCESSOR(UnaryOperation) 2057 DECLARE_HYDROGEN_ACCESSOR(UnaryOperation)
2062 2058
2063 bool truncating() { return hydrogen()->CanTruncateToInt32(); } 2059 bool truncating() { return hydrogen()->CanTruncateToInt32(); }
2064 }; 2060 };
2065 2061
2066 2062
2067 // Sometimes truncating conversion from a tagged value to an int32. 2063 // Sometimes truncating conversion from a tagged value to an int32.
2068 class LDoubleToI V8_FINAL : public LTemplateInstruction<1, 1, 2> { 2064 class LDoubleToI V8_FINAL : public LTemplateInstruction<1, 1, 0> {
2069 public: 2065 public:
2070 LDoubleToI(LOperand* value, LOperand* temp, LOperand* temp2) { 2066 explicit LDoubleToI(LOperand* value) {
2071 inputs_[0] = value; 2067 inputs_[0] = value;
2072 temps_[0] = temp;
2073 temps_[1] = temp2;
2074 } 2068 }
2075 2069
2076 LOperand* value() { return inputs_[0]; } 2070 LOperand* value() { return inputs_[0]; }
2077 LOperand* temp() { return temps_[0]; }
2078 LOperand* temp2() { return temps_[1]; }
2079 2071
2080 DECLARE_CONCRETE_INSTRUCTION(DoubleToI, "double-to-i") 2072 DECLARE_CONCRETE_INSTRUCTION(DoubleToI, "double-to-i")
2081 DECLARE_HYDROGEN_ACCESSOR(UnaryOperation) 2073 DECLARE_HYDROGEN_ACCESSOR(UnaryOperation)
2082 2074
2083 bool truncating() { return hydrogen()->CanTruncateToInt32(); } 2075 bool truncating() { return hydrogen()->CanTruncateToInt32(); }
2084 }; 2076 };
2085 2077
2086 2078
2087 // Truncating conversion from a tagged value to an int32. 2079 // Truncating conversion from a tagged value to an int32.
2088 class LTaggedToI V8_FINAL : public LTemplateInstruction<1, 1, 3> { 2080 class LTaggedToI V8_FINAL : public LTemplateInstruction<1, 1, 2> {
2089 public: 2081 public:
2090 LTaggedToI(LOperand* value, 2082 LTaggedToI(LOperand* value,
2091 LOperand* temp, 2083 LOperand* temp,
2092 LOperand* temp2, 2084 LOperand* temp2) {
2093 LOperand* temp3) {
2094 inputs_[0] = value; 2085 inputs_[0] = value;
2095 temps_[0] = temp; 2086 temps_[0] = temp;
2096 temps_[1] = temp2; 2087 temps_[1] = temp2;
2097 temps_[2] = temp3;
2098 } 2088 }
2099 2089
2100 LOperand* value() { return inputs_[0]; } 2090 LOperand* value() { return inputs_[0]; }
2101 LOperand* temp() { return temps_[0]; } 2091 LOperand* temp() { return temps_[0]; }
2102 LOperand* temp2() { return temps_[1]; } 2092 LOperand* temp2() { return temps_[1]; }
2103 LOperand* temp3() { return temps_[2]; }
2104 2093
2105 DECLARE_CONCRETE_INSTRUCTION(TaggedToI, "tagged-to-i") 2094 DECLARE_CONCRETE_INSTRUCTION(TaggedToI, "tagged-to-i")
2106 DECLARE_HYDROGEN_ACCESSOR(UnaryOperation) 2095 DECLARE_HYDROGEN_ACCESSOR(UnaryOperation)
2107 2096
2108 bool truncating() { return hydrogen()->CanTruncateToInt32(); } 2097 bool truncating() { return hydrogen()->CanTruncateToInt32(); }
2109 }; 2098 };
2110 2099
2111 2100
2112 class LSmiTag V8_FINAL : public LTemplateInstruction<1, 1, 0> { 2101 class LSmiTag V8_FINAL : public LTemplateInstruction<1, 1, 0> {
2113 public: 2102 public:
(...skipping 666 matching lines...) Expand 10 before | Expand all | Expand 10 after
2780 2769
2781 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder); 2770 DISALLOW_COPY_AND_ASSIGN(LChunkBuilder);
2782 }; 2771 };
2783 2772
2784 #undef DECLARE_HYDROGEN_ACCESSOR 2773 #undef DECLARE_HYDROGEN_ACCESSOR
2785 #undef DECLARE_CONCRETE_INSTRUCTION 2774 #undef DECLARE_CONCRETE_INSTRUCTION
2786 2775
2787 } } // namespace v8::internal 2776 } } // namespace v8::internal
2788 2777
2789 #endif // V8_ARM_LITHIUM_ARM_H_ 2778 #endif // V8_ARM_LITHIUM_ARM_H_
OLDNEW
« no previous file with comments | « src/arm/code-stubs-arm.cc ('k') | src/arm/lithium-arm.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698