* 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:
Jonas Maebe 2002-08-10 17:14:36 +00:00
parent 18b102ce95
commit 3a23eefecc
9 changed files with 136 additions and 85 deletions

View File

@ -93,9 +93,9 @@
asm
fctiwz fr1,fr1
stfd fr1,temp.d
lwz r3,temp.l2
// !!!! fix int64 result
end ['r3','f1'];
lwz r3,temp.l1
lwz r4,temp.l2
end ['R3','F1'];
{$define FPC_SYSTEM_HAS_ROUND}
@ -113,8 +113,9 @@
asm
fctiw fr1,fr1
stfd fr1,temp.d
lwz r3,temp.l2
end ['r3','f1'];
lwz r3,temp.l1
lwz r4,temp.l2
end ['R3','F1'];
{$define FPC_SYSTEM_HAS_POWER}
@ -207,8 +208,8 @@
****************************************************************************}
const
longint_to_real_helper: int64 = 0x4330000080000000;
cardinal_to_real_helper: int64 = 0x430000000000000;
longint_to_real_helper: int64 = $4330000080000000;
cardinal_to_real_helper: int64 = $430000000000000;
int_to_real_factor: double = double(high(cardinal))+1.0;
function fpc_int64_to_double(i: int64): double; compilerproc;
@ -239,7 +240,7 @@ asm
lfd fr2,int_to_real_factor@l(r3)
fsub fr3,fr3,fr1
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;
@ -267,13 +268,17 @@ asm
lfd fr2,int_to_real_factor@l(r3)
fsub fr3,fr3,fr1
fmadd fr1,fr0,fr2,fr3
end ['r0','r3','f0','f1','f2','f3'];
end ['R0','R3','F0','F1','F2','F3'];
{
$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
Revision 1.6 2002/07/29 21:28:17 florian

View File

@ -123,14 +123,14 @@ L8BytesAligned:
sub r4,r4,r10
LMove32ByteLoop:
lfdux f13,r3,r10
lfdux f12,r3,r10
lfdux f11,r3,r10
lfdux f0,r3,r10
stfdux f13,r4,r10
stfdux f12,r4,r10
stfdux f11,r4,r10
lfdux f1,r3,r10
lfdux f2,r3,r10
lfdux f3,r3,r10
stfdux f0,r4,r10
stfdux f1,r4,r10
stfdux f2,r4,r10
stfdux f3,r4,r10
bdnz LMove32ByteLoop
{ cr0*4+eq is true if "count and 31" = 0 }
@ -310,9 +310,10 @@ LFillCharDone:
end;
{$define FPC_SYSTEM_HAS_FILLWORD}
procedure fillword(var x;count : longint;value : word);
begin
{$define FPC_SYSTEM_HAS_FILLDWORD}
procedure filldword(var x;count : longint;value : dword);
assembler;
asm
{ registers:
r3 x
r4 count
@ -327,17 +328,14 @@ begin
}
asm
cmpwi cr0,r3,0
andi r17,r4,$3
srwi r18,r4,1 //r18:=count div 2
mr r13,r3
li r14,4
ble .FillWordEnd //if count<=0 Then Exit
mtctr r4
subi r3,r3,4
ble .FillWordEnd //if count<=0 Then Exit
.FillWordLoop:
stwux r5,r13,r14
stwu r5,4(r3)
bdnz .FillWordLoop
.FillWordEnd:
end ['r13','r14','ctr']
end;
end ['R3','R4','R5','CTR'];
{$define FPC_SYSTEM_HAS_INDEXBYTE}
@ -362,7 +360,7 @@ LIndexByteLoop:
bne LIndexByteDone
sub r3,r10,r0
LIndexByteDone:
end ['r0','r3','r9','r10','cr0','ctr'];
end ['R0','R3','R9','R10','CR0','CTR'];
{$define FPC_SYSTEM_HAS_INDEXWORD}
@ -387,7 +385,7 @@ LIndexWordLoop:
bne LIndexWordDone
sub r3,r10,r0
LIndexWordDone:
end ['r0','r3','r9','r10','cr0','ctr'];
end ['R0','R3','R9','R10','CR0','CTR'];
{$define FPC_SYSTEM_HAS_INDEXDWORD}
@ -412,7 +410,7 @@ LIndexDWordLoop:
bne LIndexDWordDone
sub r3,r10,r0
LIndexDWordDone:
end ['r0','r3','r9','r10','cr0','ctr'];
end ['R0','R3','R9','R10','CR0','CTR'];
{$define FPC_SYSTEM_HAS_COMPAREBYTE}
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 }
bdnzt cr0*4+eq, LCompByteLoop
LCompByteDone:
end ['r0','r3','r4','r9','r10','cr0','ctr'];
end ['R0','R3','R4','R9','R10','CR0','CTR'];
{$define FPC_SYSTEM_HAS_COMPAREWORD}
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 }
bdnzt cr0*4+eq, LCompWordLoop
LCompWordDone:
end ['r0','r3','r4','r9','r10','cr0','ctr'];
end ['R0','R3','R4','R9','R10','CR0','CTR'];
{$define FPC_SYSTEM_HAS_COMPAREDWORD}
@ -491,7 +489,7 @@ LCompDWordLoop:
{ if chars not equal or at the end, we're ready }
bdnzt cr0*4+eq, LCompDWordLoop
LCompDWordDone:
end ['r0','r3','r4','r9','r10','cr0','ctr'];
end ['R0','R3','R4','R9','R10','CR0','CTR'];
{$define FPC_SYSTEM_HAS_INDEXCHAR0}
function IndexChar0(var buf;len:longint;b:Char):longint; assembler;
@ -519,7 +517,7 @@ LIndexChar0Loop:
bne LIndexChar0Done
sub r3,r9,r0
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)
stbu r0,1(r3)
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}
@ -655,7 +653,7 @@ LShortStrCopyLoop:
lbzu r0,1(r4)
stbu r0,1(r5)
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}
function fpc_shortstr_concat(const s1,s2: shortstring): shortstring; compilerproc;
@ -683,7 +681,7 @@ LShortStrConcatLoop:
lbzu r10,1(r4)
stbu r10,1(r3)
bdnz LShortStrConcatLoop
end ['r3','r4','r8','r9','r10','ctr'];
end ['R3','R4','R8','R9','R10','CTR'];
{$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 }
mr. r3,r0
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}
@ -757,7 +755,7 @@ function get_frame:longint;assembler;
asm
{$warning FIX ME!}
// !!!!!!! depends on ABI !!!!!!!!
end ['r3'];
end ['R3'];
{$define FPC_SYSTEM_HAS_GET_CALLER_ADDR}
@ -765,7 +763,7 @@ function get_caller_addr(framebp:longint):longint;assembler;
asm
{$warning FIX ME!}
// !!!!!!! depends on ABI !!!!!!!!
end ['r3'];
end ['R3'];
{$define FPC_SYSTEM_HAS_GET_CALLER_FRAME}
@ -773,7 +771,7 @@ function get_caller_frame(framebp:longint):longint;assembler;
asm
{$warning FIX ME!}
// !!!!!!! depends on ABI !!!!!!!!
end ['r3'];
end ['R3'];
{$define FPC_SYSTEM_HAS_ABS_LONGINT}
function abs(l:longint):longint; assembler;[internconst:in_const_abs];
@ -781,7 +779,7 @@ asm
srawi r0,r3,31
add r3,r0,r3
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];
asm
rlwinm r3,r3,0,31,31
end ['r3'];
end ['R3'];
{$define FPC_SYSTEM_HAS_SQR_LONGINT}
function sqr(l:longint):longint;assembler;[internconst:in_const_sqr];
asm
mullw r3,r3,r3
end ['r3'];
end ['R3'];
{$define FPC_SYSTEM_HAS_SPTR}
Function Sptr : Longint;assembler;
asm
mr r3,sp
end ['r3'];
end ['R3'];
{****************************************************************************
@ -838,7 +836,7 @@ LDecLockedLoop:
stw r10,0,r3
{$endif MT}
mr. r3,r10
end ['r3','r10'];
end ['R3','R10'];
procedure inclocked(var l : longint);assembler;
asm
@ -853,12 +851,16 @@ LIncLockedLoop:
addi r10,r10,1
stw r10,0,r3
{$endif MT}
end ['r3','r10'];
end ['R3','R10'];
{
$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 implemtation of the destructor helper

View File

@ -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;
{
load a normal set p from a smallset l
@ -31,9 +32,10 @@ asm
stw r0,20(r3)
stw r0,24(r3)
stw r0,28(r3)
end ['r0'];
end ['R0'];
{$define FPC_SYSTEM_HAS_FPC_SET_CREATE_ELEMENT}
{ checked 2001/09/28 (JM) }
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
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;
{
add the element b to the set pointed by p
@ -91,14 +95,15 @@ Lset_set_byte_copy:
li r0,1
// generate bit which has to be inserted
// (can't use rlwimi, since that one only works for constants)
rlwnm r5,r0,r5
slw r5,r0,r5
// insert it
or r5,r4,r5
// store result
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;
{
suppresses the element b to the set pointed by p
@ -129,9 +134,10 @@ Lset_unset_byte_copy:
andc r5,r4,r5
// store result
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;
{
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
// the longint which contains the hi bit and r4
// 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
// (r8 = $0xffffffff unless the first beq was
// 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
stw r5,(r3) // store to set
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}
@ -206,15 +212,17 @@ asm
rlwinm r0,r4,31-3+1,3,31-2
// load dword in which the bit has to be tested
lwzx r3,r3,r0
li r0,1
// generate bit which has to be tested
rwlwnm r4,r0,r4,0,31
// test it
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;
{
adds set1 and set2 into set dest
@ -234,10 +242,10 @@ asm
or r0,r0,r10
stwu r0,4(r3)
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;
{
multiplies (takes common elements of) set1 and set2 result put in dest
@ -257,9 +265,10 @@ asm
and r0,r0,r10
stwu r0,4(r3)
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;
{
computes the diff from set1 to set2 result in dest
@ -279,9 +288,10 @@ asm
andc r0,r0,r10
stwu r0,4(r3)
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;
{
computes the symetric diff from set1 to set2 result in dest
@ -301,9 +311,10 @@ asm
xor r0,r0,r10
stwu r0,4(r3)
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;
{
compares set1 and set2 zeroflag is set if they are equal
@ -321,8 +332,10 @@ asm
bdnzt cr0*4+eq,LMCOMPSETS1
cntlzw r3,r0
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;
{
on exit, zero flag is set if set1 <= set2 (set2 contains set1)
@ -341,7 +354,7 @@ asm
bdnzt cr0*4+eq,LMCONTAINSSETS1
cntlzw r3,r0
srwi. r3,r3,31
end ['r0','r3','r4','r10','cr0','ctr'];
end ['R0','R3','R4','R10','CR0','CTR'];
@ -510,7 +523,11 @@ end;
{
$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 to MT

View File

@ -18,15 +18,21 @@
{ the necessary code can be copied from the linux kernel sources }
function setjmp(var S : jmp_buf) : longint;assembler;
asm
{$warning FIXME!!!!}
end;
procedure longjmp(var S : jmp_buf;value : longint);assembler;
asm
{$warning FIXME!!!!}
end;
{
$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 implemtation of the destructor helper

View File

@ -17,6 +17,7 @@
type
jmp_buf = record
{$warning FIXME!!!!}
end;
pjmp_buf = ^jmp_buf;
@ -25,7 +26,11 @@ procedure longjmp(var S : jmp_buf;value : longint);
{
$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
Revision 1.2 2002/07/26 22:08:38 florian

View File

@ -79,7 +79,7 @@ LStrCopyWrapUpLoop:
bge LStrCopyWrapUpLoop
LStrCopyDone:
{ 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;
@ -136,7 +136,7 @@ LStrCopyWrapUpLoop:
bge LStrCopyWrapUpLoop
LStrCopyDone:
{ 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;
@ -159,7 +159,7 @@ LStrlCopyLoop:
li r10,0
stb r10,1(r0)
LStrlCopyDone:
end ['r0','r4','r30','cr0'];
end ['R0','R4','R10','CR0'];
function strlen(p : pchar) : longint;assembler;
@ -181,7 +181,7 @@ LStrEndLoop:
cmpli r0,0
bne LStrEndLoop
LStrEndDone:
end ['r0','r3','r4','cr0'];
end ['R0','R3','R4','CR0'];
function strcomp(str1,str2 : pchar) : longint;assembler;
@ -207,7 +207,7 @@ LStrCompLoop:
{ otherwise loop }
bne cr1,LStrCompLoop
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;
@ -240,7 +240,7 @@ LStrlCompLoop:
{ otherwise loop (if ctr <> 0) }
bdnzf cr1*4+eq,LStrlCompLoop
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;
@ -303,7 +303,7 @@ LStriCompEqual:
{ otherwise loop }
bne cr1,LStriCompLoop
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;
@ -361,7 +361,7 @@ LStriCompEqual:
{ otherwise loop (if ctr <> 0) }
bdnzf cr1*4+eq,LStriCompLoop
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;
@ -378,7 +378,7 @@ LStrScanLoop:
beq cr1,LStrScanDone
bne LStrScanLoop
LStrScanDone:
end ['r0','r3','r4','cr0','cr1'];
end ['R0','R3','R4','CR0','CR1'];
function strrscan(p : pchar;c : char) : pchar;assembler;
@ -408,7 +408,7 @@ LStrrScanNotFound:
and r10,r10,r0 { r10 = (r0 >= r3) ? 0 : r0 - r3 }
add r3,r10,r3 { r3 = (r0 >= r3) ? r3 : r0 }
LStrrScanDone:
end ['r0','r3','r4','r10','cr0','cr1'];
end ['R0','R3','R4','R10','CR0','CR1'];
function strupper(p : pchar) : pchar;assembler;
@ -428,7 +428,7 @@ LStrUpperLoop:
LStrUpper1:
bne cr1,LStrUpperLoop
LStrUpperNil:
end ['r0','r9','r10','cr0','cr1'];
end ['R0','R9','R10','CR0','CR1'];
function strlower(p : pchar) : pchar;assembler;
@ -448,12 +448,16 @@ LStrLowerLoop:
LStrLower1:
bne cr1,LStrLowerLoop
LStrLowerNil:
end ['r0','r9','r10','cr0','cr1'];
end ['R0','R9','R10','CR0','CR1'];
{
$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
instead of the desired multiple of 4)

View File

@ -37,11 +37,15 @@ LStrPCopyLoop:
li r10,0
LStrPCopyEmpty:
stb r10,1(r0)
end ['r0','r4','r10','cr0','ctr'];
end ['R0','R4','R10','CR0','CTR'];
{
$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
* some bugfixes
* powerpc.inc is almost complete (only fillchar/word/dword, get_frame etc

View File

@ -30,11 +30,15 @@ LStrLenLoop:
bne LStrLenLoop
sub r3,r29,r3
LStrLenDone:
end ['r3','r4','r29','r30','cr0'];
end ['R3','R4','R29','R30','CR0'];
{
$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
* some bugfixes
* powerpc.inc is almost complete (only fillchar/word/dword, get_frame etc

View File

@ -46,11 +46,15 @@ LStrPasLoop:
{ store length }
stb r10,0(r3)
end ['r0','r3','r4','r10','cr0','ctr'];
end ['R0','R3','R4','R10','CR0','CTR'];
{
$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
Revision 1.1 2001/09/27 15:30:29 jonas