Raymond Toy pushed to branch rtoy-use-ssse3-insts at cmucl / cmucl
Commits:
-
285d1d96
by Raymond Toy at 2020-04-19T10:33:27-07:00
5 changed files:
- .gitlab-ci.yml
- src/bootfiles/21d/boot-2020-04.lisp
- src/code/x86-vm.lisp
- src/compiler/x86/arith.lisp
- src/compiler/x86/insts.lisp
Changes:
1 | 1 |
variables:
|
2 | 2 |
download_url: "https://common-lisp.net/project/cmucl/downloads/snapshots/2020/04"
|
3 | 3 |
version: "2020-04-x86"
|
4 |
- bootstrap: ""
|
|
4 |
+ bootstrap: "-B boot-2020-04"
|
|
5 | 5 |
|
6 | 6 |
linux-runner:
|
7 | 7 |
tags:
|
... | ... | @@ -2,4 +2,6 @@ |
2 | 2 |
#+x86
|
3 | 3 |
(pushnew :sse3 *features*)
|
4 | 4 |
#+x86
|
5 |
-(pushnew :ssse3 *features*)
|
|
\ No newline at end of file | ||
5 |
+(pushnew :ssse3 *features*)
|
|
6 |
+#+x86
|
|
7 |
+(pushnew :sse4 *features*)
|
... | ... | @@ -42,12 +42,21 @@ |
42 | 42 |
(setf *features* (delete :x87 *features*))
|
43 | 43 |
(sys:register-lisp-feature :sse2))
|
44 | 44 |
|
45 |
+#+sse3
|
|
46 |
+(progn
|
|
47 |
+ (setf *features* (delete :x87 *features*))
|
|
48 |
+ (sys:register-lisp-feature :sse3))
|
|
49 |
+ |
|
45 | 50 |
#+ssse3
|
46 | 51 |
(progn
|
47 | 52 |
(setf *features* (delete :x87 *features*))
|
48 |
- (sys:register-lisp-feature :sse3)
|
|
49 | 53 |
(sys:register-lisp-feature :ssse3))
|
50 | 54 |
|
55 |
+#+sse4
|
|
56 |
+(progn
|
|
57 |
+ (setf *features* (delete :x87 *features*))
|
|
58 |
+ (sys:register-lisp-feature :sse4))
|
|
59 |
+ |
|
51 | 60 |
#+(or darwin linux)
|
52 | 61 |
(sys:register-lisp-runtime-feature :relocatable-stacks)
|
53 | 62 |
|
... | ... | @@ -964,7 +964,7 @@ |
964 | 964 |
(:arg-types unsigned-num)
|
965 | 965 |
(:results (result :scs (unsigned-reg)))
|
966 | 966 |
(:result-types positive-fixnum)
|
967 |
- (:guard (backend-featurep :sse3))
|
|
967 |
+ (:guard (backend-featurep :sse4))
|
|
968 | 968 |
(:generator 2
|
969 | 969 |
(inst popcnt result arg)))
|
970 | 970 |
|
... | ... | @@ -3201,6 +3201,7 @@ |
3201 | 3201 |
(define-regular-sse-inst paddq #x66 #xd4)
|
3202 | 3202 |
)
|
3203 | 3203 |
|
3204 |
+;; SSE4 instruction
|
|
3204 | 3205 |
(define-instruction popcnt (segment dst src)
|
3205 | 3206 |
(:printer ext-reg-reg/mem
|
3206 | 3207 |
((prefix #xf3) (op #xb8)))
|