mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-12 04:26:13 +02:00
* fixed some x86-64 issues
This commit is contained in:
parent
1ff6fd5e6a
commit
6170faf334
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user