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)))
|