// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #ifndef COURGETTE_ASSEMBLY_PROGRAM_H_ #define COURGETTE_ASSEMBLY_PROGRAM_H_ #include #include #include #include #include #include "base/macros.h" #include "base/memory/free_deleter.h" #include "base/memory/scoped_ptr.h" #include "courgette/courgette.h" #include "courgette/image_utils.h" #include "courgette/label_manager.h" #include "courgette/memory_allocator.h" namespace courgette { class EncodedProgram; // Opcodes of simple assembly language enum OP { ORIGIN, // ORIGIN - set current address for assembly. MAKEPERELOCS, // Generates a base relocation table. MAKEELFRELOCS, // Generates a base relocation table. DEFBYTE, // DEFBYTE - emit a byte literal. REL32, // REL32