* fixed some x86-64 issues

This commit is contained in:
florian 2003-12-22 19:00:17 +00:00
parent 1ff6fd5e6a
commit 6170faf334
6 changed files with 34 additions and 38 deletions

View File

@ -34,7 +34,7 @@ unit cg64f64;
uses
aasmbase,aasmtai,aasmcpu,
cpuinfo, cpubase,
cginfo, cgobj,
cgbase,cgobj,
symtype;
type
@ -223,7 +223,10 @@ unit cg64f64;
end.
{
$Log$
Revision 1.8 2003-06-03 21:11:09 peter
Revision 1.9 2003-12-22 19:00:17 florian
* fixed some x86-64 issues
Revision 1.8 2003/06/03 21:11:09 peter
* cg.a_load_* get a from and to size specifier
* makeregsize only accepts newregister
* i386 uses generic tcgnotnode,tcgunaryminus

View File

@ -831,7 +831,7 @@ implementation
if (locpara.size in [OS_S64,OS_64]) then
begin
{$ifdef cpu64bit}
ungetregisterint(list,locpara.register64);
ungetregister(list,locpara.register64);
{$else cpu64bit}
getexplicitregister(list,locpara.registerlow);
getexplicitregister(list,locpara.registerhigh);
@ -1986,7 +1986,10 @@ finalization
end.
{
$Log$
Revision 1.141 2003-12-21 19:42:42 florian
Revision 1.142 2003-12-22 19:00:17 florian
* fixed some x86-64 issues
Revision 1.141 2003/12/21 19:42:42 florian
* fixed ppc inlining stuff
* fixed wrong unit writing
+ added some sse stuff

View File

@ -31,9 +31,9 @@ interface
globtype,
cpubase,cgbase,
aasmbase,aasmtai,aasmcpu,
symconst,symbase,symdef,symsym,symtype,symtable,
symconst,symbase,symdef,symsym,symtype,symtable
{$ifndef cpu64bit}
cg64f32
,cg64f32
{$endif cpu64bit}
;
@ -501,7 +501,7 @@ implementation
else
begin
location_release(list,l);
hregister:=cg.getregisterint(list,OS_INT);
hregister:=cg.getintregister(list,OS_INT);
end;
{ load value in low register }
case l.loc of
@ -543,7 +543,7 @@ implementation
else
begin
location_release(list,l);
hregister:=cg.getregisterint(list,OS_INT);
hregister:=cg.getintregister(list,OS_INT);
end;
end;
hregister:=cg.makeregsize(hregister,dst_size);
@ -2001,7 +2001,10 @@ implementation
end.
{
$Log$
Revision 1.174 2003-12-07 16:28:30 jonas
Revision 1.175 2003-12-22 19:00:17 florian
* fixed some x86-64 issues
Revision 1.174 2003/12/07 16:28:30 jonas
* fixed typo found by Charlie
Revision 1.173 2003/12/06 01:15:22 florian

View File

@ -29,7 +29,7 @@ unit cgcpu;
interface
uses
cginfo,cgbase,cgobj,cg64f64,cgx86,
cgbase,cgobj,cg64f64,cgx86,
aasmbase,aasmtai,aasmcpu,
cpubase,cpuinfo,cpupara,
node,symconst;
@ -192,7 +192,10 @@ begin
end.
{
$Log$
Revision 1.5 2003-09-25 13:13:32 florian
Revision 1.6 2003-12-22 19:00:17 florian
* fixed some x86-64 issues
Revision 1.5 2003/09/25 13:13:32 florian
* more x86-64 fixes
Revision 1.4 2003/04/30 15:45:35 florian

View File

@ -51,31 +51,8 @@ const
*****************************************************************************}
const
firstsaveintreg = RS_RAX;
lastsaveintreg = RS_R15;
firstsavefpureg = RS_INVALID;
lastsavefpureg = RS_INVALID;
firstsavemmreg = RS_MM0;
lastsavemmreg = RS_MM15;
general_registers = [RS_EAX,RS_EBX,RS_ECX,RS_EDX];
general_superregisters = [RS_RAX,RS_RBX,RS_RCX,RS_RDX];
usableregsint = [first_int_imreg..last_int_imreg];
c_countusableregsint = 4;
maxaddrregs = 0;
usableregsaddr = [];
c_countusableregsaddr = 0;
maxvarregs = 4;
varregs : array[1..maxvarregs] of tsuperregister =
(RS_EBX,RS_EDX,RS_ECX,RS_EAX);
maxfpuvarregs = 8;
fpuvarregs : Array [1..maxfpuvarregs] of Tsuperregister =
(RS_MM8,RS_MM9,RS_MM10,RS_MM11,RS_MM12,RS_MM13,RS_MM14,RS_MM15);
{*****************************************************************************
GDB Information
*****************************************************************************}
@ -112,7 +89,7 @@ const
RS_STACK_POINTER_REG = RS_RSP;
NR_STACK_POINTER_REG = NR_RSP;
{# Frame pointer register }
RS_FRAME_POINTER_REG = RS_EBP;
RS_FRAME_POINTER_REG = RS_RBP;
NR_FRAME_POINTER_REG = NR_RBP;
{ Register for addressing absolute data in a position independant way,
such as in PIC code. The exact meaning is ABI specific. For
@ -158,7 +135,10 @@ const
{
$Log$
Revision 1.8 2003-09-25 13:13:32 florian
Revision 1.9 2003-12-22 19:00:17 florian
* fixed some x86-64 issues
Revision 1.8 2003/09/25 13:13:32 florian
* more x86-64 fixes
Revision 1.7 2003/09/24 17:12:02 florian

View File

@ -49,7 +49,8 @@ Type
ts32real = single;
ts64real = double;
ts80real = extended;
ts64comp = extended;
ts128real = type extended;
ts64comp = type extended;
pbestreal=^bestreal;
@ -106,7 +107,10 @@ Implementation
end.
{
$Log$
Revision 1.8 2003-12-20 12:38:51 florian
Revision 1.9 2003-12-22 19:00:17 florian
* fixed some x86-64 issues
Revision 1.8 2003/12/20 12:38:51 florian
* some x86-64 compilation fixe
Revision 1.7 2003/09/24 17:12:02 florian