Changeset 6346 for branches/x8664-call


Ignore:
Timestamp:
Apr 23, 2007, 11:15:18 AM (13 years ago)
Author:
gb
Message:

New mkcatch, mkunwind.

Location:
branches/x8664-call/ccl/lisp-kernel
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • branches/x8664-call/ccl/lisp-kernel/x86-macros.s

    r5158 r6346  
    185185        movq %temp2,%rcontext:tcr.catch_top
    186186])     
    187        
     187
     188define([nMake_Catch],[
     189        Allocate_Catch_Frame(%temp2)
     190        movq %rcontext:tcr.catch_top,%imm0
     191        movq %rcontext:tcr.db_link,%imm1
     192        movq %arg_z,catch_frame.catch_tag(%temp2)
     193        movq %imm0,catch_frame.link(%temp2)
     194        lea node_size(%rsp),%imm0
     195        movq [$]$1,catch_frame.mvflag(%temp2)
     196        movq %imm0,catch_frame.rsp(%temp2)
     197        movq %rcontext:tcr.xframe,%imm0
     198        movq %rbp,catch_frame.rbp(%temp2)
     199        movq %rcontext:tcr.foreign_sp,%stack_temp
     200        movq %imm1,catch_frame.db_link(%temp2)
     201        movq %save3,catch_frame._save3(%temp2)
     202        movq %save2,catch_frame._save2(%temp2)
     203        movq %save1,catch_frame._save1(%temp2)
     204        movq %save0,catch_frame._save0(%temp2)
     205        movq %imm0,catch_frame.xframe(%temp2)
     206        movq %stack_temp,catch_frame.foreign_sp(%temp2)
     207        movq %xfn,catch_frame.pc(%temp2)
     208        movq %temp2,%rcontext:tcr.catch_top
     209])     
     210               
    188211       
    189212/* Consing can get interrupted (either by PROCESS-INTERRUPT or by GC  */
  • branches/x8664-call/ccl/lisp-kernel/x86-spentry64.s

    r6341 r6346  
    12331233_endsubp(mkcatch1v)
    12341234
     1235_spentry(nmkcatch1v)
     1236        __(nMake_Catch(0))
     1237        __(ret)
     1238_endsubp(nmkcatch1v)
     1239       
    12351240_spentry(mkunwind)
    12361241        __(movq $undefined,%arg_z)
     
    12391244_endsubp(mkunwind)
    12401245
     1246_spentry(nmkunwind)
     1247        __(movq $undefined,%arg_z)
     1248        __(nMake_Catch(fixnumone))
     1249        __(ret)
     1250_endsubp(nmkunwind)
     1251       
     1252
    12411253_spentry(mkcatchmv)
    12421254        __(Make_Catch(fixnumone))
     
    12441256_endsubp(mkcatchmv)
    12451257
     1258_spentry(nmkcatchmv)
     1259        __(nMake_Catch(fixnumone))
     1260        __(ret)
     1261_endsubp(nmkcatchmv)
     1262       
    12461263_spentry(throw)
    12471264        __(movq %rcontext:tcr.catch_top,%imm1)
  • branches/x8664-call/ccl/lisp-kernel/x86-spjump64.s

    r6341 r6346  
    212212        _spjump(nspecrefcheck)
    213213        _spjump(ncall_closure)
     214        _spjump(nmkcatch1v)
     215        _spjump(nmkunwind)
     216        _spjump(nmkcatchmv)
    214217         .globl C(spjump_end)
    215218C(spjump_end):
Note: See TracChangeset for help on using the changeset viewer.