Skip to content
Snippets Groups Projects
Commit f0a59dd4 authored by rtoy's avatar rtoy
Browse files

The value for an ADDIS instruction can be negative. Make it positive

before trying to use it to look up and code constant.
parent fdf1e3ae
No related branches found
No related tags found
No related merge requests found
......@@ -7,7 +7,7 @@
;;; Scott Fahlman or slisp-group@cs.cmu.edu.
;;;
(ext:file-comment
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ppc/insts.lisp,v 1.19 2006/06/30 18:41:24 rtoy Exp $")
"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/ppc/insts.lisp,v 1.20 2006/11/30 00:44:34 rtoy Exp $")
;;;
;;; **********************************************************************
;;;
......@@ -192,7 +192,7 @@ about function addresses and register values.")
;; 32-bit address or value. Make a note about this usage as
;; a Lisp assembly routine or a foreign routine. If note,
;; just note the final value.
(let ((addr (+ d (ash (cdr addis) 16))))
(let ((addr (+ d (ldb (byte 32 0) (ash (cdr addis) 16)))))
(or (disassem::note-code-constant-absolute addr dstate)
(disassem::maybe-note-assembler-routine addr t dstate)
(disassem::note (format nil "~A = #x~8,'0X"
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment