llvm-6502/lib
Reid Spencer e1553cc956 For PR950:
Major reorganization. This patch introduces the signedness changes for
the new integer types (i8, i16, i32, i64) which replace the old signed
versions (ubyte, sbyte, ushort, short, etc). This patch also implements
the function type parameter attributes feature. Together these conspired
to introduce new reduce/reduce errors into the grammar. Consequently, it
was necessary to introduce a new keyword into the grammar in order to
disambiguate. Without this, yacc would make incorrect shift/reduce and
reduce/reduce decisions and fail to parse the intended assembly.

Changes in assembly:

1. The "implementation" keyword is superfluous but still supported. You
   can use it as a sentry which will ensure there are no remaining up
   reference types. However, this is optional as those checks are also
   performed elsewhere.

2. Parameter attributes are now implemented using an at sign to
   indicate the attribute. The attributes are placed after the type
   in a function declaration or after the argument value in a function
   call. For example:
      i8 @sext %myfunc(i16 @zext)
      call i8 @sext %myfunc(i16 @zext %someVal)
   The facility is available for supporting additional attributes and
   they can be combined using the @(attr1,attr2,attr3) syntax. Right
   now  the only two supported are @sext and @zext

3. Functions must now be defined with the "define" keyword which is
   analagous to the "declare" keyword for function declarations. The
   introduction of this keyword disambiguates situations where a
   named result type is confused with a new type or gvar definition.
   For example:
      %MyType = type i16
      %MyType %func(%MyType) { ... }
   With the introduction of optional parameter attributes between
   the function name and the function result type, yacc will pick
   the wrong rule to reduce unless it is disambiguated with "define"
   before the function definition, as in:
      define %MyType @zext %func(%MyType %someArg) { ... }


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32781 91177308-0d34-0410-b5e6-96231b3b80d8
2006-12-31 05:40:12 +00:00
..
Analysis For PR950: 2006-12-23 06:05:41 +00:00
Archive For PR1050: 2006-12-15 19:44:51 +00:00
AsmParser For PR950: 2006-12-31 05:40:12 +00:00
Bytecode switch statistics over to not use static ctors. 2006-12-19 23:16:47 +00:00
CodeGen For PR950: 2006-12-23 06:05:41 +00:00
Debugger Don't use <sstream> in Streams.h but <iosfwd> instead. 2006-12-07 23:41:45 +00:00
ExecutionEngine For PR950: 2006-12-23 06:05:41 +00:00
Linker extern_weak linkage. fixes PR1038 2006-12-15 17:35:32 +00:00
Support For PR950: 2006-12-23 06:05:41 +00:00
System Partly fixed JITing on mingw32 platform. The support is not full due to 2006-12-19 15:24:18 +00:00
Target fix comment 2006-12-29 14:28:12 +00:00
Transforms For PR1066: 2006-12-24 00:40:59 +00:00
VMCore For PR950: 2006-12-31 05:26:44 +00:00
Makefile Make some changes suggested by Chris: 2006-05-17 22:55:35 +00:00