projects
/
sbcl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
0.9.12.9:
[sbcl.git]
/
src
/
compiler
/
mips
/
macros.lisp
diff --git
a/src/compiler/mips/macros.lisp
b/src/compiler/mips/macros.lisp
index
a015232
..
9e09443
100644
(file)
--- a/
src/compiler/mips/macros.lisp
+++ b/
src/compiler/mips/macros.lisp
@@
-296,9
+296,8
@@
(:results (value :scs ,scs))
(:result-types ,el-type)
(:generator 5
(:results (value :scs ,scs))
(:result-types ,el-type)
(:generator 5
- (inst add lip object index)
- (inst lw value lip (- (* ,offset n-word-bytes) ,lowtag))
- (inst nop)))
+ (inst addu lip object index)
+ (loadw value lip ,offset ,lowtag)))
(define-vop (,(symbolicate name "-C"))
,@(when translate
`((:translate ,translate)))
(define-vop (,(symbolicate name "-C"))
,@(when translate
`((:translate ,translate)))
@@
-311,8
+310,7
@@
(:results (value :scs ,scs))
(:result-types ,el-type)
(:generator 4
(:results (value :scs ,scs))
(:result-types ,el-type)
(:generator 4
- (inst lw value object (- (* (+ ,offset index) n-word-bytes) ,lowtag))
- (inst nop)))))
+ (loadw value object (+ ,offset index) ,lowtag)))))
(defmacro define-full-setter (name type offset lowtag scs el-type
&optional translate)
(defmacro define-full-setter (name type offset lowtag scs el-type
&optional translate)
@@
-329,8
+327,8
@@
(:results (result :scs ,scs))
(:result-types ,el-type)
(:generator 2
(:results (result :scs ,scs))
(:result-types ,el-type)
(:generator 2
- (inst add lip object index)
- (inst sw value lip (- (* ,offset n-word-bytes) ,lowtag))
+ (inst addu lip object index)
+ (storew value lip ,offset ,lowtag)
(move result value)))
(define-vop (,(symbolicate name "-C"))
,@(when translate
(move result value)))
(define-vop (,(symbolicate name "-C"))
,@(when translate
@@
-346,7
+344,7
@@
(:results (result :scs ,scs))
(:result-types ,el-type)
(:generator 1
(:results (result :scs ,scs))
(:result-types ,el-type)
(:generator 1
- (inst sw value object (- (* (+ ,offset index) n-word-bytes) ,lowtag))
+ (storew value object (+ ,offset index) ,lowtag)
(move result value)))))
(move result value)))))