disassembler.h revision 0f3c55331439970e01af67f80ac117c473bc04cf
13a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers/*
23a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers * Copyright (C) 2012 The Android Open Source Project
33a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers *
43a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers * Licensed under the Apache License, Version 2.0 (the "License");
53a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers * you may not use this file except in compliance with the License.
63a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers * You may obtain a copy of the License at
73a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers *
83a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers *      http://www.apache.org/licenses/LICENSE-2.0
93a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers *
103a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers * Unless required by applicable law or agreed to in writing, software
113a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers * distributed under the License is distributed on an "AS IS" BASIS,
123a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
133a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers * See the License for the specific language governing permissions and
143a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers * limitations under the License.
153a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers */
163a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers
173a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers#ifndef ART_SRC_DISASSEMBLER_H_
183a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers#define ART_SRC_DISASSEMBLER_H_
193a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers
200f3c55331439970e01af67f80ac117c473bc04cfElliott Hughes#include <stdint.h>
210f3c55331439970e01af67f80ac117c473bc04cfElliott Hughes
220f3c55331439970e01af67f80ac117c473bc04cfElliott Hughes#include <iosfwd>
230f3c55331439970e01af67f80ac117c473bc04cfElliott Hughes
240f3c55331439970e01af67f80ac117c473bc04cfElliott Hughes#include "instruction_set.h"
253a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers
263a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogersnamespace art {
273a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers
283a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogersclass Disassembler {
293a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers public:
303a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers  static Disassembler* Create(InstructionSet instruction_set);
313a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers  virtual ~Disassembler() {}
323a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers
333a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers  virtual void Dump(std::ostream& os, const uint8_t* begin, const uint8_t* end) = 0;
343a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers};
353a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers
363a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers}  // namespace art
373a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers
383a5c1ce3f11805a3382046f699c8fb1410a602b3Ian Rogers#endif  // ART_SRC_DISASSEMBLER_H_
39