Added support for div, mod, and mul to amd64 code generator.
[voodoo-lang.git] / lib / ruby / voodoo / generators / amd64_elf_generator.rb
blobc20a01187f2c0490e521088522b681eb0e9b337e
1 require 'delegate'
2 require 'tempfile'
3 require 'voodoo/generators/amd64_nasm_generator'
4 require 'voodoo/generators/nasm_elf_generator'
6 module Voodoo
7   # Generator that produces ELF objects for amd64
8   class AMD64ELFGenerator < DelegateClass(AMD64NasmGenerator)
9     def initialize params
10       @nasmgenerator = AMD64NasmGenerator.new params
11       super(@nasmgenerator)
12       @elfgenerator = NasmELFGenerator.new @nasmgenerator, '-f elf64'
13     end
15     def write io
16       @elfgenerator.write io
17     end
18   end
20   # Register class
21   Voodoo::CodeGenerator.register_generator AMD64ELFGenerator,
22                                            :architecture => :amd64,
23                                            :format => :elf
24 end