1ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom/* 2ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom * Copyright (C) 2011 The Android Open Source Project 3ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom * 4ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom * Licensed under the Apache License, Version 2.0 (the "License"); 5ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom * you may not use this file except in compliance with the License. 6ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom * You may obtain a copy of the License at 7ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom * 8ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom * http://www.apache.org/licenses/LICENSE-2.0 9ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom * 10ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom * Unless required by applicable law or agreed to in writing, software 11ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom * distributed under the License is distributed on an "AS IS" BASIS, 12ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom * See the License for the specific language governing permissions and 14ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom * limitations under the License. 15ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom */ 16ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom 17ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom#include "primitive.h" 18ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom 19ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstromnamespace art { 20ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom 21ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstromstatic const char* kTypeNames[] = { 22ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom "PrimNot", 23ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom "PrimBoolean", 24ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom "PrimByte", 25ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom "PrimChar", 26ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom "PrimShort", 27ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom "PrimInt", 28ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom "PrimLong", 29ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom "PrimFloat", 30ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom "PrimDouble", 31ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom "PrimVoid", 32ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom}; 3368d8b42ddec39ec0174162d90d4abaa004d1983eIan Rogers 345c4405e8ca4a0c1ee2d7759e650530c9aff77fd0Roland Levillainconst char* Primitive::PrettyDescriptor(Primitive::Type type) { 355c4405e8ca4a0c1ee2d7759e650530c9aff77fd0Roland Levillain CHECK(Primitive::kPrimNot <= type && type <= Primitive::kPrimVoid) << static_cast<int>(type); 365c4405e8ca4a0c1ee2d7759e650530c9aff77fd0Roland Levillain return kTypeNames[type]; 375c4405e8ca4a0c1ee2d7759e650530c9aff77fd0Roland Levillain} 385c4405e8ca4a0c1ee2d7759e650530c9aff77fd0Roland Levillain 39ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstromstd::ostream& operator<<(std::ostream& os, const Primitive::Type& type) { 40ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom int32_t int_type = static_cast<int32_t>(type); 41ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom if (type >= Primitive::kPrimNot && type <= Primitive::kPrimVoid) { 42ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom os << kTypeNames[int_type]; 43ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom } else { 44ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom os << "Type[" << int_type << "]"; 45ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom } 46ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom return os; 47ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom} 48ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom 49ae826983f7903bc0a6bbbe8426bf393fb2f6d747Brian Carlstrom} // namespace art 50