- Jun 28, 2012
-
-
Jack Carter authored
which many Mips 64 ABIs use than for O64 which many if not all other target ABIs use. Most architectures have the following 64 bit relocation record format: typedef struct { Elf64_Addr r_offset; /* Address of reference */ Elf64_Xword r_info; /* Symbol index and type of relocation */ } Elf64_Rel; typedef struct { Elf64_Addr r_offset; Elf64_Xword r_info; Elf64_Sxword r_addend; } Elf64_Rela; Whereas N64 has the following format: typedef struct { Elf64_Addr r_offset;/* Address of reference */ Elf64_Word r_sym; /* Symbol index */ Elf64_Byte r_ssym; /* Special symbol */ Elf64_Byte r_type3; /* Relocation type */ Elf64_Byte r_type2; /* Relocation type */ Elf64_Byte r_type; /* Relocation type */ } Elf64_Rel; typedef struct { Elf64_Addr r_offset;/* Address of reference */ Elf64_Word r_sym; /* Symbol index */ Elf64_Byte r_ssym; /* Special symbol */ Elf64_Byte r_type3; /* Relocation type */ Elf64_Byte r_type2; /* Relocation type */ Elf64_Byte r_type; /* Relocation type */ Elf64_Sxword r_addend; } Elf64_Rela; The structure is the same size, but the r_info data element is now 5 separate elements. Besides the content aspects, endian byte reordering will be different for the area with each element being endianized separately. I treat this as generic and continue to pass r_type as an integer masking and unmasking the byte sized N64 values for N64 mode. I've implemented this and it causes no affect on other current targets. This passes make check. Jack llvm-svn: 159299
-
- Jun 27, 2012
-
-
Akira Hatanaka authored
llvm-svn: 159243
-
Akira Hatanaka authored
llvm-svn: 159240
-
- Jun 24, 2012
-
-
NAKAMURA Takumi authored
llvm-svn: 159112
-
- Jun 21, 2012
-
-
Akira Hatanaka authored
2. re-enable null.ll test 3. fix some minor style violations Patch by Reed Kotler. llvm-svn: 158935
-
Jack Carter authored
to be generic across architectures. It has the following description in the gnu sources: Substitute immediate value without immediate syntax Several Architectures such as x86 have local implementations of operand modifier 'c' which go beyond the above description slightly. To make use of the generic modifiers without overriding local implementation one can make a call to the base class method for AsmPrinter::PrintAsmOperand() in the locally derived method's "default" case in the switch statement. That way if it is already defined locally the generic version will never get called. This change is needed when test/CodeGen/generic/asm-large-immediate.ll failed on a native Mips board. The test was assuming a generic implementation was in place. Affected files: lib/Target/Mips/MipsAsmPrinter.cpp: Changed the default case to call the base method. lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp Added 'c' to the switch cases. test/CodeGen/Mips/asm-large-immediate.ll Mips compiled version of the generic one Contributer: Jack Carter llvm-svn: 158925
-
- Jun 20, 2012
-
-
Akira Hatanaka authored
llvm-svn: 158855
-
Akira Hatanaka authored
that are generated by TableGen and are already available in MipsGenRegisterInfo.inc. Suggested by Jakob Stoklund Olesen. Also, fix bug in function DecodeAFGR64RegisterClass. Patch by Vladimir Medic. llvm-svn: 158846
-
- Jun 19, 2012
-
-
Akira Hatanaka authored
llvm-svn: 158702
-
Akira Hatanaka authored
MipsCodeEmitter.cpp. llvm-svn: 158701
-
- Jun 16, 2012
-
-
NAKAMURA Takumi authored
llvm-svn: 158602
-
- Jun 14, 2012
-
-
Akira Hatanaka authored
llvm-svn: 158471
-
Akira Hatanaka authored
being used by Mips16 or Micro Mips 2. clean up a few lines too long encountered Patch by Reed Kotler. llvm-svn: 158470
-
NAKAMURA Takumi authored
llvm-svn: 158446
-
Akira Hatanaka authored
llvm-svn: 158437
-
Akira Hatanaka authored
llvm-svn: 158436
-
Akira Hatanaka authored
llvm-svn: 158434
-
Akira Hatanaka authored
llvm-svn: 158433
-
Akira Hatanaka authored
as a scratch register when they are expanded to long branches. llvm-svn: 158432
-
Akira Hatanaka authored
to load an immediate that does not fit into 16-bit. llvm-svn: 158431
-
Akira Hatanaka authored
to load an immediate that does not fit into 16-bit. Also, take into consideration the global base register slot on the stack when computing the stack size. llvm-svn: 158430
-
Akira Hatanaka authored
compute the size of basic blocks in a function. Also, define a function which emits a series of instructions to load an immediate. llvm-svn: 158429
-
Akira Hatanaka authored
Long-branches need access to the global base register to get the destination address. llvm-svn: 158428
-
Akira Hatanaka authored
object for the global base register. This is the first of a series of patches which implements long branch expansion for MIPS. llvm-svn: 158427
-
Akira Hatanaka authored
delay slot filler pass of MIPS, per suggestion of Jakob Stoklund Olesen. This change, along with the fix in r158154, enables machine verification to be run after delay slot filling. llvm-svn: 158426
-
- Jun 13, 2012
-
-
Akira Hatanaka authored
pattern: (add v0, (add v1, abs_lo(tjt))) => (add (add v0, v1), abs_lo(tjt)) "tjt" is a TargetJumpTable node. llvm-svn: 158419
-
Akira Hatanaka authored
llvm-svn: 158414
-
Akira Hatanaka authored
llvm-svn: 158413
-
Akira Hatanaka authored
llvm-svn: 158410
-
Akira Hatanaka authored
Patch by Reed Kotler. llvm-svn: 158382
-
Akira Hatanaka authored
until this directive is pushed in gas to open source fsf Patch by Reed Kotler. llvm-svn: 158381
-
Akira Hatanaka authored
non mips16 2. fix some comments to change OPcode->EXTEND for extended instructions Patch by Reed Kotler. llvm-svn: 158378
-
- Jun 09, 2012
-
-
Jack Carter authored
llvm-svn: 158250
-
- Jun 04, 2012
-
-
Akira Hatanaka authored
inserted after the shift-left-logical node. llvm-svn: 157937
-
Hans Wennborg authored
This was mostly done already in r156162, but I missed one place. llvm-svn: 157929
-
- Jun 02, 2012
-
-
-
Chris Lattner authored
llvm-svn: 157872
-
Akira Hatanaka authored
llvm-svn: 157867
-
Akira Hatanaka authored
llvm-svn: 157866
-
Akira Hatanaka authored
llvm-svn: 157865
-