summaryrefslogtreecommitdiff
path: root/module/system/vm/disassembler.scm
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2017-10-24 21:11:20 +0200
committerAndy Wingo <wingo@pobox.com>2017-10-24 21:11:20 +0200
commit808000034e8be08e7fe34dbe5e35e56cf9ed4727 (patch)
tree6eb87a1f550acd06fa625eb10b21667b57a7a2b5 /module/system/vm/disassembler.scm
parent214e887dbdece2e7608b02dd1ce5b31e710266cc (diff)
downloadguile-808000034e8be08e7fe34dbe5e35e56cf9ed4727.tar.gz
Add support for C16_C16 instruction words
* module/language/bytecode.scm (compute-instruction-arity): * module/system/vm/assembler.scm (pack-u16-u16, expand): * module/system/vm/disassembler.scm (disassembler): * libguile/instructions.c (FOR_EACH_INSTRUCTION_WORD_TYPE): Add C16_C16.
Diffstat (limited to 'module/system/vm/disassembler.scm')
-rw-r--r--module/system/vm/disassembler.scm5
1 files changed, 4 insertions, 1 deletions
diff --git a/module/system/vm/disassembler.scm b/module/system/vm/disassembler.scm
index 4db4a033d..0ab8c6bf9 100644
--- a/module/system/vm/disassembler.scm
+++ b/module/system/vm/disassembler.scm
@@ -1,6 +1,6 @@
;;; Guile bytecode disassembler
-;;; Copyright (C) 2001, 2009, 2010, 2012, 2013, 2014, 2015 Free Software Foundation, Inc.
+;;; Copyright (C) 2001, 2009, 2010, 2012, 2013, 2014, 2015, 2017 Free Software Foundation, Inc.
;;;
;;; This library is free software; you can redistribute it and/or
;;; modify it under the terms of the GNU Lesser General Public
@@ -115,6 +115,9 @@
((C8_C24)
#'((logand word #xff)
(ash word -8)))
+ ((C16_C16)
+ #'((logand word #xffff)
+ (ash word -16)))
((B1_C7_L24)
#'((not (zero? (logand word #x1)))
(logand (ash word -1) #x7f)