projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
git: New file doc/internals/.gitignore.
[sbcl.git]
/
src
/
compiler
/
hppa
/
macros.lisp
diff --git
a/src/compiler/hppa/macros.lisp
b/src/compiler/hppa/macros.lisp
index
4489af8
..
0a5e991
100644
(file)
--- a/
src/compiler/hppa/macros.lisp
+++ b/
src/compiler/hppa/macros.lisp
@@
-41,7
+41,13
@@
(defmacro load-symbol (reg symbol)
(once-only ((reg reg) (symbol symbol))
(defmacro load-symbol (reg symbol)
(once-only ((reg reg) (symbol symbol))
- `(inst addi (static-symbol-offset ,symbol) null-tn ,reg)))
+ `(let ((offset (static-symbol-offset ,symbol)))
+ (cond
+ ((typep offset '(signed-byte 11))
+ (inst addi offset null-tn ,reg))
+ (t
+ (inst ldil offset ,reg)
+ (inst ldo offset null-tn ,reg :unsigned t))))))
(defmacro load-symbol-value (reg symbol)
`(inst ldw
(defmacro load-symbol-value (reg symbol)
`(inst ldw