diff options
| author | Drahflow <drahflow@gmx.de> | 2014-03-31 00:24:05 +0200 |
|---|---|---|
| committer | Drahflow <drahflow@gmx.de> | 2014-03-31 00:24:05 +0200 |
| commit | c61d0d4fe1079dfe5e1b40e0f301d6d1c77a136d (patch) | |
| tree | 0593f2091ec513b863728088db66a10859f73735 /compiler | |
| parent | 2387a3eafbd13c0b27797ac1434e45bb36d632c2 (diff) | |
Some documentation (and resulting code-cleanup)
Diffstat (limited to 'compiler')
| -rw-r--r-- | compiler/elymasAsmOps.ey | 8 | ||||
| -rw-r--r-- | compiler/elymasGlobal.ey | 21 | ||||
| -rw-r--r-- | compiler/standardClient.ey | 2 |
3 files changed, 29 insertions, 2 deletions
diff --git a/compiler/elymasAsmOps.ey b/compiler/elymasAsmOps.ey index 116d5b0..d74cc33 100644 --- a/compiler/elymasAsmOps.ey +++ b/compiler/elymasAsmOps.ey @@ -826,6 +826,14 @@ memoryAddressingVariants keys { ==variant memoryAddressingVariants variant . =*p } /fsubp deff { ==reg + reg bit64assert + + 1 /none /none reg rex + %F7 + /seven reg modrm11 +} /idivqReg deff + +{ ==reg reg bit8assert 1 /none /none reg rex diff --git a/compiler/elymasGlobal.ey b/compiler/elymasGlobal.ey index f311764..83d4d63 100644 --- a/compiler/elymasGlobal.ey +++ b/compiler/elymasGlobal.ey @@ -3349,7 +3349,7 @@ /rax :pushqReg /rdx /rax :movqRegReg /rdx /rdx :xorqRegReg - /rcx :divqReg + /rcx :idivqReg /rax /rdx :movqRegReg /rax :popqReg ] [ @@ -3380,6 +3380,25 @@ 1 /rdx :movqImmReg @done ]] [[ "or" floatUnsupported ]] 0 makeFullArith /eyor defv + [[ + /rcx /rcx :testqRegReg + /first :jnzLbl8 + # @firstNot + /rdx /rdx :testqRegReg + /yes :jnzLbl8 + /rdx /rdx :xorqRegReg + /done :jmpLbl8 + + @first + /rdx /rdx :testqRegReg + /yes :jzLbl8 + /rdx /rdx :xorqRegReg + /done :jmpLbl8 + + @yes + 1 /rdx :movqImmReg + @done + ]] [[ "xor" floatUnsupported ]] 0 makeFullArith /eyxor defv > _ =globalT11t1Functions { defv }' ::allocateOffsetStruct < diff --git a/compiler/standardClient.ey b/compiler/standardClient.ey index a626790..d55c23e 100644 --- a/compiler/standardClient.ey +++ b/compiler/standardClient.ey @@ -6,7 +6,6 @@ ## regex support # ideas taken from http://swtch.com/~rsc/regexp/regexp3.html -# FIXME: correctly handly */+/? priority < 0 ==:MATCH 1 ==:TERM 2 ==:JUMP 3 ==:SPLIT 4 ==:SAVE 5 ==:FIRST 6 ==:LAST @@ -858,6 +857,7 @@ } /curry deffd { | curry } "||" deffd + { ==o { "unknown type in **" die } ==:unknown { "invalid type in **" die } ==:invalid |
