Remove an unused VOP %make-symbol on x86-64.
authorStas Boukarev <stassats@gmail.com>
Mon, 15 Apr 2013 23:47:24 +0000 (03:47 +0400)
committerStas Boukarev <stassats@gmail.com>
Mon, 15 Apr 2013 23:47:24 +0000 (03:47 +0400)
%make-symbol is handled by define-primitive-object now.
The old VOP was copied into alloc.lisp during the x86_64 port, got
removed from x86 before the merge. It wasn't even ported to x86-64,
and was never invoked during the 9 years it has been sitting there.

Also remove fast_random_state variable from the C runtime, it was used
by the VOP.

src/compiler/x86-64/alloc.lisp
src/runtime/x86-64-arch.c
src/runtime/x86-arch.c

index c6b6b62..02b3cc4 100644 (file)
      (allocation result bytes node)
      (inst lea result (make-ea :byte :base result :disp lowtag))
      (storew header result 0 lowtag))))
-
-(define-vop (%make-symbol)
-  (:policy :fast-safe)
-  (:translate %make-symbol)
-  (:args (name :scs (descriptor-reg) :to :eval))
-  (:temporary (:sc unsigned-reg :from :eval) temp)
-  (:results (result :scs (descriptor-reg) :from :argument))
-  (:node-var node)
-  (:generator 37
-    (with-fixed-allocation (result symbol-header-widetag symbol-size node)
-      (storew name result symbol-name-slot other-pointer-lowtag)
-      (storew unbound-marker-widetag
-              result
-              symbol-value-slot
-              other-pointer-lowtag)
-      ;; Set up a random hash value for the symbol. Perhaps the object
-      ;; address could be used for even faster and smaller code!
-      ;; FIXME: We don't mind the symbol hash not being repeatable, so
-      ;; we might as well add in the object address here, too. (Adding entropy
-      ;; is good, even if ANSI doesn't understand that.)
-      (inst imul temp
-            (make-fixup "fast_random_state" :foreign)
-            1103515245)
-      (inst add temp 12345)
-      (inst mov (make-fixup "fast_random_state" :foreign)
-            temp)
-      ;; We want a positive fixnum for the hash value, so discard the LS bits.
-      ;;
-      ;; FIXME: OK, who wants to tell me (CSR) why these two
-      ;; instructions aren't replaced by (INST AND TEMP #x8FFFFFFC)?
-      ;; Are the following two instructions actually faster?  Does the
-      ;; difference in behaviour really matter?
-      (inst shr temp 1)
-      (inst and temp #xfffffffc)
-      (storew temp result symbol-hash-slot other-pointer-lowtag)
-      (storew nil-value result symbol-plist-slot other-pointer-lowtag)
-      (storew nil-value result symbol-package-slot other-pointer-lowtag))))
index 2e6ea23..573dc7e 100644 (file)
@@ -39,8 +39,6 @@
 #define BREAKPOINT_WIDTH 2
 #endif
 
-unsigned long fast_random_state = 1;
-
 void arch_init(void)
 {}
 
index dfbf908..d00f26b 100644 (file)
@@ -37,8 +37,6 @@
 #define BREAKPOINT_WIDTH 2
 #endif
 
-unsigned long fast_random_state = 1;
-
 void arch_init(void)
 {}