Skip to content

Commit ea467e3

Browse files
snuglasstassats
authored andcommitted
Remove MAKE-EA and REG-IN-SIZE
Co-authored-by: Stas Boukarev <stassats@gmail.com>
1 parent dac5ac3 commit ea467e3

File tree

1 file changed

+9
-15
lines changed

1 file changed

+9
-15
lines changed

sbcl-opt/x86-64-vm.lisp

+9-15
Original file line numberDiff line numberDiff line change
@@ -36,8 +36,7 @@
3636
;; If INDEX + OFFSET <_u BOUND, though, INDEX must be less than
3737
;; BOUND. We *do* need to check for 0 <= INDEX, but that has
3838
;; already been assured by higher-level machinery.
39-
(inst lea temp (make-ea :qword
40-
:index index :disp (fixnumize offset)))
39+
(inst lea temp (ea (fixnumize offset) nil index))
4140
(inst cmp temp bound)
4241
(inst jmp :a error)
4342
(move result index))))
@@ -75,8 +74,8 @@
7574
`(inst ,insn ,dest ,source)))
7675
(swap-tn-inst-form (tn-name)
7776
(if (= bitsize 16)
78-
`(inst rol ,tn-name 8)
79-
`(inst bswap ,tn-name))))
77+
`(inst rol ,operand-size ,tn-name 8)
78+
`(inst bswap ,operand-size ,tn-name))))
8079
`(define-vop (,name)
8180
(:translate ,internal-name)
8281
(:policy :fast-safe)
@@ -97,40 +96,35 @@
9796
(:generator 3
9897
(let* ((base-disp (- (* vector-data-offset n-word-bytes)
9998
other-pointer-lowtag))
100-
(result-in-size (reg-in-size result ,operand-size))
10199
,@(when setterp
102100
`((value (reg-in-size value* ,operand-size))))
103101
,@(when (and setterp big-endian-p)
104102
`((temp (reg-in-size temp ,operand-size))))
105103
(memref (sc-case index
106104
(immediate
107-
(make-ea ,operand-size :base vector
108-
:disp (+ (tn-value index) base-disp)))
105+
(ea (+ (tn-value index) base-disp) vector))
109106
(t
110-
(make-ea ,operand-size
111-
:base vector :index index
112-
:disp base-disp)))))
113-
(declare (ignorable result-in-size))
107+
(ea base-disp vector index)))))
114108
,@(when (and setterp big-endian-p)
115109
`((inst mov temp value)
116110
,(swap-tn-inst-form 'temp)))
117111
,(if setterp
118-
`(inst mov memref ,(if big-endian-p
112+
`(inst mov ,operand-size memref ,(if big-endian-p
119113
'temp
120114
'value))
121115
(movx ref-mov-insn
122116
(if (and big-endian-p (= bitsize 32))
123-
'result-in-size
117+
'result
124118
'result)
125119
'memref operand-size))
126120
,@(if setterp
127121
'((move result value*))
128122
(when big-endian-p
129123
`(,(swap-tn-inst-form (if (/= bitsize 64)
130-
'result-in-size
124+
'result
131125
'result))
132126
,(when (and (/= bitsize 64) signedp)
133-
(movx 'movsx 'result 'result-in-size
127+
(movx 'movsx 'result 'result
134128
operand-size))))))))))))
135129
(loop for i from 0 upto #b10111
136130
for bitsize = (ecase (ldb (byte 2 3) i)

0 commit comments

Comments
 (0)