Changeset 9940


Ignore:
Timestamp:
Jul 10, 2008, 8:51:48 AM (11 years ago)
Author:
gb
Message:

Implement low-level thread-interrupt/suspend/resume stuff via traps
(for serialization.)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/working-0711/ccl/level-0/X86/x86-misc.lisp

    r9928 r9940  
    664664  @done
    665665  (single-value-return))
     666(defx86lapfunction %%tcr-interrupt ((target arg_z))
     667  (check-nargs 1)
     668  (ud2a)
     669  (:byte 4)
     670  (box-fixnum imm0 arg_z)
     671  (single-value-return))
     672
     673(defx86lapfunction %suspend-tcr ((target arg_z))
     674  (check-nargs 1)
     675  (ud2a)
     676  (:byte 5)
     677  (testl (%l imm0) (%l imm0))
     678  (movl ($ target::nil-value) (%l arg_z))
     679  (cmovel (@ target::t-offset (% arg_z)) (%l arg_z))
     680  (single-value-return))
     681
     682(defx86lapfunction %suspend-other-threads ()
     683  (check-nargs 0)
     684  (ud2a)
     685  (:byte 6)
     686  (movl ($ target::nil-value) (%l arg_z))
     687  (single-value-return))
     688
     689(defx86lapfunction %resume-tcr ((target arg_z))
     690  (check-nargs 1)
     691  (ud2a)
     692  (:byte 7)
     693  (testl (%l imm0) (%l imm0))
     694  (movl ($ target::nil-value) (%l arg_z))
     695  (cmovel (@ target::t-offset (% arg_z)) (%l arg_z))
     696  (single-value-return))
     697
     698(defx86lapfunction %resume-other-threads ()
     699  (check-nargs 0)
     700  (ud2a)
     701  (:byte 8)
     702  (movl ($ target::nil-value) (%l arg_z))
     703  (single-value-return))
     704
    666705
    667706(defx86lapfunction %get-spin-lock ((p arg_z))
Note: See TracChangeset for help on using the changeset viewer.