From b7285a5c7bfb8ad908e50779f9ca2324a580be94 Mon Sep 17 00:00:00 2001 From: Alastair Bridgewater Date: Sun, 27 Apr 2014 12:53:14 -0400 Subject: [PATCH] compiler/arm/insts: Implement disassembly of SWI instructions. * These are the basic syscall trap instructions, which we use as part of our pseudo-atomic exit sequence. --- src/compiler/arm/insts.lisp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/compiler/arm/insts.lisp b/src/compiler/arm/insts.lisp index 7ac86c352..3d64146db 100644 --- a/src/compiler/arm/insts.lisp +++ b/src/compiler/arm/insts.lisp @@ -233,6 +233,12 @@ (rn :field (byte 4 16) :type 'reg) (rd :field (byte 4 12) :type 'reg) (rm :field (byte 4 0) :type 'reg)) + +(sb!disassem:define-instruction-format + (swi 32 :default-printer '(:name cond :tab "#" swi-number)) + (cond :field (byte 4 28) :type 'condition-code) + (opcode-4 :field (byte 4 24)) + (swi-number :field (byte 24 0))) ;;;; primitive emitters @@ -636,6 +642,7 @@ (byte 4 28) (byte 4 24) (byte 24 0)) (define-instruction swi (segment &rest args) + (:printer swi ((opcode-4 #b1111))) (:emitter (with-condition-defaulted (args (condition code)) (emit-swi-instruction segment -- 2.11.4.GIT