This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

optimization/3654: Unable to find a register to spill in class `AREG' when optimizing



>Number:         3654
>Category:       optimization
>Synopsis:       Unable to find a register to spill in class `AREG' when optimizing
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Wed Jul 11 16:16:00 PDT 2001
>Closed-Date:
>Last-Modified:
>Originator:     Fabio Alemagna
>Release:        gcc version 3.0
>Organization:
>Environment:
i686-pc-linux-gnu 
Linux kernel version 2.4.5
Madrake 7.2
>Description:
When compiling the file attached with optimization above 1
the compiler complains about not being able to find a register to spill.

This is the compiler's output:

e_pow.c: In function `__ieee754_pow':
e_pow.c:304: Unable to find a register to spill in class `AREG'.
e_pow.c:304: This is the insn:
(insn 1470 717 723 (set (subreg:SI (reg/v:DF 15 st(7) [182]) 0)
        (const_int 0 [0x0])) 35 {*movsi_1} (insn_list 717 (nil))
    (nil))
e_pow.c:304: confused by earlier errors, bailing out
>How-To-Repeat:
gcc e_pow.i -O2 

>Fix:
dompile with -O0 or -O1
>Release-Note:
>Audit-Trail:
>Unformatted:
----gnatsweb-attachment----
Content-Type: application/octet-stream; name="e_pow.i"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="e_pow.i"

IyA1OSAiZV9wb3cuYyIKIyAxICJmZGxpYm0uaCIgMQojIDE0ICJmZGxpYm0uaCIKIyAxICIvd29y
ay9BUk9TL2Jpbi9uYXRpdmUtaTM4Ni9BUk9TL0luY2x1ZGUvYXJvcy9tYWNoaW5lLmgiIDEKIyAz
OCAiL3dvcmsvQVJPUy9iaW4vbmF0aXZlLWkzODYvQVJPUy9JbmNsdWRlL2Fyb3MvbWFjaGluZS5o
IgpzdHJ1Y3QgSnVtcFZlYwp7CiAgICB1bnNpZ25lZCBjaGFyIHZlY1s0XTsKfTsKIyAxMDEgIi93
b3JrL0FST1MvYmluL25hdGl2ZS1pMzg2L0FST1MvSW5jbHVkZS9hcm9zL21hY2hpbmUuaCIKZXh0
ZXJuIHZvaWQgX2Fyb3Nfbm90X2ltcGxlbWVudGVkICgpOwpleHRlcm4gdm9pZCBhcm9zX25vdF9p
bXBsZW1lbnRlZCAoKTsKIyAxNSAiZmRsaWJtLmgiIDIKIyA0OCAiZmRsaWJtLmgiCmV4dGVybiBp
bnQgc2lnbmdhbTsKCgoKZW51bSBmZHZlcnNpb24ge2ZkbGlibV9pZWVlID0gLTEsIGZkbGlibV9z
dmlkLCBmZGxpYm1feG9wZW4sIGZkbGlibV9wb3NpeH07CiMgNjQgImZkbGlibS5oIgpleHRlcm4g
ZW51bSBmZHZlcnNpb24gX2ZkbGliX3ZlcnNpb247CgoKCgoKCnN0cnVjdCBleGNlcHRpb24gewog
ICAgICAgIGludCB0eXBlOwogICAgICAgIGNoYXIgKm5hbWU7CiAgICAgICAgZG91YmxlIGFyZzE7
CiAgICAgICAgZG91YmxlIGFyZzI7CiAgICAgICAgZG91YmxlIHJldHZhbDsKfTsKIyA5OCAiZmRs
aWJtLmgiCmV4dGVybiBkb3VibGUgYWNvcyAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBhc2luIChk
b3VibGUpOwpleHRlcm4gZG91YmxlIGF0YW4gKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgYXRhbjIg
KGRvdWJsZSwgZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBjb3MgKGRvdWJsZSk7CmV4dGVybiBkb3Vi
bGUgc2luIChkb3VibGUpOwpleHRlcm4gZG91YmxlIHRhbiAoZG91YmxlKTsKCmV4dGVybiBkb3Vi
bGUgY29zaCAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBzaW5oIChkb3VibGUpOwpleHRlcm4gZG91
YmxlIHRhbmggKGRvdWJsZSk7CgpleHRlcm4gZG91YmxlIGV4cCAoZG91YmxlKTsKZXh0ZXJuIGRv
dWJsZSBmcmV4cCAoZG91YmxlLCBpbnQgKik7CmV4dGVybiBkb3VibGUgbGRleHAgKGRvdWJsZSwg
aW50KTsKZXh0ZXJuIGRvdWJsZSBsb2cgKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgbG9nMTAgKGRv
dWJsZSk7CmV4dGVybiBkb3VibGUgbW9kZiAoZG91YmxlLCBkb3VibGUgKik7CgpleHRlcm4gZG91
YmxlIHBvdyAoZG91YmxlLCBkb3VibGUpOwpleHRlcm4gZG91YmxlIHNxcnQgKGRvdWJsZSk7Cgpl
eHRlcm4gZG91YmxlIGNlaWwgKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgZmFicyAoZG91YmxlKTsK
ZXh0ZXJuIGRvdWJsZSBmbG9vciAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBmbW9kIChkb3VibGUs
IGRvdWJsZSk7CgpleHRlcm4gZG91YmxlIGVyZiAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBlcmZj
IChkb3VibGUpOwpleHRlcm4gZG91YmxlIGdhbW1hIChkb3VibGUpOwpleHRlcm4gZG91YmxlIGh5
cG90IChkb3VibGUsIGRvdWJsZSk7CmV4dGVybiBpbnQgaXNuYW4gKGRvdWJsZSk7CmV4dGVybiBp
bnQgZmluaXRlIChkb3VibGUpOwpleHRlcm4gZG91YmxlIGowIChkb3VibGUpOwpleHRlcm4gZG91
YmxlIGoxIChkb3VibGUpOwpleHRlcm4gZG91YmxlIGpuIChpbnQsIGRvdWJsZSk7CmV4dGVybiBk
b3VibGUgbGdhbW1hIChkb3VibGUpOwpleHRlcm4gZG91YmxlIHkwIChkb3VibGUpOwpleHRlcm4g
ZG91YmxlIHkxIChkb3VibGUpOwpleHRlcm4gZG91YmxlIHluIChpbnQsIGRvdWJsZSk7CgpleHRl
cm4gZG91YmxlIGFjb3NoIChkb3VibGUpOwpleHRlcm4gZG91YmxlIGFzaW5oIChkb3VibGUpOwpl
eHRlcm4gZG91YmxlIGF0YW5oIChkb3VibGUpOwpleHRlcm4gZG91YmxlIGNicnQgKGRvdWJsZSk7
CmV4dGVybiBkb3VibGUgbG9nYiAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBuZXh0YWZ0ZXIgKGRv
dWJsZSwgZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSByZW1haW5kZXIgKGRvdWJsZSwgZG91YmxlKTsK
CgoKZXh0ZXJuIGRvdWJsZSBzY2FsYiAoZG91YmxlLCBkb3VibGUpOwoKCmV4dGVybiBpbnQgbWF0
aGVyciAoc3RydWN0IGV4Y2VwdGlvbiAqKTsKCgoKCmV4dGVybiBkb3VibGUgc2lnbmlmaWNhbmQg
KGRvdWJsZSk7CgoKCgpleHRlcm4gZG91YmxlIGNvcHlzaWduIChkb3VibGUsIGRvdWJsZSk7CmV4
dGVybiBpbnQgaWxvZ2IgKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgcmludCAoZG91YmxlKTsKZXh0
ZXJuIGRvdWJsZSBzY2FsYm4gKGRvdWJsZSwgaW50KTsKCgoKCmV4dGVybiBkb3VibGUgZXhwbTEg
KGRvdWJsZSk7CmV4dGVybiBkb3VibGUgbG9nMXAgKGRvdWJsZSk7CiMgMTgzICJmZGxpYm0uaCIK
ZXh0ZXJuIGRvdWJsZSBfX2llZWU3NTRfc3FydCAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBfX2ll
ZWU3NTRfYWNvcyAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBfX2llZWU3NTRfYWNvc2ggKGRvdWJs
ZSk7CmV4dGVybiBkb3VibGUgX19pZWVlNzU0X2xvZyAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBf
X2llZWU3NTRfYXRhbmggKGRvdWJsZSk7CmV4dGVybiBkb3VibGUgX19pZWVlNzU0X2FzaW4gKGRv
dWJsZSk7CmV4dGVybiBkb3VibGUgX19pZWVlNzU0X2F0YW4yIChkb3VibGUsZG91YmxlKTsKZXh0
ZXJuIGRvdWJsZSBfX2llZWU3NTRfZXhwIChkb3VibGUpOwpleHRlcm4gZG91YmxlIF9faWVlZTc1
NF9jb3NoIChkb3VibGUpOwpleHRlcm4gZG91YmxlIF9faWVlZTc1NF9mbW9kIChkb3VibGUsZG91
YmxlKTsKZXh0ZXJuIGRvdWJsZSBfX2llZWU3NTRfcG93IChkb3VibGUsZG91YmxlKTsKZXh0ZXJu
IGRvdWJsZSBfX2llZWU3NTRfbGdhbW1hX3IgKGRvdWJsZSxpbnQgKik7CmV4dGVybiBkb3VibGUg
X19pZWVlNzU0X2dhbW1hX3IgKGRvdWJsZSxpbnQgKik7CmV4dGVybiBkb3VibGUgX19pZWVlNzU0
X2xnYW1tYSAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBfX2llZWU3NTRfZ2FtbWEgKGRvdWJsZSk7
CmV4dGVybiBkb3VibGUgX19pZWVlNzU0X2xvZzEwIChkb3VibGUpOwpleHRlcm4gZG91YmxlIF9f
aWVlZTc1NF9zaW5oIChkb3VibGUpOwpleHRlcm4gZG91YmxlIF9faWVlZTc1NF9oeXBvdCAoZG91
YmxlLGRvdWJsZSk7CmV4dGVybiBkb3VibGUgX19pZWVlNzU0X2owIChkb3VibGUpOwpleHRlcm4g
ZG91YmxlIF9faWVlZTc1NF9qMSAoZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBfX2llZWU3NTRfeTAg
KGRvdWJsZSk7CmV4dGVybiBkb3VibGUgX19pZWVlNzU0X3kxIChkb3VibGUpOwpleHRlcm4gZG91
YmxlIF9faWVlZTc1NF9qbiAoaW50LGRvdWJsZSk7CmV4dGVybiBkb3VibGUgX19pZWVlNzU0X3lu
IChpbnQsZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBfX2llZWU3NTRfcmVtYWluZGVyIChkb3VibGUs
ZG91YmxlKTsKZXh0ZXJuIGludCBfX2llZWU3NTRfcmVtX3BpbzIgKGRvdWJsZSxkb3VibGUqKTsK
CgoKZXh0ZXJuIGRvdWJsZSBfX2llZWU3NTRfc2NhbGIgKGRvdWJsZSxkb3VibGUpOwoKCgpleHRl
cm4gZG91YmxlIF9fa2VybmVsX3N0YW5kYXJkIChkb3VibGUsZG91YmxlLGludCk7CmV4dGVybiBk
b3VibGUgX19rZXJuZWxfc2luIChkb3VibGUsZG91YmxlLGludCk7CmV4dGVybiBkb3VibGUgX19r
ZXJuZWxfY29zIChkb3VibGUsZG91YmxlKTsKZXh0ZXJuIGRvdWJsZSBfX2tlcm5lbF90YW4gKGRv
dWJsZSxkb3VibGUsaW50KTsKZXh0ZXJuIGludCBfX2tlcm5lbF9yZW1fcGlvMiAoZG91YmxlKixk
b3VibGUqLGludCxpbnQsaW50LGNvbnN0IGludCopOwojIDYwICJlX3Bvdy5jIiAyCgoKc3RhdGlj
IGNvbnN0IGRvdWJsZQoKCgpicFtdID0gezEuMCwgMS41LH0sCmRwX2hbXSA9IHsgMC4wLCA1Ljg0
OTYyNDg3MjIwNzY0MTYwMTU2ZS0wMSx9LApkcF9sW10gPSB7IDAuMCwgMS4zNTAwMzkyMDIxMjk3
NDg5NzEyOGUtMDgsfSwKemVybyA9IDAuMCwKb25lID0gMS4wLAp0d28gPSAyLjAsCnR3bzUzID0g
OTAwNzE5OTI1NDc0MDk5Mi4wLApodWdlID0gMS4wZTMwMCwKdGlueSA9IDEuMGUtMzAwLAoKTDEg
PSA1Ljk5OTk5OTk5OTk5OTk0NjQ4NzI1ZS0wMSwKTDIgPSA0LjI4NTcxNDI4NTc4NTUwMTg0MjUy
ZS0wMSwKTDMgPSAzLjMzMzMzMzI5ODE4Mzc3NDMyOTE4ZS0wMSwKTDQgPSAyLjcyNzI4MTIzODA4
NTM0MDA2NDg5ZS0wMSwKTDUgPSAyLjMwNjYwNzQ1Nzc1NTYxNzU0MDY3ZS0wMSwKTDYgPSAyLjA2
OTc1MDE3ODAwMzM4NDE3Nzg0ZS0wMSwKUDEgPSAxLjY2NjY2NjY2NjY2NjY2MDE5MDM3ZS0wMSwK
UDIgPSAtMi43Nzc3Nzc3Nzc3MDE1NTkzMzg0MmUtMDMsClAzID0gNi42MTM3NTYzMjE0Mzc5MzQz
NjExN2UtMDUsClA0ID0gLTEuNjUzMzkwMjIwNTQ2NTI1MTUzOTBlLTA2LApQNSA9IDQuMTM4MTM2
Nzk3MDU3MjM4NDYwMzllLTA4LApsZzIgPSA2LjkzMTQ3MTgwNTU5OTQ1Mjg2MjI3ZS0wMSwKbGcy
X2ggPSA2LjkzMTQ3MTgyNDY0NTk5NjA5Mzc1ZS0wMSwKbGcyX2wgPSAtMS45MDQ2NTQyOTk5NTc3
NjgwNDUyNWUtMDksCm92dCA9IDguMDA4NTY2MjU5NTM3Mjk0NDM3MmUtMDAxNywKY3AgPSA5LjYx
Nzk2NjkzOTI1OTc1NTU0MzI5ZS0wMSwKY3BfaCA9IDkuNjE3OTY3MDA5NTQ0MzcyNTU4NTllLTAx
LApjcF9sID0gLTcuMDI4NDYxNjUwOTUyNzU4MjY1MTZlLTA5LAppdmxuMiA9IDEuNDQyNjk1MDQw
ODg4OTYzMzg3MDBlKzAwLAppdmxuMl9oID0gMS40NDI2OTUwMjE2MjkzMzM0OTYwOWUrMDAsCml2
bG4yX2wgPSAxLjkyNTk2Mjk5MTEyNjYxNzQ2ODg3ZS0wODsKCgogICAgICAgIGRvdWJsZSBfX2ll
ZWU3NTRfcG93KGRvdWJsZSB4LCBkb3VibGUgeSkKCgoKCnsKICAgICAgICBkb3VibGUgeixheCx6
X2gsel9sLHBfaCxwX2w7CiAgICAgICAgZG91YmxlIHkxLHQxLHQyLHIscyx0LHUsdix3OwogICAg
ICAgIGludCBpLGosayx5aXNpbnQsbjsKICAgICAgICBpbnQgaHgsaHksaXgsaXk7CiAgICAgICAg
dW5zaWduZWQgbHgsbHk7CgogICAgICAgIGh4ID0gKigxKyhpbnQqKSZ4KTsgbHggPSAqKGludCop
Jng7CiAgICAgICAgaHkgPSAqKDErKGludCopJnkpOyBseSA9ICooaW50KikmeTsKICAgICAgICBp
eCA9IGh4JjB4N2ZmZmZmZmY7IGl5ID0gaHkmMHg3ZmZmZmZmZjsKCgogICAgICAgIGlmKChpeXxs
eSk9PTApIHJldHVybiBvbmU7CgoKICAgICAgICBpZihpeCA+IDB4N2ZmMDAwMDAgfHwgKChpeD09
MHg3ZmYwMDAwMCkmJihseCE9MCkpIHx8CiAgICAgICAgICAgaXkgPiAweDdmZjAwMDAwIHx8ICgo
aXk9PTB4N2ZmMDAwMDApJiYobHkhPTApKSkKICAgICAgICAgICAgICAgIHJldHVybiB4K3k7CgoK
CgoKCiAgICAgICAgeWlzaW50ID0gMDsKICAgICAgICBpZihoeDwwKSB7CiAgICAgICAgICAgIGlm
KGl5Pj0weDQzNDAwMDAwKSB5aXNpbnQgPSAyOwogICAgICAgICAgICBlbHNlIGlmKGl5Pj0weDNm
ZjAwMDAwKSB7CiAgICAgICAgICAgICAgICBrID0gKGl5Pj4yMCktMHgzZmY7CiAgICAgICAgICAg
ICAgICBpZihrPjIwKSB7CiAgICAgICAgICAgICAgICAgICAgaiA9IGx5Pj4oNTItayk7CiAgICAg
ICAgICAgICAgICAgICAgaWYoKGo8PCg1Mi1rKSk9PWx5KSB5aXNpbnQgPSAyLShqJjEpOwogICAg
ICAgICAgICAgICAgfSBlbHNlIGlmKGx5PT0wKSB7CiAgICAgICAgICAgICAgICAgICAgaiA9IGl5
Pj4oMjAtayk7CiAgICAgICAgICAgICAgICAgICAgaWYoKGo8PCgyMC1rKSk9PWl5KSB5aXNpbnQg
PSAyLShqJjEpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKCiAg
ICAgICAgaWYobHk9PTApIHsKICAgICAgICAgICAgaWYgKGl5PT0weDdmZjAwMDAwKSB7CiAgICAg
ICAgICAgICAgICBpZigoKGl4LTB4M2ZmMDAwMDApfGx4KT09MCkKICAgICAgICAgICAgICAgICAg
ICByZXR1cm4geSAtIHk7CiAgICAgICAgICAgICAgICBlbHNlIGlmIChpeCA+PSAweDNmZjAwMDAw
KQogICAgICAgICAgICAgICAgICAgIHJldHVybiAoaHk+PTApPyB5OiB6ZXJvOwogICAgICAgICAg
ICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIHJldHVybiAoaHk8MCk/LXk6IHplcm87CiAg
ICAgICAgICAgIH0KICAgICAgICAgICAgaWYoaXk9PTB4M2ZmMDAwMDApIHsKICAgICAgICAgICAg
ICAgIGlmKGh5PDApIHJldHVybiBvbmUveDsgZWxzZSByZXR1cm4geDsKICAgICAgICAgICAgfQog
ICAgICAgICAgICBpZihoeT09MHg0MDAwMDAwMCkgcmV0dXJuIHgqeDsKICAgICAgICAgICAgaWYo
aHk9PTB4M2ZlMDAwMDApIHsKICAgICAgICAgICAgICAgIGlmKGh4Pj0wKQogICAgICAgICAgICAg
ICAgcmV0dXJuIHNxcnQoeCk7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIGF4ID0g
ZmFicyh4KTsKCiAgICAgICAgaWYobHg9PTApIHsKICAgICAgICAgICAgaWYoaXg9PTB4N2ZmMDAw
MDB8fGl4PT0wfHxpeD09MHgzZmYwMDAwMCl7CiAgICAgICAgICAgICAgICB6ID0gYXg7CiAgICAg
ICAgICAgICAgICBpZihoeTwwKSB6ID0gb25lL3o7CiAgICAgICAgICAgICAgICBpZihoeDwwKSB7
CiAgICAgICAgICAgICAgICAgICAgaWYoKChpeC0weDNmZjAwMDAwKXx5aXNpbnQpPT0wKSB7CiAg
ICAgICAgICAgICAgICAgICAgICAgIHogPSAoei16KS8oei16KTsKICAgICAgICAgICAgICAgICAg
ICB9IGVsc2UgaWYoeWlzaW50PT0xKQogICAgICAgICAgICAgICAgICAgICAgICB6ID0gLXo7CiAg
ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICByZXR1cm4gejsKICAgICAgICAgICAgfQog
ICAgICAgIH0KCgogICAgICAgIGlmKCgoKGh4Pj4zMSkrMSl8eWlzaW50KT09MCkgcmV0dXJuICh4
LXgpLyh4LXgpOwoKCiAgICAgICAgaWYoaXk+MHg0MWUwMDAwMCkgewogICAgICAgICAgICBpZihp
eT4weDQzZjAwMDAwKXsKICAgICAgICAgICAgICAgIGlmKGl4PD0weDNmZWZmZmZmKSByZXR1cm4g
KGh5PDApPyBodWdlKmh1Z2U6dGlueSp0aW55OwogICAgICAgICAgICAgICAgaWYoaXg+PTB4M2Zm
MDAwMDApIHJldHVybiAoaHk+MCk/IGh1Z2UqaHVnZTp0aW55KnRpbnk7CiAgICAgICAgICAgIH0K
CiAgICAgICAgICAgIGlmKGl4PDB4M2ZlZmZmZmYpIHJldHVybiAoaHk8MCk/IGh1Z2UqaHVnZTp0
aW55KnRpbnk7CiAgICAgICAgICAgIGlmKGl4PjB4M2ZmMDAwMDApIHJldHVybiAoaHk+MCk/IGh1
Z2UqaHVnZTp0aW55KnRpbnk7CgoKICAgICAgICAgICAgdCA9IHgtMTsKICAgICAgICAgICAgdyA9
ICh0KnQpKigwLjUtdCooMC4zMzMzMzMzMzMzMzMzMzMzMzMzMzMzLXQqMC4yNSkpOwogICAgICAg
ICAgICB1ID0gaXZsbjJfaCp0OwogICAgICAgICAgICB2ID0gdCppdmxuMl9sLXcqaXZsbjI7CiAg
ICAgICAgICAgIHQxID0gdSt2OwogICAgICAgICAgICAqKGludCopJnQxID0gMDsKICAgICAgICAg
ICAgdDIgPSB2LSh0MS11KTsKICAgICAgICB9IGVsc2UgewogICAgICAgICAgICBkb3VibGUgczIs
c19oLHNfbCx0X2gsdF9sOwogICAgICAgICAgICBuID0gMDsKCiAgICAgICAgICAgIGlmKGl4PDB4
MDAxMDAwMDApCiAgICAgICAgICAgICAgICB7YXggKj0gdHdvNTM7IG4gLT0gNTM7IGl4ID0gKigx
KyhpbnQqKSZheCk7IH0KICAgICAgICAgICAgbiArPSAoKGl4KT4+MjApLTB4M2ZmOwogICAgICAg
ICAgICBqID0gaXgmMHgwMDBmZmZmZjsKCiAgICAgICAgICAgIGl4ID0ganwweDNmZjAwMDAwOwog
ICAgICAgICAgICBpZihqPD0weDM5ODhFKSBrPTA7CiAgICAgICAgICAgIGVsc2UgaWYoajwweEJC
NjdBKSBrPTE7CiAgICAgICAgICAgIGVsc2Uge2s9MDtuKz0xO2l4IC09IDB4MDAxMDAwMDA7fQog
ICAgICAgICAgICAqKDErKGludCopJmF4KSA9IGl4OwoKCiAgICAgICAgICAgIHUgPSBheC1icFtr
XTsKICAgICAgICAgICAgdiA9IG9uZS8oYXgrYnBba10pOwogICAgICAgICAgICBzID0gdSp2Owog
ICAgICAgICAgICBzX2ggPSBzOwogICAgICAgICAgICAqKGludCopJnNfaCA9IDA7CgogICAgICAg
ICAgICB0X2ggPSB6ZXJvOwogICAgICAgICAgICAqKDErKGludCopJnRfaCk9KChpeD4+MSl8MHgy
MDAwMDAwMCkrMHgwMDA4MDAwMCsoazw8MTgpOwogICAgICAgICAgICB0X2wgPSBheCAtICh0X2gt
YnBba10pOwogICAgICAgICAgICBzX2wgPSB2KigodS1zX2gqdF9oKS1zX2gqdF9sKTsKCiAgICAg
ICAgICAgIHMyID0gcypzOwogICAgICAgICAgICByID0gczIqczIqKEwxK3MyKihMMitzMiooTDMr
czIqKEw0K3MyKihMNStzMipMNikpKSkpOwogICAgICAgICAgICByICs9IHNfbCooc19oK3MpOwog
ICAgICAgICAgICBzMiA9IHNfaCpzX2g7CiAgICAgICAgICAgIHRfaCA9IDMuMCtzMityOwogICAg
ICAgICAgICAqKGludCopJnRfaCA9IDA7CiAgICAgICAgICAgIHRfbCA9IHItKCh0X2gtMy4wKS1z
Mik7CgogICAgICAgICAgICB1ID0gc19oKnRfaDsKICAgICAgICAgICAgdiA9IHNfbCp0X2grdF9s
KnM7CgogICAgICAgICAgICBwX2ggPSB1K3Y7CiAgICAgICAgICAgICooaW50KikmcF9oID0gMDsK
ICAgICAgICAgICAgcF9sID0gdi0ocF9oLXUpOwogICAgICAgICAgICB6X2ggPSBjcF9oKnBfaDsK
ICAgICAgICAgICAgel9sID0gY3BfbCpwX2grcF9sKmNwK2RwX2xba107CgogICAgICAgICAgICB0
ID0gKGRvdWJsZSluOwogICAgICAgICAgICB0MSA9ICgoKHpfaCt6X2wpK2RwX2hba10pK3QpOwog
ICAgICAgICAgICAqKGludCopJnQxID0gMDsKICAgICAgICAgICAgdDIgPSB6X2wtKCgodDEtdCkt
ZHBfaFtrXSktel9oKTsKICAgICAgICB9CgogICAgICAgIHMgPSBvbmU7CiAgICAgICAgaWYoKCgo
aHg+PjMxKSsxKXwoeWlzaW50LTEpKT09MCkgcyA9IC1vbmU7CgoKICAgICAgICB5MSA9IHk7CiAg
ICAgICAgKihpbnQqKSZ5MSA9IDA7CiAgICAgICAgcF9sID0gKHkteTEpKnQxK3kqdDI7CiAgICAg
ICAgcF9oID0geTEqdDE7CiAgICAgICAgeiA9IHBfbCtwX2g7CiAgICAgICAgaiA9ICooMSsoaW50
Kikmeik7CiAgICAgICAgaSA9ICooaW50KikmejsKICAgICAgICBpZiAoaj49MHg0MDkwMDAwMCkg
ewogICAgICAgICAgICBpZigoKGotMHg0MDkwMDAwMCl8aSkhPTApCiAgICAgICAgICAgICAgICBy
ZXR1cm4gcypodWdlKmh1Z2U7CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaWYo
cF9sK292dD56LXBfaCkgcmV0dXJuIHMqaHVnZSpodWdlOwogICAgICAgICAgICB9CiAgICAgICAg
fSBlbHNlIGlmKChqJjB4N2ZmZmZmZmYpPj0weDQwOTBjYzAwICkgewogICAgICAgICAgICBpZigo
KGotMHhjMDkwY2MwMCl8aSkhPTApCiAgICAgICAgICAgICAgICByZXR1cm4gcyp0aW55KnRpbnk7
CiAgICAgICAgICAgIGVsc2UgewogICAgICAgICAgICAgICAgaWYocF9sPD16LXBfaCkgcmV0dXJu
IHMqdGlueSp0aW55OwogICAgICAgICAgICB9CiAgICAgICAgfQoKCgogICAgICAgIGkgPSBqJjB4
N2ZmZmZmZmY7CiAgICAgICAgayA9IChpPj4yMCktMHgzZmY7CiAgICAgICAgbiA9IDA7CiAgICAg
ICAgaWYoaT4weDNmZTAwMDAwKSB7CiAgICAgICAgICAgIG4gPSBqKygweDAwMTAwMDAwPj4oaysx
KSk7CiAgICAgICAgICAgIGsgPSAoKG4mMHg3ZmZmZmZmZik+PjIwKS0weDNmZjsKICAgICAgICAg
ICAgdCA9IHplcm87CiAgICAgICAgICAgICooMSsoaW50KikmdCkgPSAobiZ+KDB4MDAwZmZmZmY+
PmspKTsKICAgICAgICAgICAgbiA9ICgobiYweDAwMGZmZmZmKXwweDAwMTAwMDAwKT4+KDIwLWsp
OwogICAgICAgICAgICBpZihqPDApIG4gPSAtbjsKICAgICAgICAgICAgcF9oIC09IHQ7CiAgICAg
ICAgfQogICAgICAgIHQgPSBwX2wrcF9oOwogICAgICAgICooaW50KikmdCA9IDA7CiAgICAgICAg
dSA9IHQqbGcyX2g7CiAgICAgICAgdiA9IChwX2wtKHQtcF9oKSkqbGcyK3QqbGcyX2w7CiAgICAg
ICAgeiA9IHUrdjsKICAgICAgICB3ID0gdi0oei11KTsKICAgICAgICB0ID0geip6OwogICAgICAg
IHQxID0geiAtIHQqKFAxK3QqKFAyK3QqKFAzK3QqKFA0K3QqUDUpKSkpOwogICAgICAgIHIgPSAo
eip0MSkvKHQxLXR3byktKHcreip3KTsKICAgICAgICB6ID0gb25lLShyLXopOwogICAgICAgIGog
PSAqKDErKGludCopJnopOwogICAgICAgIGogKz0gKG48PDIwKTsKICAgICAgICBpZigoaj4+MjAp
PD0wKSB6ID0gc2NhbGJuKHosbik7CiAgICAgICAgZWxzZSAqKDErKGludCopJnopICs9IChuPDwy
MCk7CiAgICAgICAgcmV0dXJuIHMqejsKfQo=


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]