blob: a9ea1da02cc5933054516a308b2f8420ab9a7c3b [file] [log] [blame]
Vikram S. Advea21cf202001-07-21 12:42:19 +00001// $Id$
2//***************************************************************************
3// File:
4// Sparc.cpp
5//
6// Purpose:
7//
8// History:
9// 7/15/01 - Vikram Adve - Created
10//**************************************************************************/
11
Chris Lattner7e583cf2001-07-21 20:58:30 +000012#include "llvm/CodeGen/Sparc.h"
Vikram S. Advea21cf202001-07-21 12:42:19 +000013
Vikram S. Advea21cf202001-07-21 12:42:19 +000014//************************ Class Implementations **************************/
15
16
Vikram S. Adve3c3b7132001-07-28 04:19:10 +000017
Vikram S. Advea21cf202001-07-21 12:42:19 +000018//---------------------------------------------------------------------------
19// class UltraSparcMachine
20//
21// Purpose:
Vikram S. Adve3c3b7132001-07-28 04:19:10 +000022// Primary interface to machine description for the UltraSPARC.
23// Primarily just initializes machine-dependent parameters in
24// class TargetMachine, and creates machine-dependent subclasses
25// for classes such as MachineInstrInfo.
Vikram S. Advea21cf202001-07-21 12:42:19 +000026//
27//---------------------------------------------------------------------------
28
29UltraSparc::UltraSparc()
Vikram S. Adve3c3b7132001-07-28 04:19:10 +000030 : TargetMachine(new UltraSparcInstrInfo)
Vikram S. Advea21cf202001-07-21 12:42:19 +000031{
32 optSizeForSubWordData = 4;
33 intSize = 4;
34 floatSize = 4;
35 longSize = 8;
36 doubleSize = 8;
37 longDoubleSize = 16;
38 pointerSize = 8;
39 minMemOpWordSize = 8;
40 maxAtomicMemOpWordSize = 8;
Vikram S. Advea21cf202001-07-21 12:42:19 +000041 zeroRegNum = 0; // %g0 always gives 0 on Sparc
42}
43
Vikram S. Adve3c3b7132001-07-28 04:19:10 +000044UltraSparc::~UltraSparc()
45{
46 delete (UltraSparcInstrInfo*) machineInstrInfo;
47}
48
Vikram S. Advea21cf202001-07-21 12:42:19 +000049//**************************************************************************/