mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-06-17 19:58:41 +02:00
* various fixes, mostly changing the names of the modifies registers to
upper case since that seems to be required by the compiler
This commit is contained in:
parent
18b102ce95
commit
3a23eefecc
@ -93,9 +93,9 @@
|
|||||||
asm
|
asm
|
||||||
fctiwz fr1,fr1
|
fctiwz fr1,fr1
|
||||||
stfd fr1,temp.d
|
stfd fr1,temp.d
|
||||||
lwz r3,temp.l2
|
lwz r3,temp.l1
|
||||||
// !!!! fix int64 result
|
lwz r4,temp.l2
|
||||||
end ['r3','f1'];
|
end ['R3','F1'];
|
||||||
|
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_ROUND}
|
{$define FPC_SYSTEM_HAS_ROUND}
|
||||||
@ -113,8 +113,9 @@
|
|||||||
asm
|
asm
|
||||||
fctiw fr1,fr1
|
fctiw fr1,fr1
|
||||||
stfd fr1,temp.d
|
stfd fr1,temp.d
|
||||||
lwz r3,temp.l2
|
lwz r3,temp.l1
|
||||||
end ['r3','f1'];
|
lwz r4,temp.l2
|
||||||
|
end ['R3','F1'];
|
||||||
|
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_POWER}
|
{$define FPC_SYSTEM_HAS_POWER}
|
||||||
@ -207,8 +208,8 @@
|
|||||||
****************************************************************************}
|
****************************************************************************}
|
||||||
|
|
||||||
const
|
const
|
||||||
longint_to_real_helper: int64 = 0x4330000080000000;
|
longint_to_real_helper: int64 = $4330000080000000;
|
||||||
cardinal_to_real_helper: int64 = 0x430000000000000;
|
cardinal_to_real_helper: int64 = $430000000000000;
|
||||||
int_to_real_factor: double = double(high(cardinal))+1.0;
|
int_to_real_factor: double = double(high(cardinal))+1.0;
|
||||||
|
|
||||||
function fpc_int64_to_double(i: int64): double; compilerproc;
|
function fpc_int64_to_double(i: int64): double; compilerproc;
|
||||||
@ -239,7 +240,7 @@ asm
|
|||||||
lfd fr2,int_to_real_factor@l(r3)
|
lfd fr2,int_to_real_factor@l(r3)
|
||||||
fsub fr3,fr3,fr1
|
fsub fr3,fr3,fr1
|
||||||
fmadd fr1,fr0,fr2,fr3
|
fmadd fr1,fr0,fr2,fr3
|
||||||
end ['r0','r3','r4','f0','f1','f2','f3'];
|
end ['R0','R3','R4','F0','F1','F2','F3'];
|
||||||
|
|
||||||
|
|
||||||
function fpc_qword_to_double(q: qword): double; compilerproc;
|
function fpc_qword_to_double(q: qword): double; compilerproc;
|
||||||
@ -267,13 +268,17 @@ asm
|
|||||||
lfd fr2,int_to_real_factor@l(r3)
|
lfd fr2,int_to_real_factor@l(r3)
|
||||||
fsub fr3,fr3,fr1
|
fsub fr3,fr3,fr1
|
||||||
fmadd fr1,fr0,fr2,fr3
|
fmadd fr1,fr0,fr2,fr3
|
||||||
end ['r0','r3','f0','f1','f2','f3'];
|
end ['R0','R3','F0','F1','F2','F3'];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.7 2002-07-31 16:58:12 jonas
|
Revision 1.8 2002-08-10 17:14:36 jonas
|
||||||
|
* various fixes, mostly changing the names of the modifies registers to
|
||||||
|
upper case since that seems to be required by the compiler
|
||||||
|
|
||||||
|
Revision 1.7 2002/07/31 16:58:12 jonas
|
||||||
* fixed conversion from int64/qword to double errors
|
* fixed conversion from int64/qword to double errors
|
||||||
|
|
||||||
Revision 1.6 2002/07/29 21:28:17 florian
|
Revision 1.6 2002/07/29 21:28:17 florian
|
||||||
|
@ -123,14 +123,14 @@ L8BytesAligned:
|
|||||||
sub r4,r4,r10
|
sub r4,r4,r10
|
||||||
|
|
||||||
LMove32ByteLoop:
|
LMove32ByteLoop:
|
||||||
lfdux f13,r3,r10
|
|
||||||
lfdux f12,r3,r10
|
|
||||||
lfdux f11,r3,r10
|
|
||||||
lfdux f0,r3,r10
|
lfdux f0,r3,r10
|
||||||
stfdux f13,r4,r10
|
lfdux f1,r3,r10
|
||||||
stfdux f12,r4,r10
|
lfdux f2,r3,r10
|
||||||
stfdux f11,r4,r10
|
lfdux f3,r3,r10
|
||||||
stfdux f0,r4,r10
|
stfdux f0,r4,r10
|
||||||
|
stfdux f1,r4,r10
|
||||||
|
stfdux f2,r4,r10
|
||||||
|
stfdux f3,r4,r10
|
||||||
bdnz LMove32ByteLoop
|
bdnz LMove32ByteLoop
|
||||||
|
|
||||||
{ cr0*4+eq is true if "count and 31" = 0 }
|
{ cr0*4+eq is true if "count and 31" = 0 }
|
||||||
@ -310,9 +310,10 @@ LFillCharDone:
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_FILLWORD}
|
{$define FPC_SYSTEM_HAS_FILLDWORD}
|
||||||
procedure fillword(var x;count : longint;value : word);
|
procedure filldword(var x;count : longint;value : dword);
|
||||||
begin
|
assembler;
|
||||||
|
asm
|
||||||
{ registers:
|
{ registers:
|
||||||
r3 x
|
r3 x
|
||||||
r4 count
|
r4 count
|
||||||
@ -327,17 +328,14 @@ begin
|
|||||||
}
|
}
|
||||||
asm
|
asm
|
||||||
cmpwi cr0,r3,0
|
cmpwi cr0,r3,0
|
||||||
andi r17,r4,$3
|
mtctr r4
|
||||||
srwi r18,r4,1 //r18:=count div 2
|
subi r3,r3,4
|
||||||
mr r13,r3
|
ble .FillWordEnd //if count<=0 Then Exit
|
||||||
li r14,4
|
|
||||||
ble .FillWordEnd //if count<=0 Then Exit
|
|
||||||
.FillWordLoop:
|
.FillWordLoop:
|
||||||
stwux r5,r13,r14
|
stwu r5,4(r3)
|
||||||
bdnz .FillWordLoop
|
bdnz .FillWordLoop
|
||||||
.FillWordEnd:
|
.FillWordEnd:
|
||||||
end ['r13','r14','ctr']
|
end ['R3','R4','R5','CTR'];
|
||||||
end;
|
|
||||||
|
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_INDEXBYTE}
|
{$define FPC_SYSTEM_HAS_INDEXBYTE}
|
||||||
@ -362,7 +360,7 @@ LIndexByteLoop:
|
|||||||
bne LIndexByteDone
|
bne LIndexByteDone
|
||||||
sub r3,r10,r0
|
sub r3,r10,r0
|
||||||
LIndexByteDone:
|
LIndexByteDone:
|
||||||
end ['r0','r3','r9','r10','cr0','ctr'];
|
end ['R0','R3','R9','R10','CR0','CTR'];
|
||||||
|
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_INDEXWORD}
|
{$define FPC_SYSTEM_HAS_INDEXWORD}
|
||||||
@ -387,7 +385,7 @@ LIndexWordLoop:
|
|||||||
bne LIndexWordDone
|
bne LIndexWordDone
|
||||||
sub r3,r10,r0
|
sub r3,r10,r0
|
||||||
LIndexWordDone:
|
LIndexWordDone:
|
||||||
end ['r0','r3','r9','r10','cr0','ctr'];
|
end ['R0','R3','R9','R10','CR0','CTR'];
|
||||||
|
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_INDEXDWORD}
|
{$define FPC_SYSTEM_HAS_INDEXDWORD}
|
||||||
@ -412,7 +410,7 @@ LIndexDWordLoop:
|
|||||||
bne LIndexDWordDone
|
bne LIndexDWordDone
|
||||||
sub r3,r10,r0
|
sub r3,r10,r0
|
||||||
LIndexDWordDone:
|
LIndexDWordDone:
|
||||||
end ['r0','r3','r9','r10','cr0','ctr'];
|
end ['R0','R3','R9','R10','CR0','CTR'];
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_COMPAREBYTE}
|
{$define FPC_SYSTEM_HAS_COMPAREBYTE}
|
||||||
function CompareByte(var buf1,buf2;len:longint):longint; assembler;
|
function CompareByte(var buf1,buf2;len:longint):longint; assembler;
|
||||||
@ -438,7 +436,7 @@ LCompByteLoop:
|
|||||||
{ if chars not equal or at the end, we're ready }
|
{ if chars not equal or at the end, we're ready }
|
||||||
bdnzt cr0*4+eq, LCompByteLoop
|
bdnzt cr0*4+eq, LCompByteLoop
|
||||||
LCompByteDone:
|
LCompByteDone:
|
||||||
end ['r0','r3','r4','r9','r10','cr0','ctr'];
|
end ['R0','R3','R4','R9','R10','CR0','CTR'];
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_COMPAREWORD}
|
{$define FPC_SYSTEM_HAS_COMPAREWORD}
|
||||||
function CompareWord(var buf1,buf2;len:longint):longint; assembler;
|
function CompareWord(var buf1,buf2;len:longint):longint; assembler;
|
||||||
@ -464,7 +462,7 @@ LCompWordLoop:
|
|||||||
{ if chars not equal or at the end, we're ready }
|
{ if chars not equal or at the end, we're ready }
|
||||||
bdnzt cr0*4+eq, LCompWordLoop
|
bdnzt cr0*4+eq, LCompWordLoop
|
||||||
LCompWordDone:
|
LCompWordDone:
|
||||||
end ['r0','r3','r4','r9','r10','cr0','ctr'];
|
end ['R0','R3','R4','R9','R10','CR0','CTR'];
|
||||||
|
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_COMPAREDWORD}
|
{$define FPC_SYSTEM_HAS_COMPAREDWORD}
|
||||||
@ -491,7 +489,7 @@ LCompDWordLoop:
|
|||||||
{ if chars not equal or at the end, we're ready }
|
{ if chars not equal or at the end, we're ready }
|
||||||
bdnzt cr0*4+eq, LCompDWordLoop
|
bdnzt cr0*4+eq, LCompDWordLoop
|
||||||
LCompDWordDone:
|
LCompDWordDone:
|
||||||
end ['r0','r3','r4','r9','r10','cr0','ctr'];
|
end ['R0','R3','R4','R9','R10','CR0','CTR'];
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_INDEXCHAR0}
|
{$define FPC_SYSTEM_HAS_INDEXCHAR0}
|
||||||
function IndexChar0(var buf;len:longint;b:Char):longint; assembler;
|
function IndexChar0(var buf;len:longint;b:Char):longint; assembler;
|
||||||
@ -519,7 +517,7 @@ LIndexChar0Loop:
|
|||||||
bne LIndexChar0Done
|
bne LIndexChar0Done
|
||||||
sub r3,r9,r0
|
sub r3,r9,r0
|
||||||
LIndexChar0Done:
|
LIndexChar0Done:
|
||||||
end ['r0','r3','r4','r9','r10','cr0','ctr'];
|
end ['R0','R3','R4','R9','R10','CR0','CTR'];
|
||||||
|
|
||||||
|
|
||||||
{****************************************************************************
|
{****************************************************************************
|
||||||
@ -627,7 +625,7 @@ LShortStrCopyLoop:
|
|||||||
lbzu r0,1(r5)
|
lbzu r0,1(r5)
|
||||||
stbu r0,1(r3)
|
stbu r0,1(r3)
|
||||||
bdnz LShortStrCopyLoop
|
bdnz LShortStrCopyLoop
|
||||||
end ['r0','r3','r4','r5','r10','cr0','ctr'];
|
end ['R0','R3','R4','R5','R10','CR0','CTR'];
|
||||||
|
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_FPC_SHORTSTR_COPY}
|
{$define FPC_SYSTEM_HAS_FPC_SHORTSTR_COPY}
|
||||||
@ -655,7 +653,7 @@ LShortStrCopyLoop:
|
|||||||
lbzu r0,1(r4)
|
lbzu r0,1(r4)
|
||||||
stbu r0,1(r5)
|
stbu r0,1(r5)
|
||||||
bdnz LShortStrCopyLoop
|
bdnz LShortStrCopyLoop
|
||||||
end ['r0','r3','r4','r5','r10','cr0','ctr'];
|
end ['R0','R3','R4','R5','R10','CR0','CTR'];
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_FPC_SHORTSTR_CONCAT}
|
{$define FPC_SYSTEM_HAS_FPC_SHORTSTR_CONCAT}
|
||||||
function fpc_shortstr_concat(const s1,s2: shortstring): shortstring; compilerproc;
|
function fpc_shortstr_concat(const s1,s2: shortstring): shortstring; compilerproc;
|
||||||
@ -683,7 +681,7 @@ LShortStrConcatLoop:
|
|||||||
lbzu r10,1(r4)
|
lbzu r10,1(r4)
|
||||||
stbu r10,1(r3)
|
stbu r10,1(r3)
|
||||||
bdnz LShortStrConcatLoop
|
bdnz LShortStrConcatLoop
|
||||||
end ['r3','r4','r8','r9','r10','ctr'];
|
end ['R3','R4','R8','R9','R10','CTR'];
|
||||||
|
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_FPC_SHORTSTR_COMPARE}
|
{$define FPC_SYSTEM_HAS_FPC_SHORTSTR_COMPARE}
|
||||||
@ -738,7 +736,7 @@ LShortStrCompareLen:
|
|||||||
{ also return result in flags, maybe we can use this in the CG }
|
{ also return result in flags, maybe we can use this in the CG }
|
||||||
mr. r3,r0
|
mr. r3,r0
|
||||||
LShortStrCompareDone:
|
LShortStrCompareDone:
|
||||||
end ['r0','r3','r4','r8','r9','r10','cr0','cr1','ctr'];
|
end ['R0','R3','R4','R8','R9','R10','CR0','CR1','CTR'];
|
||||||
|
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_FPC_PCHAR_TO_SHORTSTR}
|
{$define FPC_SYSTEM_HAS_FPC_PCHAR_TO_SHORTSTR}
|
||||||
@ -757,7 +755,7 @@ function get_frame:longint;assembler;
|
|||||||
asm
|
asm
|
||||||
{$warning FIX ME!}
|
{$warning FIX ME!}
|
||||||
// !!!!!!! depends on ABI !!!!!!!!
|
// !!!!!!! depends on ABI !!!!!!!!
|
||||||
end ['r3'];
|
end ['R3'];
|
||||||
|
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_GET_CALLER_ADDR}
|
{$define FPC_SYSTEM_HAS_GET_CALLER_ADDR}
|
||||||
@ -765,7 +763,7 @@ function get_caller_addr(framebp:longint):longint;assembler;
|
|||||||
asm
|
asm
|
||||||
{$warning FIX ME!}
|
{$warning FIX ME!}
|
||||||
// !!!!!!! depends on ABI !!!!!!!!
|
// !!!!!!! depends on ABI !!!!!!!!
|
||||||
end ['r3'];
|
end ['R3'];
|
||||||
|
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_GET_CALLER_FRAME}
|
{$define FPC_SYSTEM_HAS_GET_CALLER_FRAME}
|
||||||
@ -773,7 +771,7 @@ function get_caller_frame(framebp:longint):longint;assembler;
|
|||||||
asm
|
asm
|
||||||
{$warning FIX ME!}
|
{$warning FIX ME!}
|
||||||
// !!!!!!! depends on ABI !!!!!!!!
|
// !!!!!!! depends on ABI !!!!!!!!
|
||||||
end ['r3'];
|
end ['R3'];
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_ABS_LONGINT}
|
{$define FPC_SYSTEM_HAS_ABS_LONGINT}
|
||||||
function abs(l:longint):longint; assembler;[internconst:in_const_abs];
|
function abs(l:longint):longint; assembler;[internconst:in_const_abs];
|
||||||
@ -781,7 +779,7 @@ asm
|
|||||||
srawi r0,r3,31
|
srawi r0,r3,31
|
||||||
add r3,r0,r3
|
add r3,r0,r3
|
||||||
xor r3,r3,r0
|
xor r3,r3,r0
|
||||||
end ['r0','r3'];
|
end ['R0','R3'];
|
||||||
|
|
||||||
|
|
||||||
{****************************************************************************
|
{****************************************************************************
|
||||||
@ -792,21 +790,21 @@ end ['r0','r3'];
|
|||||||
function odd(l:longint):boolean;assembler;[internconst:in_const_odd];
|
function odd(l:longint):boolean;assembler;[internconst:in_const_odd];
|
||||||
asm
|
asm
|
||||||
rlwinm r3,r3,0,31,31
|
rlwinm r3,r3,0,31,31
|
||||||
end ['r3'];
|
end ['R3'];
|
||||||
|
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_SQR_LONGINT}
|
{$define FPC_SYSTEM_HAS_SQR_LONGINT}
|
||||||
function sqr(l:longint):longint;assembler;[internconst:in_const_sqr];
|
function sqr(l:longint):longint;assembler;[internconst:in_const_sqr];
|
||||||
asm
|
asm
|
||||||
mullw r3,r3,r3
|
mullw r3,r3,r3
|
||||||
end ['r3'];
|
end ['R3'];
|
||||||
|
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_SPTR}
|
{$define FPC_SYSTEM_HAS_SPTR}
|
||||||
Function Sptr : Longint;assembler;
|
Function Sptr : Longint;assembler;
|
||||||
asm
|
asm
|
||||||
mr r3,sp
|
mr r3,sp
|
||||||
end ['r3'];
|
end ['R3'];
|
||||||
|
|
||||||
|
|
||||||
{****************************************************************************
|
{****************************************************************************
|
||||||
@ -838,7 +836,7 @@ LDecLockedLoop:
|
|||||||
stw r10,0,r3
|
stw r10,0,r3
|
||||||
{$endif MT}
|
{$endif MT}
|
||||||
mr. r3,r10
|
mr. r3,r10
|
||||||
end ['r3','r10'];
|
end ['R3','R10'];
|
||||||
|
|
||||||
procedure inclocked(var l : longint);assembler;
|
procedure inclocked(var l : longint);assembler;
|
||||||
asm
|
asm
|
||||||
@ -853,12 +851,16 @@ LIncLockedLoop:
|
|||||||
addi r10,r10,1
|
addi r10,r10,1
|
||||||
stw r10,0,r3
|
stw r10,0,r3
|
||||||
{$endif MT}
|
{$endif MT}
|
||||||
end ['r3','r10'];
|
end ['R3','R10'];
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.11 2002-07-30 17:29:53 florian
|
Revision 1.12 2002-08-10 17:14:36 jonas
|
||||||
|
* various fixes, mostly changing the names of the modifies registers to
|
||||||
|
upper case since that seems to be required by the compiler
|
||||||
|
|
||||||
|
Revision 1.11 2002/07/30 17:29:53 florian
|
||||||
+ dummy setjmp and longjmp added
|
+ dummy setjmp and longjmp added
|
||||||
+ dummy implemtation of the destructor helper
|
+ dummy implemtation of the destructor helper
|
||||||
|
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
**********************************************************************}
|
**********************************************************************}
|
||||||
|
|
||||||
|
{$define FPC_SYSTEM_HAS_FPC_SET_LOAD_SMALL}
|
||||||
function fpc_set_load_small(l: fpc_small_set): fpc_normal_set;assembler;[public,alias:'FPC_SET_LOAD_SMALL']; compilerproc;
|
function fpc_set_load_small(l: fpc_small_set): fpc_normal_set;assembler;[public,alias:'FPC_SET_LOAD_SMALL']; compilerproc;
|
||||||
{
|
{
|
||||||
load a normal set p from a smallset l
|
load a normal set p from a smallset l
|
||||||
@ -31,9 +32,10 @@ asm
|
|||||||
stw r0,20(r3)
|
stw r0,20(r3)
|
||||||
stw r0,24(r3)
|
stw r0,24(r3)
|
||||||
stw r0,28(r3)
|
stw r0,28(r3)
|
||||||
end ['r0'];
|
end ['R0'];
|
||||||
|
|
||||||
|
|
||||||
|
{$define FPC_SYSTEM_HAS_FPC_SET_CREATE_ELEMENT}
|
||||||
{ checked 2001/09/28 (JM) }
|
{ checked 2001/09/28 (JM) }
|
||||||
function fpc_set_create_element(b : byte): fpc_normal_set;assembler;[public,alias:'FPC_SET_CREATE_ELEMENT']; compilerproc;
|
function fpc_set_create_element(b : byte): fpc_normal_set;assembler;[public,alias:'FPC_SET_CREATE_ELEMENT']; compilerproc;
|
||||||
{
|
{
|
||||||
@ -64,8 +66,10 @@ asm
|
|||||||
|
|
||||||
// store the result
|
// store the result
|
||||||
stwx r0,r3,r4
|
stwx r0,r3,r4
|
||||||
end ['r0','r4','r10'];
|
end ['R0','R4','R10'];
|
||||||
|
|
||||||
|
|
||||||
|
{$define FPC_SYSTEM_HAS_FPC_SET_SET_BYTE}
|
||||||
function fpc_set_set_byte(const source: fpc_normal_set; b : byte): fpc_normal_set;assembler; compilerproc;
|
function fpc_set_set_byte(const source: fpc_normal_set; b : byte): fpc_normal_set;assembler; compilerproc;
|
||||||
{
|
{
|
||||||
add the element b to the set pointed by p
|
add the element b to the set pointed by p
|
||||||
@ -91,14 +95,15 @@ Lset_set_byte_copy:
|
|||||||
li r0,1
|
li r0,1
|
||||||
// generate bit which has to be inserted
|
// generate bit which has to be inserted
|
||||||
// (can't use rlwimi, since that one only works for constants)
|
// (can't use rlwimi, since that one only works for constants)
|
||||||
rlwnm r5,r0,r5
|
slw r5,r0,r5
|
||||||
// insert it
|
// insert it
|
||||||
or r5,r4,r5
|
or r5,r4,r5
|
||||||
// store result
|
// store result
|
||||||
stw r5,(r3)
|
stw r5,(r3)
|
||||||
end ['r0','r3','r4','r5','ctr'];
|
end ['R0','R3','R4','R5','CTR'];
|
||||||
|
|
||||||
|
|
||||||
|
{$define FPC_SYSTEM_HAS_FPC_SET_UNSET_BYTE}
|
||||||
function fpc_set_unset_byte(const source: fpc_normal_set; b : byte): fpc_normal_set;assembler; compilerproc;
|
function fpc_set_unset_byte(const source: fpc_normal_set; b : byte): fpc_normal_set;assembler; compilerproc;
|
||||||
{
|
{
|
||||||
suppresses the element b to the set pointed by p
|
suppresses the element b to the set pointed by p
|
||||||
@ -129,9 +134,10 @@ Lset_unset_byte_copy:
|
|||||||
andc r5,r4,r5
|
andc r5,r4,r5
|
||||||
// store result
|
// store result
|
||||||
stw r4,(r3)
|
stw r4,(r3)
|
||||||
end ['r0','r3','r4','r5','ctr'];
|
end ['R0','R3','R4','R5','CTR'];
|
||||||
|
|
||||||
|
|
||||||
|
{$define FPC_SYSTEM_HAS_FPC_SET_SET_RANGE}
|
||||||
function fpc_set_set_range(const orgset: fpc_normal_set; l,h : byte): fpc_normal_set;assembler; compilerproc;
|
function fpc_set_set_range(const orgset: fpc_normal_set; l,h : byte): fpc_normal_set;assembler; compilerproc;
|
||||||
{
|
{
|
||||||
on entry: result in r3, l in r4, h in r5
|
on entry: result in r3, l in r4, h in r5
|
||||||
@ -182,7 +188,7 @@ Lset_range_loop:
|
|||||||
Lset_range_hi: // in all cases, r3 here contains the address of
|
Lset_range_hi: // in all cases, r3 here contains the address of
|
||||||
// the longint which contains the hi bit and r4
|
// the longint which contains the hi bit and r4
|
||||||
// contains this longint
|
// contains this longint
|
||||||
slw r9,r10,r6 // r7 := bitmask shl (31 - (hi mod 32)) =
|
slw r9,r10,r6 // r9 := bitmask shl (31 - (hi mod 32)) =
|
||||||
// bitmask with bits higher than hi cleared
|
// bitmask with bits higher than hi cleared
|
||||||
// (r8 = $0xffffffff unless the first beq was
|
// (r8 = $0xffffffff unless the first beq was
|
||||||
// taken)
|
// taken)
|
||||||
@ -190,7 +196,7 @@ Lset_range_hi: // in all cases, r3 here contains the address of
|
|||||||
or r5,r5,r10 // and combine with existing set
|
or r5,r5,r10 // and combine with existing set
|
||||||
stw r5,(r3) // store to set
|
stw r5,(r3) // store to set
|
||||||
Lset_range_exit:
|
Lset_range_exit:
|
||||||
end ['r0','r3','r4','r5','r6','r9','r10','cr0','ctr'];
|
end ['R0','R3','R4','R5','R6','R9','R10','CR0','CTR'];
|
||||||
|
|
||||||
|
|
||||||
{$define FPC_SYSTEM_HAS_FPC_SET_IN_BYTE}
|
{$define FPC_SYSTEM_HAS_FPC_SET_IN_BYTE}
|
||||||
@ -206,15 +212,17 @@ asm
|
|||||||
rlwinm r0,r4,31-3+1,3,31-2
|
rlwinm r0,r4,31-3+1,3,31-2
|
||||||
// load dword in which the bit has to be tested
|
// load dword in which the bit has to be tested
|
||||||
lwzx r3,r3,r0
|
lwzx r3,r3,r0
|
||||||
|
|
||||||
li r0,1
|
li r0,1
|
||||||
// generate bit which has to be tested
|
// generate bit which has to be tested
|
||||||
rwlwnm r4,r0,r4,0,31
|
rwlwnm r4,r0,r4,0,31
|
||||||
// test it
|
// test it
|
||||||
and. r3,r3,r4
|
and. r3,r3,r4
|
||||||
end ['r0','r3','r4','cr0'];
|
end ['R0','R3','R4','CR0'];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{$define FPC_SYSTEM_HAS_FPC_SET_ADD_SETS}
|
||||||
function fpc_set_add_sets(const set1,set2: fpc_normal_set): fpc_normal_set;assembler;[public,alias:'FPC_SET_ADD_SETS']; compilerproc;
|
function fpc_set_add_sets(const set1,set2: fpc_normal_set): fpc_normal_set;assembler;[public,alias:'FPC_SET_ADD_SETS']; compilerproc;
|
||||||
{
|
{
|
||||||
adds set1 and set2 into set dest
|
adds set1 and set2 into set dest
|
||||||
@ -234,10 +242,10 @@ asm
|
|||||||
or r0,r0,r10
|
or r0,r0,r10
|
||||||
stwu r0,4(r3)
|
stwu r0,4(r3)
|
||||||
bdnz LMADDSETS1
|
bdnz LMADDSETS1
|
||||||
end ['r0','r3','r4','r5','r10','ctr'];
|
end ['R0','R3','R4','R5','R10','CTR'];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
{$define FPC_SYSTEM_HAS_FPC_SET_MUL_SETS}
|
||||||
function fpc_set_mul_sets(const set1,set2: fpc_normal_set): fpc_normal_set;assembler;[public,alias:'FPC_SET_MUL_SETS']; compilerproc;
|
function fpc_set_mul_sets(const set1,set2: fpc_normal_set): fpc_normal_set;assembler;[public,alias:'FPC_SET_MUL_SETS']; compilerproc;
|
||||||
{
|
{
|
||||||
multiplies (takes common elements of) set1 and set2 result put in dest
|
multiplies (takes common elements of) set1 and set2 result put in dest
|
||||||
@ -257,9 +265,10 @@ asm
|
|||||||
and r0,r0,r10
|
and r0,r0,r10
|
||||||
stwu r0,4(r3)
|
stwu r0,4(r3)
|
||||||
bdnz LMMULSETS1
|
bdnz LMMULSETS1
|
||||||
end ['r0','r3','r4','r5','r10','ctr'];
|
end ['R0','R3','R4','R5','R10','CTR'];
|
||||||
|
|
||||||
|
|
||||||
|
{$define FPC_SYSTEM_HAS_FPC_SET_SUB_SETS}
|
||||||
function fpc_set_sub_sets(const set1,set2: fpc_normal_set): fpc_normal_set;assembler;[public,alias:'FPC_SET_SUB_SETS']; compilerproc;
|
function fpc_set_sub_sets(const set1,set2: fpc_normal_set): fpc_normal_set;assembler;[public,alias:'FPC_SET_SUB_SETS']; compilerproc;
|
||||||
{
|
{
|
||||||
computes the diff from set1 to set2 result in dest
|
computes the diff from set1 to set2 result in dest
|
||||||
@ -279,9 +288,10 @@ asm
|
|||||||
andc r0,r0,r10
|
andc r0,r0,r10
|
||||||
stwu r0,4(r3)
|
stwu r0,4(r3)
|
||||||
bdnz LMSUBSETS1
|
bdnz LMSUBSETS1
|
||||||
end ['r0','r3','r4','r5','r10','ctr'];
|
end ['R0','R3','R4','R5','R10','CTR'];
|
||||||
|
|
||||||
|
|
||||||
|
{$define FPC_SYSTEM_HAS_FPC_SET_SYMDIF_SETS}
|
||||||
function fpc_set_symdif_sets(const set1,set2: fpc_normal_set): fpc_normal_set;assembler;[public,alias:'FPC_SET_SYMDIF_SETS']; compilerproc;
|
function fpc_set_symdif_sets(const set1,set2: fpc_normal_set): fpc_normal_set;assembler;[public,alias:'FPC_SET_SYMDIF_SETS']; compilerproc;
|
||||||
{
|
{
|
||||||
computes the symetric diff from set1 to set2 result in dest
|
computes the symetric diff from set1 to set2 result in dest
|
||||||
@ -301,9 +311,10 @@ asm
|
|||||||
xor r0,r0,r10
|
xor r0,r0,r10
|
||||||
stwu r0,4(r3)
|
stwu r0,4(r3)
|
||||||
bdnz LMSYMDIFSETS1
|
bdnz LMSYMDIFSETS1
|
||||||
end ['r0','r3','r4','r5','r10','ctr'];
|
end ['R0','R3','R4','R5','R10','CTR'];
|
||||||
|
|
||||||
|
|
||||||
|
{$define FPC_SYSTEM_HAS_FPC_SET_COMP_SETS}
|
||||||
function fpc_set_comp_sets(const set1,set2: fpc_normal_set): boolean;assembler;[public,alias:'FPC_SET_COMP_SETS']; compilerproc;
|
function fpc_set_comp_sets(const set1,set2: fpc_normal_set): boolean;assembler;[public,alias:'FPC_SET_COMP_SETS']; compilerproc;
|
||||||
{
|
{
|
||||||
compares set1 and set2 zeroflag is set if they are equal
|
compares set1 and set2 zeroflag is set if they are equal
|
||||||
@ -321,8 +332,10 @@ asm
|
|||||||
bdnzt cr0*4+eq,LMCOMPSETS1
|
bdnzt cr0*4+eq,LMCOMPSETS1
|
||||||
cntlzw r3,r0
|
cntlzw r3,r0
|
||||||
srwi. r3,r3,31
|
srwi. r3,r3,31
|
||||||
end ['r0','r3','r4','r10','cr0','ctr'];
|
end ['R0','R3','R4','R10','CR0','CTR'];
|
||||||
|
|
||||||
|
|
||||||
|
{$define FPC_SYSTEM_HAS_FPC_SET_CONTAINS_SET}
|
||||||
function fpc_set_contains_sets(const set1,set2: fpc_normal_set): boolean;assembler;[public,alias:'FPC_SET_CONTAINS_SETS']; compilerproc;
|
function fpc_set_contains_sets(const set1,set2: fpc_normal_set): boolean;assembler;[public,alias:'FPC_SET_CONTAINS_SETS']; compilerproc;
|
||||||
{
|
{
|
||||||
on exit, zero flag is set if set1 <= set2 (set2 contains set1)
|
on exit, zero flag is set if set1 <= set2 (set2 contains set1)
|
||||||
@ -341,7 +354,7 @@ asm
|
|||||||
bdnzt cr0*4+eq,LMCONTAINSSETS1
|
bdnzt cr0*4+eq,LMCONTAINSSETS1
|
||||||
cntlzw r3,r0
|
cntlzw r3,r0
|
||||||
srwi. r3,r3,31
|
srwi. r3,r3,31
|
||||||
end ['r0','r3','r4','r10','cr0','ctr'];
|
end ['R0','R3','R4','R10','CR0','CTR'];
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@ -510,7 +523,11 @@ end;
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.11 2002-07-28 20:43:49 florian
|
Revision 1.12 2002-08-10 17:14:36 jonas
|
||||||
|
* various fixes, mostly changing the names of the modifies registers to
|
||||||
|
upper case since that seems to be required by the compiler
|
||||||
|
|
||||||
|
Revision 1.11 2002/07/28 20:43:49 florian
|
||||||
* several fixes for linux/powerpc
|
* several fixes for linux/powerpc
|
||||||
* several fixes to MT
|
* several fixes to MT
|
||||||
|
|
||||||
|
@ -18,15 +18,21 @@
|
|||||||
{ the necessary code can be copied from the linux kernel sources }
|
{ the necessary code can be copied from the linux kernel sources }
|
||||||
function setjmp(var S : jmp_buf) : longint;assembler;
|
function setjmp(var S : jmp_buf) : longint;assembler;
|
||||||
asm
|
asm
|
||||||
|
{$warning FIXME!!!!}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure longjmp(var S : jmp_buf;value : longint);assembler;
|
procedure longjmp(var S : jmp_buf;value : longint);assembler;
|
||||||
asm
|
asm
|
||||||
|
{$warning FIXME!!!!}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.2 2002-07-30 17:29:53 florian
|
Revision 1.3 2002-08-10 17:14:36 jonas
|
||||||
|
* various fixes, mostly changing the names of the modifies registers to
|
||||||
|
upper case since that seems to be required by the compiler
|
||||||
|
|
||||||
|
Revision 1.2 2002/07/30 17:29:53 florian
|
||||||
+ dummy setjmp and longjmp added
|
+ dummy setjmp and longjmp added
|
||||||
+ dummy implemtation of the destructor helper
|
+ dummy implemtation of the destructor helper
|
||||||
|
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
|
|
||||||
type
|
type
|
||||||
jmp_buf = record
|
jmp_buf = record
|
||||||
|
{$warning FIXME!!!!}
|
||||||
end;
|
end;
|
||||||
pjmp_buf = ^jmp_buf;
|
pjmp_buf = ^jmp_buf;
|
||||||
|
|
||||||
@ -25,7 +26,11 @@ procedure longjmp(var S : jmp_buf;value : longint);
|
|||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.3 2002-07-26 22:46:17 florian
|
Revision 1.4 2002-08-10 17:14:36 jonas
|
||||||
|
* various fixes, mostly changing the names of the modifies registers to
|
||||||
|
upper case since that seems to be required by the compiler
|
||||||
|
|
||||||
|
Revision 1.3 2002/07/26 22:46:17 florian
|
||||||
* interface of system unit for Linux/PowerPC compiles
|
* interface of system unit for Linux/PowerPC compiles
|
||||||
|
|
||||||
Revision 1.2 2002/07/26 22:08:38 florian
|
Revision 1.2 2002/07/26 22:08:38 florian
|
||||||
|
@ -79,7 +79,7 @@ LStrCopyWrapUpLoop:
|
|||||||
bge LStrCopyWrapUpLoop
|
bge LStrCopyWrapUpLoop
|
||||||
LStrCopyDone:
|
LStrCopyDone:
|
||||||
{ r3 still contains dest here }
|
{ r3 still contains dest here }
|
||||||
end ['r4','r7','r8','r0','r9','r10','cr0','ctr'];
|
end ['R4','R7','R8','R0','R9','R10','CR0','CTR'];
|
||||||
|
|
||||||
|
|
||||||
function strecopy(dest,source : pchar) : pchar;assembler;
|
function strecopy(dest,source : pchar) : pchar;assembler;
|
||||||
@ -136,7 +136,7 @@ LStrCopyWrapUpLoop:
|
|||||||
bge LStrCopyWrapUpLoop
|
bge LStrCopyWrapUpLoop
|
||||||
LStrCopyDone:
|
LStrCopyDone:
|
||||||
{ r3 contains new dest here }
|
{ r3 contains new dest here }
|
||||||
end ['r3','r4','r8','r0','r3','r10','cr0','ctr'];
|
end ['R3','R4','R8','R0','R3','R10','CR0','CTR'];
|
||||||
|
|
||||||
|
|
||||||
function strlcopy(dest,source : pchar;maxlen : longint) : pchar;assembler;
|
function strlcopy(dest,source : pchar;maxlen : longint) : pchar;assembler;
|
||||||
@ -159,7 +159,7 @@ LStrlCopyLoop:
|
|||||||
li r10,0
|
li r10,0
|
||||||
stb r10,1(r0)
|
stb r10,1(r0)
|
||||||
LStrlCopyDone:
|
LStrlCopyDone:
|
||||||
end ['r0','r4','r30','cr0'];
|
end ['R0','R4','R10','CR0'];
|
||||||
|
|
||||||
|
|
||||||
function strlen(p : pchar) : longint;assembler;
|
function strlen(p : pchar) : longint;assembler;
|
||||||
@ -181,7 +181,7 @@ LStrEndLoop:
|
|||||||
cmpli r0,0
|
cmpli r0,0
|
||||||
bne LStrEndLoop
|
bne LStrEndLoop
|
||||||
LStrEndDone:
|
LStrEndDone:
|
||||||
end ['r0','r3','r4','cr0'];
|
end ['R0','R3','R4','CR0'];
|
||||||
|
|
||||||
|
|
||||||
function strcomp(str1,str2 : pchar) : longint;assembler;
|
function strcomp(str1,str2 : pchar) : longint;assembler;
|
||||||
@ -207,7 +207,7 @@ LStrCompLoop:
|
|||||||
{ otherwise loop }
|
{ otherwise loop }
|
||||||
bne cr1,LStrCompLoop
|
bne cr1,LStrCompLoop
|
||||||
LStrCompDone:
|
LStrCompDone:
|
||||||
end ['r0','r3','r4','r9','r10','cr0','cr1'];
|
end ['R0','R3','R4','R9','R10','CR0','CR1'];
|
||||||
|
|
||||||
|
|
||||||
function strlcomp(str1,str2 : pchar;l : longint) : longint;assembler;
|
function strlcomp(str1,str2 : pchar;l : longint) : longint;assembler;
|
||||||
@ -240,7 +240,7 @@ LStrlCompLoop:
|
|||||||
{ otherwise loop (if ctr <> 0) }
|
{ otherwise loop (if ctr <> 0) }
|
||||||
bdnzf cr1*4+eq,LStrlCompLoop
|
bdnzf cr1*4+eq,LStrlCompLoop
|
||||||
LStrlCompDone:
|
LStrlCompDone:
|
||||||
end ['r0','r3','r4','r9','r10','cr0','cr1','ctr'];
|
end ['R0','R3','R4','R9','R10','CR0','CR1','CTR'];
|
||||||
|
|
||||||
|
|
||||||
function stricomp(str1,str2 : pchar) : longint;assembler;
|
function stricomp(str1,str2 : pchar) : longint;assembler;
|
||||||
@ -303,7 +303,7 @@ LStriCompEqual:
|
|||||||
{ otherwise loop }
|
{ otherwise loop }
|
||||||
bne cr1,LStriCompLoop
|
bne cr1,LStriCompLoop
|
||||||
LStriCompDone:
|
LStriCompDone:
|
||||||
end ['r3','r4','r26','r27','r28','r29','r30','cr0','cr1'];
|
end ['R3','R4','R26','R27','R28','R29','R30','CR0','CR1'];
|
||||||
|
|
||||||
|
|
||||||
function strlicomp(str1,str2 : pchar;l : longint) : longint;assembler;
|
function strlicomp(str1,str2 : pchar;l : longint) : longint;assembler;
|
||||||
@ -361,7 +361,7 @@ LStriCompEqual:
|
|||||||
{ otherwise loop (if ctr <> 0) }
|
{ otherwise loop (if ctr <> 0) }
|
||||||
bdnzf cr1*4+eq,LStriCompLoop
|
bdnzf cr1*4+eq,LStriCompLoop
|
||||||
LStriCompDone:
|
LStriCompDone:
|
||||||
end ['r0','r3','r4','r5','r7','r8','r9','r10','cr0','cr1','ctr'];
|
end ['R0','R3','R4','R5','R7','R8','R9','R10','CR0','CR1','CTR'];
|
||||||
|
|
||||||
|
|
||||||
function strscan(p : pchar;c : char) : pchar;assembler;
|
function strscan(p : pchar;c : char) : pchar;assembler;
|
||||||
@ -378,7 +378,7 @@ LStrScanLoop:
|
|||||||
beq cr1,LStrScanDone
|
beq cr1,LStrScanDone
|
||||||
bne LStrScanLoop
|
bne LStrScanLoop
|
||||||
LStrScanDone:
|
LStrScanDone:
|
||||||
end ['r0','r3','r4','cr0','cr1'];
|
end ['R0','R3','R4','CR0','CR1'];
|
||||||
|
|
||||||
|
|
||||||
function strrscan(p : pchar;c : char) : pchar;assembler;
|
function strrscan(p : pchar;c : char) : pchar;assembler;
|
||||||
@ -408,7 +408,7 @@ LStrrScanNotFound:
|
|||||||
and r10,r10,r0 { r10 = (r0 >= r3) ? 0 : r0 - r3 }
|
and r10,r10,r0 { r10 = (r0 >= r3) ? 0 : r0 - r3 }
|
||||||
add r3,r10,r3 { r3 = (r0 >= r3) ? r3 : r0 }
|
add r3,r10,r3 { r3 = (r0 >= r3) ? r3 : r0 }
|
||||||
LStrrScanDone:
|
LStrrScanDone:
|
||||||
end ['r0','r3','r4','r10','cr0','cr1'];
|
end ['R0','R3','R4','R10','CR0','CR1'];
|
||||||
|
|
||||||
|
|
||||||
function strupper(p : pchar) : pchar;assembler;
|
function strupper(p : pchar) : pchar;assembler;
|
||||||
@ -428,7 +428,7 @@ LStrUpperLoop:
|
|||||||
LStrUpper1:
|
LStrUpper1:
|
||||||
bne cr1,LStrUpperLoop
|
bne cr1,LStrUpperLoop
|
||||||
LStrUpperNil:
|
LStrUpperNil:
|
||||||
end ['r0','r9','r10','cr0','cr1'];
|
end ['R0','R9','R10','CR0','CR1'];
|
||||||
|
|
||||||
|
|
||||||
function strlower(p : pchar) : pchar;assembler;
|
function strlower(p : pchar) : pchar;assembler;
|
||||||
@ -448,12 +448,16 @@ LStrLowerLoop:
|
|||||||
LStrLower1:
|
LStrLower1:
|
||||||
bne cr1,LStrLowerLoop
|
bne cr1,LStrLowerLoop
|
||||||
LStrLowerNil:
|
LStrLowerNil:
|
||||||
end ['r0','r9','r10','cr0','cr1'];
|
end ['R0','R9','R10','CR0','CR1'];
|
||||||
|
|
||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.10 2001-09-28 13:25:04 jonas
|
Revision 1.11 2002-08-10 17:14:36 jonas
|
||||||
|
* various fixes, mostly changing the names of the modifies registers to
|
||||||
|
upper case since that seems to be required by the compiler
|
||||||
|
|
||||||
|
Revision 1.10 2001/09/28 13:25:04 jonas
|
||||||
* fixed wrong alignment code (sometimes we aligned to multiple of 8
|
* fixed wrong alignment code (sometimes we aligned to multiple of 8
|
||||||
instead of the desired multiple of 4)
|
instead of the desired multiple of 4)
|
||||||
|
|
||||||
|
@ -37,11 +37,15 @@ LStrPCopyLoop:
|
|||||||
li r10,0
|
li r10,0
|
||||||
LStrPCopyEmpty:
|
LStrPCopyEmpty:
|
||||||
stb r10,1(r0)
|
stb r10,1(r0)
|
||||||
end ['r0','r4','r10','cr0','ctr'];
|
end ['R0','R4','R10','CR0','CTR'];
|
||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.4 2001-09-27 15:30:29 jonas
|
Revision 1.5 2002-08-10 17:14:36 jonas
|
||||||
|
* various fixes, mostly changing the names of the modifies registers to
|
||||||
|
upper case since that seems to be required by the compiler
|
||||||
|
|
||||||
|
Revision 1.4 2001/09/27 15:30:29 jonas
|
||||||
* conversion to compilerproc and to structure used by i386 rtl
|
* conversion to compilerproc and to structure used by i386 rtl
|
||||||
* some bugfixes
|
* some bugfixes
|
||||||
* powerpc.inc is almost complete (only fillchar/word/dword, get_frame etc
|
* powerpc.inc is almost complete (only fillchar/word/dword, get_frame etc
|
||||||
|
@ -30,11 +30,15 @@ LStrLenLoop:
|
|||||||
bne LStrLenLoop
|
bne LStrLenLoop
|
||||||
sub r3,r29,r3
|
sub r3,r29,r3
|
||||||
LStrLenDone:
|
LStrLenDone:
|
||||||
end ['r3','r4','r29','r30','cr0'];
|
end ['R3','R4','R29','R30','CR0'];
|
||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.1 2001-09-27 15:30:29 jonas
|
Revision 1.2 2002-08-10 17:14:36 jonas
|
||||||
|
* various fixes, mostly changing the names of the modifies registers to
|
||||||
|
upper case since that seems to be required by the compiler
|
||||||
|
|
||||||
|
Revision 1.1 2001/09/27 15:30:29 jonas
|
||||||
* conversion to compilerproc and to structure used by i386 rtl
|
* conversion to compilerproc and to structure used by i386 rtl
|
||||||
* some bugfixes
|
* some bugfixes
|
||||||
* powerpc.inc is almost complete (only fillchar/word/dword, get_frame etc
|
* powerpc.inc is almost complete (only fillchar/word/dword, get_frame etc
|
||||||
|
@ -46,11 +46,15 @@ LStrPasLoop:
|
|||||||
|
|
||||||
{ store length }
|
{ store length }
|
||||||
stb r10,0(r3)
|
stb r10,0(r3)
|
||||||
end ['r0','r3','r4','r10','cr0','ctr'];
|
end ['R0','R3','R4','R10','CR0','CTR'];
|
||||||
|
|
||||||
{
|
{
|
||||||
$Log$
|
$Log$
|
||||||
Revision 1.2 2001-09-28 13:23:44 jonas
|
Revision 1.3 2002-08-10 17:14:36 jonas
|
||||||
|
* various fixes, mostly changing the names of the modifies registers to
|
||||||
|
upper case since that seems to be required by the compiler
|
||||||
|
|
||||||
|
Revision 1.2 2001/09/28 13:23:44 jonas
|
||||||
* small optimization
|
* small optimization
|
||||||
|
|
||||||
Revision 1.1 2001/09/27 15:30:29 jonas
|
Revision 1.1 2001/09/27 15:30:29 jonas
|
||||||
|
Loading…
Reference in New Issue
Block a user