Commit Graph

37 Commits

Author SHA1 Message Date
Alexey Prokhin
e921998d75 A few fixes for 64bit 2011-02-23 12:49:57 +03:00
Robert Clipsham
3afe5bae25 Added in a missing opcode from the last commit. 2010-12-09 22:31:31 +00:00
Robert Clipsham
496a87e452 Merged Iain Buclaw's AMD 3dNow! asm changes. 2010-12-09 22:27:14 +00:00
Tomas Lindquist Olsen
df82d09206 Fixed bug #349 , now emits error. 2009-08-02 17:56:30 +02:00
Frits van Bommel
ba72e39d24 Add syscall to the x86-64 asm parser, and both syscall and sysret to the
x86 one. Fixes #316.
2009-06-01 23:42:42 +02:00
Kelly Wilson
71477fcb8c Forgot one windows underscore for asm output 2009-05-30 14:35:03 -06:00
Christian Kamm
06108db87e Yet another fdiv/fsub special case. 2009-05-09 20:13:05 +02:00
Christian Kamm
968e1148d8 Restrict second arg of certain floating-point stores to ST. Fix type postfix
for the two argument form of fistp and fisttp.
2009-05-09 08:58:41 +02:00
Christian Kamm
cde738111c Fix type postfix for fistp/fisttp. Two operand form still broken (is it even legal?). 2009-05-07 21:49:58 +02:00
Christian Kamm
37edd5add6 Fix certain cases of floating point instruction mistranslation. 2009-05-07 21:01:44 +02:00
Christian Kamm
108309a579 Ignore short/long prefix of labels instead of ignoring the whole branch
instruction!
2009-05-06 19:56:33 +02:00
Christian Kamm
c57f6212a6 Make the no-operand versions of floating point inline asm instructions always
pop the floating point stack - like dmd does.
2009-05-06 18:54:20 +02:00
Christian Kamm
8a8818104b Translate fsub/fdiv correctly. See #256. 2009-05-06 18:08:44 +02:00
Kelly Wilson
c60ce29bde fix wrong arg order for fmul/fadd 2009-05-05 11:51:00 -06:00
Kelly Wilson
7a1052a2fc Some more fixups for mingw -- missing underscores 2009-04-02 17:27:53 -06:00
Frits van Bommel
8b185b8b6a Fix field access from inline asm. See tests/mini/asm10.d 2009-03-12 23:48:43 +01:00
Tomas Lindquist Olsen
4399ff3700 Corrected bad asm match for fstp on x86-32 2009-03-12 23:12:36 +01:00
Tomas Lindquist Olsen
269e37dc88 - Fixed building tango-user-ldc on x86-32.
- Added CMake option for extra LLVM components to be linked in.
2009-03-12 22:30:30 +01:00
Frits van Bommel
ff354d59b2 Use stringstream in asm generation instead of OutBuffer.
Besides looking better, this should reduce allocations and copying.
2009-03-12 14:08:57 +01:00
Frits van Bommel
c1bd2234a9 Clean up asm code a bit.
- Use vector instead of Array, reducing allocations.
 - Use vectors instead of deques since we only push_back and index.
 - Remove redundant typedefs of iterators.
 - Comment out unused variable (used only in commented-out GDC code).
 - A few whitespace changes.
2009-03-12 14:08:57 +01:00
Frits van Bommel
723ae9f9d5 Fix an error in the ASM tables introduced by the recent fistp fixes.
(There are only 3 fields for operands)
2009-03-12 14:08:57 +01:00
Kelly Wilson
6e44efb9d2 Logic error fix 2009-03-11 13:54:29 -04:00
Kelly Wilson
e5a4e4cb41 Fix FS:4 problem for x32 2009-03-11 12:13:41 -04:00
Frits van Bommel
8bb206447f Add missing EBX clobber to CPUID asm instruction. 2009-03-11 14:17:13 +01:00
Kelly Wilson
cff2c92fd3 Change faulty offset for asm in Cache.d (ie. change "-20(%rbp)+4)" to
"4+-20(%rbp)")
2009-03-11 00:08:45 -04:00
Kelly Wilson
40887efe59 Fix for x32 fmul/div/add/sub with no operands. 2009-03-10 20:40:22 -04:00
Kelly Wilson
2d11484649 fix fistp properly for x32 2009-03-10 13:59:50 -04:00
Unknown
5bb81ac3d2 Fix 32bit version of "jle short Label;" for 'short' or 'long'. 2009-03-10 09:13:13 -04:00
Tomas Lindquist Olsen
341dfe7a9f Merge 2009-03-08 02:36:45 +01:00
Tomas Lindquist Olsen
16668d1508 Fixed two operand form of X86 fstp instruction. (throw away second operand!) 2009-03-08 02:36:09 +01:00
Frits van Bommel
59f677c7ae Apply [1053] to x86-32 asm as well. 2009-03-08 02:07:53 +01:00
Tomas Lindquist Olsen
3f7c7c5327 Fixed accessing function symbols from inline asm.
Ran x86(-64) asm processors through a code formatter.
2009-02-08 05:14:24 +01:00
Tomas Lindquist Olsen
9705b7e017 Fixed problem accessing global variables from naked asm on osx. 2009-02-03 18:42:25 +01:00
Tomas Lindquist Olsen
dc5944df99 Implemented proper support for naked asm using llvm module level asm. Still not 100% complete, but already 1000 times better that what we had before. Don's BignumX86 implementation from Tango (when turned into a standalone unittest) seems to fully work with no changes, and great performance :)
Fixed align N; in asm blocks.

Fixed inreg parameter passing on x86 for ref/out params.

Removed support for lazy initialization of function local static variables, I have no idea why I ever implemented this, it's not in the D spec, and DMD doesn't support it :P

Some of the global variable related changes might cause minor regressions, but they should be easily fixable.
2009-02-03 08:54:57 +01:00
Christian Kamm
955df981f8 Apply duane's patch for align power-of-two checking in inline asm. Fixes #159 2009-01-04 15:39:34 +01:00
Christian Kamm
cc6bde46f9 Attempt at fixing #126. 2008-11-27 18:31:09 +01:00
Christian Kamm
bc80a83666 Merge wilsonk's x86-64 inline assembly. 2008-11-08 22:29:19 +01:00