about summary refs log tree commit diff stats
Commit message (Expand)AuthorAgeFilesLines
* added some commentsAnselm R. Garbe2006-09-112-75/+72
* Added tag 1.5 for changeset 728c9089b079721b43c3347124639a29baa22a97Anselm R. Garbe2006-09-081-0/+1
* applied sanders patch of not manipulating sel 1.5Anselm R. Garbe2006-09-082-6/+8
* really small changes to dwm.1Anselm R. Garbe2006-09-081-4/+3
* hotfixAnselm R. Garbe2006-09-071-1/+1
* simplified unmanageAnselm R. Garbe2006-09-071-8/+2
* using a global stack for focus recovery on arrange() - seems to work greatAnselm R. Garbe2006-09-074-8/+26
* made markups in dwm.1 more consistentAnselm R. Garbe2006-09-071-95/+38
* small addition to dwm.1Anselm R. Garbe2006-09-071-4/+4
* this patch keeps track of global z-layer order of clients which are floating ...Anselm R. Garbe2006-09-061-12/+7
* no this is betterAnselm R. Garbe2006-09-062-11/+11
* does this preserve z order for anthony?Anselm R. Garbe2006-09-062-8/+10
* maybe this might workAnselm R. Garbe2006-09-063-4/+9
* Added tag 1.4 for changeset 3cff9403766bf83a9fc2a0aef230115d68de2a8eAnselm R. Garbe2006-09-061-0/+1
* prepared dwm-1.4 update 1.4Anselm R. Garbe2006-09-062-2/+1
* drawstatus even if no client existsAnselm R. Garbe2006-09-061-1/+3
* sanders solution is convincing and elegantAnselm R. Garbe2006-09-062-49/+9
* seems to preserve floating client z-layer order (even with reorder() calls)Anselm R. Garbe2006-09-062-1/+9
* Added tag 1.4 for changeset a6b8994af16491220db0199623bd57d061e06143Anselm R. Garbe2006-09-061-0/+1
* small fixAnselm R. Garbe2006-09-062-2/+3
* made args mode symbols the default ones (the default ones look too ugly)Anselm R. Garbe2006-09-061-2/+2
* moved transient_for tag inheritance to settagsAnselm R. Garbe2006-09-063-10/+10
* no, reodering floating clients definately breaks the manage() policy which at...Anselm R. Garbe2006-09-063-16/+18
* no, ordering floating clients at the end seems betterAnselm R. Garbe2006-09-053-19/+17
* fixAnselm R. Garbe2006-09-051-1/+1
* this makes sure the issue mentioned by sanderAnselm R. Garbe2006-09-051-2/+8
* fixing zoomAnselm R. Garbe2006-09-051-3/+4
* fixing two off-by-onesAnselm R. Garbe2006-09-051-2/+2
* ach ich will auch Alt-sAnselm R. Garbe2006-09-051-0/+1
* applied checking existance of >2 tiles patch (proposed by sander) to zoom and...Anselm R. Garbe2006-09-051-5/+14
* renamed resizetile into resizecolAnselm R. Garbe2006-09-054-5/+5
* well ok, added Mod-s to default bindings (however, I don't need it)Anselm R. Garbe2006-09-052-0/+7
* s/growcol/resizetile/gAnselm R. Garbe2006-09-054-15/+15
* right, multihead issue is not involved with growcolAnselm R. Garbe2006-09-051-1/+1
* hotfixAnselm R. Garbe2006-09-051-1/+3
* applied a fix related to Sanders remark to growcolAnselm R. Garbe2006-09-051-1/+1
* sanders toggletag patch is much more elegantAnselm R. Garbe2006-09-051-1/+1
* I really need column growing, now pushing upstreamAnselm R. Garbe2006-09-055-0/+27
* don't access sel in restack without checking for NULL (multihead crashing bug)Anselm R. Garbe2006-09-051-7/+9
* fixing c->weight handlingAnselm R. Garbe2006-09-051-2/+3
* removed some useless tagsAnselm R. Garbe2006-09-041-2/+0
* after 1.3Anselm R. Garbe2006-09-041-1/+1
* Added tag 1.3 for changeset f5f5cbf016a94b48a8fe9c47f0736e96d166d5d4Anselm R. Garbe2006-09-041-0/+1
* retagged 1.3Anselm R. Garbe2006-09-041-1/+1
* simplified manageAnselm R. Garbe2006-09-041-5/+2
* removed html crapAnselm R. Garbe2006-09-043-128/+1
* Added tag 1.3 for changeset dd44dc937e8b0a46abf1a15a333dba5304e4fe89Anselm R. Garbe2006-09-041-0/+1
* hotfixing with sanders hintAnselm R. Garbe2006-09-041-1/+3
* Added tag 1.3 for changeset 6413ea66b1c2496cfc2173fe58df67cb965eb1daAnselm R. Garbe2006-09-041-0/+1
* fixing the issue that new clients appear loweredAnselm R. Garbe2006-09-041-0/+2
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134
135
136
137
138
139
140





                                                                                                                                                 
                                                                    
                








                                                                                                                                                                            
               
                                                                                                                                                                             
                                           
                                                                                                                                                                         
                                                      

                                                                                                                                                                        
                         



                                                                                                                                                                            
                                                
                                       

















                                                                                                                                                                               
                




                                                                                                                                                                       
                









                                                                                                                                                                       
                                                         
                   
                                                      



                                                                                                                                                                  
                                             
                                               
                         

























































                                                                                                                                                                       
                




                                                                                                                                                                       
== code
#   instruction                     effective address                                                   register    displacement    immediate
# . op          subop               mod             rm32          base        index         scale       r32
# . 1-3 bytes   3 bits              2 bits          3 bits        3 bits      3 bits        2 bits      2 bits      0/1/2/4 bytes   0/1/2/4 bytes

# print 'arr' in hex with a space after every byte
emit-hex-array:  # out: (addr buffered-file), arr: (addr array byte)
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # . save registers
    50/push-eax
    51/push-ecx
    52/push-edx
    57/push-edi
    # edi = out
    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           7/r32/edi   8/disp8         .                 # copy *(ebp+8) to edi
    # edx = arr
    8b/copy                         1/mod/*+disp8   5/rm32/ebp    .           .             .           2/r32/edx   0xc/disp8       .                 # copy *(ebp+12) to edx
    # var curr/ecx: (addr byte) = arr->data
    8d/copy-address                 1/mod/*+disp8   2/rm32/edx    .           .             .           1/r32/ecx   4/disp8         .                 # copy edx+4 to ecx
    # var max/edx: (addr byte) = &arr->data[arr->size]
    8b/copy                         0/mod/indirect  2/rm32/edx    .           .             .           2/r32/edx   .               .                 # copy *edx to edx
    01/add                          3/mod/direct    2/rm32/edx    .           .             .           1/r32/ecx   .               .                 # add ecx to edx
    # var c/eax: byte = 0
    31/xor                          3/mod/direct    0/rm32/eax    .           .             .           0/r32/eax   .               .                 # clear eax
$emit-hex-array:loop:
    # if (curr >= width) break
    39/compare                      3/mod/direct    1/rm32/ecx    .           .             .           2/r32/edx   .               .                 # compare ecx with edx
    73/jump-if-addr>=  $emit-hex-array:end/disp8
    # emit-hex(out, c = *curr, width=1)
    # . . push args
    68/push  1/imm32/width
    8a/copy-byte                    0/mod/indirect  1/rm32/ecx    .           .             .           0/r32/AL    .               .                 # copy byte at *ecx to AL
    50/push-eax
    57/push-edi
    # . . call
    e8/call  emit-hex/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # ++curr
    41/increment-ecx
    eb/jump  $emit-hex-array:loop/disp8
$emit-hex-array:end:
    # . restore registers
    5f/pop-to-edi
    5a/pop-to-edx
    59/pop-to-ecx
    58/pop-to-eax
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

test-emit-hex-array:
    # . prologue
    55/push-ebp
    89/copy                         3/mod/direct    5/rm32/ebp    .           .             .           4/r32/esp   .               .                 # copy esp to ebp
    # setup
    # . clear-stream(_test-output-stream)
    # . . push args
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # . clear-stream($_test-output-buffered-file->buffer)
    # . . push args
    68/push  $_test-output-buffered-file->buffer/imm32
    # . . call
    e8/call  clear-stream/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
    # var arr/ecx (array byte) = [01, 02, 03]
    68/push  0x00030201/imm32  # bytes 01 02 03
    68/push  3/imm32/size
    89/copy                         3/mod/direct    1/rm32/ecx    .           .             .           4/r32/esp   .               .                 # copy esp to ecx
    # emit-hex-array(_test-output-buffered-file, arr)
    # . . push args
    51/push-ecx
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  emit-hex-array/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
    # . flush(_test-output-buffered-file)
    # . . push args
    68/push  _test-output-buffered-file/imm32
    # . . call
    e8/call  flush/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # dump output {{{
#?     # . write(2/stderr, "result: ^")
#?     # . . push args
#?     68/push  "result: ^"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write-stream(2/stderr, _test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . write(2/stderr, "$\n")
#?     # . . push args
#?     68/push  "$\n"/imm32
#?     68/push  2/imm32/stderr
#?     # . . call
#?     e8/call  write/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               8/imm32           # add to esp
#?     # . rewind-stream(_test-output-stream)
#?     # . . push args
#?     68/push  _test-output-stream/imm32
#?     # . . call
#?     e8/call  rewind-stream/disp32
#?     # . . discard args
#?     81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               4/imm32           # add to esp
#?     # }}}
    # check-next-stream-line-equal(_test-output-stream, "01 02 03 ", msg)
    # . . push args
    68/push  "F - test-emit-hex-array"/imm32
    68/push  "01 02 03 "/imm32
    68/push  _test-output-stream/imm32
    # . . call
    e8/call  check-next-stream-line-equal/disp32
    # . . discard args
    81          0/subop/add         3/mod/direct    4/rm32/esp    .           .             .           .           .               0xc/imm32         # add to esp
    # . epilogue
    89/copy                         3/mod/direct    4/rm32/esp    .           .             .           5/r32/ebp   .               .                 # copy ebp to esp
    5d/pop-to-ebp
    c3/return

# . . vim:nowrap:textwidth=0