mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 11:50:28 +02:00
* libguile/objcodes.c: Change to expect objcode on disk to be embedded in ELF instead of having the funky cookie. (to_native_order): Use already existing SCM_BYTE_ORDER style byte order instead of chars. (bytecode_to_objcode): No need for word_size arg. (scm_bytecode_to_objcode, scm_objcode_to_bytecode): Take optional endianness arg instead of sometimes using target-endianness. (scm_load_objcode, scm_write_objcode, scm_bytecode_to_native_objcode): Remove. * libguile/objcodes.h: Adapt. * libguile/vm.c (scm_load_compiled_with_vm): Use scm_load_thunk_from_file. (make_boot_program): Adapt to use scm_bytecode_to_objcode with endianness arg. * module/Makefile.am (OBJCODE_LANG_SOURCES): Add (language objcode elf). * module/language/objcode/elf.scm: New module, embeds objcode in ELF. * module/language/bytecode/spec.scm (compile-objcode): (decompile-objcode): Use (target-endianness). * module/language/objcode/spec.scm: use (language objcode elf) for write-objcode. * module/scripts/disassemble.scm (disassemble): * module/system/repl/command.scm (disassemble-file): Use load-thunk-from-file. * module/system/vm/objcode.scm: Remove load-objcode and write-objcode. * test-suite/tests/asm-to-bytecode.test (test-target): Adapt to the new ELF world.
42 lines
1.4 KiB
Scheme
42 lines
1.4 KiB
Scheme
;;; Disassemble --- Disassemble .go files into something human-readable
|
|
|
|
;; Copyright 2005, 2008, 2009, 2011, 2012 Free Software Foundation, Inc.
|
|
;;
|
|
;; This program is free software; you can redistribute it and/or
|
|
;; modify it under the terms of the GNU Lesser General Public License
|
|
;; as published by the Free Software Foundation; either version 3, or
|
|
;; (at your option) any later version.
|
|
;;
|
|
;; This program is distributed in the hope that it will be useful,
|
|
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
;; Lesser General Public License for more details.
|
|
;;
|
|
;; You should have received a copy of the GNU Lesser General Public
|
|
;; License along with this software; see the file COPYING.LESSER. If
|
|
;; not, write to the Free Software Foundation, Inc., 51 Franklin
|
|
;; Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
|
|
;;; Author: Ludovic Courtès <ludo@gnu.org>
|
|
;;; Author: Andy Wingo <wingo@pobox.com>
|
|
|
|
;;; Commentary:
|
|
|
|
;; Usage: disassemble [ARGS]
|
|
|
|
;;; Code:
|
|
|
|
(define-module (scripts disassemble)
|
|
#:use-module (system vm objcode)
|
|
#:use-module ((language assembly disassemble)
|
|
#:renamer (symbol-prefix-proc 'asm:))
|
|
#:export (disassemble))
|
|
|
|
(define %summary "Disassemble a compiled .go file.")
|
|
|
|
(define (disassemble . files)
|
|
(for-each (lambda (file)
|
|
(asm:disassemble (load-thunk-from-file file)))
|
|
files))
|
|
|
|
(define main disassemble)
|